Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+4 −4
Original line number Original line Diff line number Diff line
@@ -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)
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 */