[PATCH] s390: fix arp_tbl lock usage in qeth
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Tue, 15 Aug 2006 06:00:27 +0000 (23:00 -0700)
committerJeff Garzik <jeff@garzik.org>
Sat, 19 Aug 2006 21:44:30 +0000 (17:44 -0400)
qeth: bhs must be disabled when accessing neighbour tables.

=================================
[ INFO: inconsistent lock state ]

Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/s390/net/qeth_main.c

index 5fff1f93973ac26c85d746b6e045392de945f189..e1327b8fce003c31600452ded9814a50e5aa8001 100644 (file)
@@ -8510,9 +8510,9 @@ static int
 qeth_ipv6_init(void)
 {
        qeth_old_arp_constructor = arp_tbl.constructor;
-       write_lock(&arp_tbl.lock);
+       write_lock_bh(&arp_tbl.lock);
        arp_tbl.constructor = qeth_arp_constructor;
-       write_unlock(&arp_tbl.lock);
+       write_unlock_bh(&arp_tbl.lock);
 
        arp_direct_ops = (struct neigh_ops*)
                kmalloc(sizeof(struct neigh_ops), GFP_KERNEL);
@@ -8528,9 +8528,9 @@ qeth_ipv6_init(void)
 static void
 qeth_ipv6_uninit(void)
 {
-       write_lock(&arp_tbl.lock);
+       write_lock_bh(&arp_tbl.lock);
        arp_tbl.constructor = qeth_old_arp_constructor;
-       write_unlock(&arp_tbl.lock);
+       write_unlock_bh(&arp_tbl.lock);
        kfree(arp_direct_ops);
 }
 #endif /* CONFIG_QETH_IPV6 */