From 3190f7ea3a44623d6fe8210966aa3e244afae41e Mon Sep 17 00:00:00 2001 From: John Lo Date: Mon, 11 Jul 2016 18:09:51 -0400 Subject: 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 --- ...x-setting-MAC-address-when-a-port-is-rest.patch | 45 ++++++++++++++++++++++ ...x-removing-old-MAC-address-when-setting-n.patch | 34 ++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 dpdk/dpdk-16.04_patches/0026-net-enic-fix-setting-MAC-address-when-a-port-is-rest.patch create mode 100644 dpdk/dpdk-16.04_patches/0027-net-enic-fix-removing-old-MAC-address-when-setting-n.patch (limited to 'dpdk') diff --git a/dpdk/dpdk-16.04_patches/0026-net-enic-fix-setting-MAC-address-when-a-port-is-rest.patch b/dpdk/dpdk-16.04_patches/0026-net-enic-fix-setting-MAC-address-when-a-port-is-rest.patch new file mode 100644 index 00000000..334e9bed --- /dev/null +++ b/dpdk/dpdk-16.04_patches/0026-net-enic-fix-setting-MAC-address-when-a-port-is-rest.patch @@ -0,0 +1,45 @@ +From e5b60cf1199c51ee51c287988bdda3522fee748c Mon Sep 17 00:00:00 2001 +From: Nelson Escobar +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 +Reviewed-by: John Daley +--- + 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 + diff --git a/dpdk/dpdk-16.04_patches/0027-net-enic-fix-removing-old-MAC-address-when-setting-n.patch b/dpdk/dpdk-16.04_patches/0027-net-enic-fix-removing-old-MAC-address-when-setting-n.patch new file mode 100644 index 00000000..1e58db9a --- /dev/null +++ b/dpdk/dpdk-16.04_patches/0027-net-enic-fix-removing-old-MAC-address-when-setting-n.patch @@ -0,0 +1,34 @@ +From 620b173ae0f77c1a5af2592a27b5db8a6ce88bb6 Mon Sep 17 00:00:00 2001 +From: Nelson Escobar +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 +Reviewed-by: John Daley +--- + 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 + -- cgit 1.2.3-korg