bonding: Don't hold lock when calling rtnl_unlock
[firefly-linux-kernel-4.4.55.git] / drivers / net / bonding / bond_main.c
index 2c6da49693824866ac48e1eea9ff0a0d25c295de..49a198206e3de901a74f34fc40694bb056ad922c 100644 (file)
@@ -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;