Commit 3d8f3f3c authored by Heiko Carstens's avatar Heiko Carstens Committed by Jeff Garzik

[PATCH] s390: fix arp_tbl lock usage in qeth

qeth: bhs must be disabled when accessing neighbour tables.

=================================
[ INFO: inconsistent lock state ]
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent 239e44e1
...@@ -8510,9 +8510,9 @@ static int ...@@ -8510,9 +8510,9 @@ static int
qeth_ipv6_init(void) qeth_ipv6_init(void)
{ {
qeth_old_arp_constructor = arp_tbl.constructor; qeth_old_arp_constructor = arp_tbl.constructor;
write_lock(&arp_tbl.lock); write_lock_bh(&arp_tbl.lock);
arp_tbl.constructor = qeth_arp_constructor; arp_tbl.constructor = qeth_arp_constructor;
write_unlock(&arp_tbl.lock); write_unlock_bh(&arp_tbl.lock);
arp_direct_ops = (struct neigh_ops*) arp_direct_ops = (struct neigh_ops*)
kmalloc(sizeof(struct neigh_ops), GFP_KERNEL); kmalloc(sizeof(struct neigh_ops), GFP_KERNEL);
...@@ -8528,9 +8528,9 @@ qeth_ipv6_init(void) ...@@ -8528,9 +8528,9 @@ qeth_ipv6_init(void)
static void static void
qeth_ipv6_uninit(void) qeth_ipv6_uninit(void)
{ {
write_lock(&arp_tbl.lock); write_lock_bh(&arp_tbl.lock);
arp_tbl.constructor = qeth_old_arp_constructor; arp_tbl.constructor = qeth_old_arp_constructor;
write_unlock(&arp_tbl.lock); write_unlock_bh(&arp_tbl.lock);
kfree(arp_direct_ops); kfree(arp_direct_ops);
} }
#endif /* CONFIG_QETH_IPV6 */ #endif /* CONFIG_QETH_IPV6 */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment