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 at cisco.com> Reviewed-by: John Daley <johndale at 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 8eacf2d..1f3d14e 100644 --- a/drivers/net/enic/enic_main.c +++ b/drivers/net/enic/enic_main.c @@ -455,6 +455,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