1. 29 Oct, 2015 1 commit
    • Tomas Winkler's avatar
      mei: bus: use correct lock ordering · 2da55cfd
      Tomas Winkler authored
      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: default avatarTomas Winkler <tomas.winkler@intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2da55cfd
  2. 27 Oct, 2015 1 commit
  3. 25 Oct, 2015 1 commit
  4. 23 Oct, 2015 5 commits
  5. 19 Oct, 2015 1 commit
  6. 18 Oct, 2015 31 commits