aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ehea
diff options
context:
space:
mode:
authorDaniel Walker <dwalker@mvista.com>2008-03-28 14:41:27 -0700
committerJeff Garzik <jeff@garzik.org>2008-03-28 22:14:33 -0400
commitdbbcbb2d95dc4faa3b96d39f78032c85e8745c0c (patch)
tree887c16fff0805fcb9f4dbb977cc81213726867f1 /drivers/net/ehea
parentnetdev: ehea: ehea_fw_handles semaphore to mutex (diff)
downloadlinux-dev-dbbcbb2d95dc4faa3b96d39f78032c85e8745c0c.tar.xz
linux-dev-dbbcbb2d95dc4faa3b96d39f78032c85e8745c0c.zip
netdev: ehea: locking order correction
Nested locks always need to be taken in the same order. This change factors out the ehea_fw_handles.lock to make the locking order consistent. Signed-off-by: Daniel Walker <dwalker@mvista.com> Cc: Christoph Raisch <raisch@de.ibm.com> Cc: Jan-Bernd Themann <themann@de.ibm.com> Cc: Thomas Klein <tklein@de.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/ehea')
-rw-r--r--drivers/net/ehea/ehea_main.c4
1 files changed, 2 insertions, 2 deletions
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();