diff options
author | Tomas Winkler <tomas.winkler@intel.com> | 2015-10-28 14:34:34 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-10-29 09:02:16 +0900 |
commit | 2da55cfd603d1c08dd1a396f943d6205eca47227 (patch) | |
tree | 74006b846090085e41dd0e86ea2ec3801331a09b /include/net/bond_alb.h | |
parent | 2be7010cad9ed7a3b67a84c274db1e7bc70e0556 (diff) | |
download | linux-2da55cfd603d1c08dd1a396f943d6205eca47227.tar.gz |
mei: bus: use correct lock ordering
The correct lock order is
cl_bus_lock
device_lock
me_clients_rwsem
This order was violated in bus rescan and remove routines
when me_client_rwsem was locked before cl_bus_lock.
Chain exists of:
[ 4.321653] &dev->device_lock --> &dev->me_clients_rwsem -->
&dev->cl_bus_lock
[ 4.321653]
[ 4.321679] Possible unsafe locking scenario:
[ 4.321679]
[ 4.321693] CPU0 CPU1
[ 4.321701] ---- ----
[ 4.321709] lock(&dev->cl_bus_lock);
[ 4.321720]
lock(&dev->me_clients_rwsem);
[ 4.321733] lock(&dev->cl_bus_lock);
[ 4.321745] lock(&dev->device_lock);
[ 4.321755]
[ 4.321755] *** DEADLOCK ***
[ 4.321755]
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/net/bond_alb.h')
0 files changed, 0 insertions, 0 deletions