diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c index 4ae65e876487..0cfc7e2ce395 100644 --- a/drivers/net/ehea/ehea_main.c +++ b/drivers/net/ehea/ehea_main.c @@ -2567,14 +2567,14 @@ static int ehea_down(struct net_device *dev) if (port->state == EHEA_PORT_DOWN) return 0; + mutex_lock(&ehea_fw_handles.lock); + down(&ehea_bcmc_regs.lock); ehea_drop_multicast_list(dev); ehea_broadcast_reg_helper(port, H_DEREG_BCMC); ehea_free_interrupts(dev); - mutex_lock(&ehea_fw_handles.lock); - port->state = EHEA_PORT_DOWN; ehea_update_bcmc_registrations();