diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2006-08-15 02:00:27 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-08-19 17:44:30 -0400 |
commit | 3d8f3f3c3697a7603a802427c9226f5dfe6d67ad (patch) | |
tree | c6deeab098c67b4a303630ac9430cbec0d45d5c6 /drivers/s390/net/qeth_main.c | |
parent | 239e44e1f05e2163ee066c07a753f9fb445979b2 (diff) |
[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: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/s390/net/qeth_main.c')
-rw-r--r-- | drivers/s390/net/qeth_main.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/s390/net/qeth_main.c b/drivers/s390/net/qeth_main.c index 5fff1f93973a..e1327b8fce00 100644 --- a/drivers/s390/net/qeth_main.c +++ b/drivers/s390/net/qeth_main.c | |||
@@ -8510,9 +8510,9 @@ static int | |||
8510 | qeth_ipv6_init(void) | 8510 | qeth_ipv6_init(void) |
8511 | { | 8511 | { |
8512 | qeth_old_arp_constructor = arp_tbl.constructor; | 8512 | qeth_old_arp_constructor = arp_tbl.constructor; |
8513 | write_lock(&arp_tbl.lock); | 8513 | write_lock_bh(&arp_tbl.lock); |
8514 | arp_tbl.constructor = qeth_arp_constructor; | 8514 | arp_tbl.constructor = qeth_arp_constructor; |
8515 | write_unlock(&arp_tbl.lock); | 8515 | write_unlock_bh(&arp_tbl.lock); |
8516 | 8516 | ||
8517 | arp_direct_ops = (struct neigh_ops*) | 8517 | arp_direct_ops = (struct neigh_ops*) |
8518 | kmalloc(sizeof(struct neigh_ops), GFP_KERNEL); | 8518 | kmalloc(sizeof(struct neigh_ops), GFP_KERNEL); |
@@ -8528,9 +8528,9 @@ qeth_ipv6_init(void) | |||
8528 | static void | 8528 | static void |
8529 | qeth_ipv6_uninit(void) | 8529 | qeth_ipv6_uninit(void) |
8530 | { | 8530 | { |
8531 | write_lock(&arp_tbl.lock); | 8531 | write_lock_bh(&arp_tbl.lock); |
8532 | arp_tbl.constructor = qeth_old_arp_constructor; | 8532 | arp_tbl.constructor = qeth_old_arp_constructor; |
8533 | write_unlock(&arp_tbl.lock); | 8533 | write_unlock_bh(&arp_tbl.lock); |
8534 | kfree(arp_direct_ops); | 8534 | kfree(arp_direct_ops); |
8535 | } | 8535 | } |
8536 | #endif /* CONFIG_QETH_IPV6 */ | 8536 | #endif /* CONFIG_QETH_IPV6 */ |