linux/drivers/misc/mei
Tomas Winkler 2da55cfd60 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>
2015-10-29 09:02:16 +09:00
..
Kconfig mei: fix compilation error with missing WATCHDOG_CORE 2014-02-14 10:13:46 -08:00
Makefile mei: bus: rename nfc.c to bus-fixup.c 2015-08-03 17:20:26 -07:00
amthif.c mei: amthif: Do not compare bool to 0/1 2015-10-17 21:45:05 -07:00
bus-fixup.c mei: bus: use mei_cl_bus_ prefix consistently 2015-09-20 19:31:10 -07:00
bus.c mei: bus: use correct lock ordering 2015-10-29 09:02:16 +09:00
client.c mei: remove check on pm_runtime_active in __mei_cl_disconnect 2015-08-04 21:58:47 -07:00
client.h mei: bus: export client protocol version 2015-09-20 19:30:10 -07:00
debugfs.c mei: Fix debugfs filename in error output 2015-10-27 14:21:42 +09:00
hbm.c mei: fix the KDoc formating 2015-10-17 21:45:05 -07:00
hbm.h mei: me: d0i3: add d0i3 enter/exit state machine 2015-08-03 17:33:55 -07:00
hw-me-regs.h mei: me: add sunrise point device ids 2015-08-03 17:33:55 -07:00
hw-me.c mei: me: fix d0i3 register offset in tracing 2015-09-20 19:31:10 -07:00
hw-me.h mei: me: d0i3: enable d0i3 interrupts 2015-08-03 17:33:54 -07:00
hw-txe-regs.h mei: extract fw status registers 2014-05-03 19:21:22 -04:00
hw-txe.c mei: me: wait for power gating exit confirmation 2015-06-13 19:48:02 -07:00
hw-txe.h mei: fix kernel-doc warnings 2014-09-29 11:56:02 -04:00
hw.h mei: hbm: bump supported HBM version to 2.0 2015-08-03 17:33:55 -07:00
init.c mei: cancel driver workers only after client devices were removed 2015-10-17 21:45:05 -07:00
interrupt.c mei: keep the device awake during reads in chunks 2015-10-17 21:45:05 -07:00
main.c mei: implement fasync for event notification 2015-08-03 17:30:00 -07:00
mei-trace.c mei: me: add io register tracing 2015-03-01 19:36:59 -08:00
mei-trace.h mei: trace: remove unused TRACE_SYSTEM_STRING 2015-04-13 15:27:19 +02:00
mei_dev.h mei: fix the KDoc formating 2015-10-17 21:45:05 -07:00
pci-me.c mei: me: add sunrise point device ids 2015-08-03 17:33:55 -07:00
pci-txe.c mei: txe: fix incorrect indentation 2015-05-24 11:13:49 -07:00
wd.c Watchdog: Fix parent of watchdog_devices 2015-09-09 21:39:22 +02:00