ENIC driver update to allow bonded interface admin down/up to pass traffic
When ENIC ports are used as slaves to a bonded interface, these patches enable traffic on bonded interface to resume properly on admin down and then up of the bonded interface. Change-Id: I339926010da614068417c72009b7af2f892890ce Signed-off-by: John Lo <loj@cisco.com>
This commit is contained in:
@ -0,0 +1,45 @@
|
|||||||
|
From e5b60cf1199c51ee51c287988bdda3522fee748c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Nelson Escobar <neescoba@cisco.com>
|
||||||
|
Date: Thu, 7 Jul 2016 18:10:21 -0700
|
||||||
|
Subject: [PATCH 1/2] net/enic: fix setting MAC address when a port is
|
||||||
|
restarted
|
||||||
|
|
||||||
|
enic_disable() removed the MAC address when a port was shut down but
|
||||||
|
enic_enable() didn't add the MAC address back when the port was
|
||||||
|
started again. Move where we set the MAC address for the adapter from
|
||||||
|
enic_setup_finish() to a enic_enable() so that port restarting works
|
||||||
|
properly.
|
||||||
|
|
||||||
|
Fixes: fefed3d1e62c ("enic: new driver")
|
||||||
|
|
||||||
|
Signed-off-by: Nelson Escobar <neescoba@cisco.com>
|
||||||
|
Reviewed-by: John Daley <johndale@cisco.com>
|
||||||
|
---
|
||||||
|
drivers/net/enic/enic_main.c | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c
|
||||||
|
index d4e43b5..5d47c01 100644
|
||||||
|
--- a/drivers/net/enic/enic_main.c
|
||||||
|
+++ b/drivers/net/enic/enic_main.c
|
||||||
|
@@ -468,6 +468,8 @@ int enic_enable(struct enic *enic)
|
||||||
|
for (index = 0; index < enic->rq_count; index++)
|
||||||
|
enic_start_rq(enic, index);
|
||||||
|
|
||||||
|
+ vnic_dev_add_addr(enic->vdev, enic->mac_addr);
|
||||||
|
+
|
||||||
|
vnic_dev_enable_wait(enic->vdev);
|
||||||
|
|
||||||
|
/* Register and enable error interrupt */
|
||||||
|
@@ -971,8 +973,6 @@ int enic_setup_finish(struct enic *enic)
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
- vnic_dev_add_addr(enic->vdev, enic->mac_addr);
|
||||||
|
-
|
||||||
|
/* Default conf */
|
||||||
|
vnic_dev_packet_filter(enic->vdev,
|
||||||
|
1 /* directed */,
|
||||||
|
--
|
||||||
|
2.7.0
|
||||||
|
|
@ -0,0 +1,34 @@
|
|||||||
|
From 620b173ae0f77c1a5af2592a27b5db8a6ce88bb6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Nelson Escobar <neescoba@cisco.com>
|
||||||
|
Date: Thu, 7 Jul 2016 18:11:08 -0700
|
||||||
|
Subject: [PATCH 2/2] net/enic: fix removing old MAC address when setting new
|
||||||
|
one
|
||||||
|
|
||||||
|
enic_set_mac_address() meant to remove the old MAC address before
|
||||||
|
setting the new one, but accidentally tried removing the new MAC
|
||||||
|
address before setting the new MAC address.
|
||||||
|
|
||||||
|
Fixes: fefed3d1e62c ("enic: new driver")
|
||||||
|
|
||||||
|
Signed-off-by: Nelson Escobar <neescoba@cisco.com>
|
||||||
|
Reviewed-by: John Daley <johndale@cisco.com>
|
||||||
|
---
|
||||||
|
drivers/net/enic/enic_main.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c
|
||||||
|
index 5d47c01..d8669cc 100644
|
||||||
|
--- a/drivers/net/enic/enic_main.c
|
||||||
|
+++ b/drivers/net/enic/enic_main.c
|
||||||
|
@@ -215,7 +215,7 @@ void enic_set_mac_address(struct enic *enic, uint8_t *mac_addr)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- err = vnic_dev_del_addr(enic->vdev, mac_addr);
|
||||||
|
+ err = vnic_dev_del_addr(enic->vdev, enic->mac_addr);
|
||||||
|
if (err) {
|
||||||
|
dev_err(enic, "del mac addr failed\n");
|
||||||
|
return;
|
||||||
|
--
|
||||||
|
2.7.0
|
||||||
|
|
Reference in New Issue
Block a user