OSDN Git Service

thunderbolt: No need to take tb->lock in domain suspend/complete
authorMika Westerberg <mika.westerberg@linux.intel.com>
Wed, 25 Jul 2018 08:03:18 +0000 (11:03 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 25 Jul 2018 08:15:24 +0000 (10:15 +0200)
If the connection manager implementation needs to touch the domain
structures it ought to take the lock itself. Currently only ICM
implements these hooks and it does not need the lock because we there
will be no notifications before driver ready message is sent to it.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/thunderbolt/domain.c

index a923ebd..e377128 100644 (file)
@@ -509,26 +509,13 @@ int tb_domain_resume_noirq(struct tb *tb)
 
 int tb_domain_suspend(struct tb *tb)
 {
-       int ret;
-
-       mutex_lock(&tb->lock);
-       if (tb->cm_ops->suspend) {
-               ret = tb->cm_ops->suspend(tb);
-               if (ret) {
-                       mutex_unlock(&tb->lock);
-                       return ret;
-               }
-       }
-       mutex_unlock(&tb->lock);
-       return 0;
+       return tb->cm_ops->suspend ? tb->cm_ops->suspend(tb) : 0;
 }
 
 void tb_domain_complete(struct tb *tb)
 {
-       mutex_lock(&tb->lock);
        if (tb->cm_ops->complete)
                tb->cm_ops->complete(tb);
-       mutex_unlock(&tb->lock);
 }
 
 /**