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

Commit 5655662d authored by Jay Vosburgh's avatar Jay Vosburgh Committed by Jeff Garzik
Browse files

bonding: Don't hold lock when calling rtnl_unlock



Change bond_mii_monitor to not hold any locks when calling rtnl_unlock,
as rtnl_unlock can sleep (when acquring another mutex in netdev_run_todo).

Bug reported by Makito SHIOKAWA <mshiokawa@miraclelinux.com>, who
included a different patch.

Signed-off-by: default avatarJay Vosburgh <fubar@us.ibm.com>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent 027ea041
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -2386,7 +2386,9 @@ void bond_mii_monitor(struct work_struct *work)
		rtnl_lock();
		read_lock(&bond->lock);
		__bond_mii_monitor(bond, 1);
		rtnl_unlock();
		read_unlock(&bond->lock);
		rtnl_unlock();	/* might sleep, hold no other locks */
		read_lock(&bond->lock);
	}

	delay = ((bond->params.miimon * HZ) / 1000) ? : 1;