]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
powerpc: eeh: use lock guard for mutex
authorShrikanth Hegde <sshegde@linux.ibm.com>
Mon, 5 May 2025 07:53:28 +0000 (13:23 +0530)
committerMadhavan Srinivasan <maddy@linux.ibm.com>
Mon, 23 Jun 2025 04:27:10 +0000 (09:57 +0530)
use guard(mutex) for scope based resource management of mutex.
This would make the code simpler and easier to maintain.

More details on lock guards can be found at
https://lore.kernel.org/all/20230612093537.614161713@infradead.org/T/#u

Reviewed-by: Srikar Dronamraju <srikar@linux.ibm.com>
Signed-off-by: Shrikanth Hegde <sshegde@linux.ibm.com>
Tested-by: Venkat Rao Bagalkote <venkat88@linux.ibm.com>
Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
Link: https://patch.msgid.link/20250505075333.184463-2-sshegde@linux.ibm.com
arch/powerpc/kernel/eeh.c

index ca7f7bb2b478690608862baee41be6d31bbf0bcb..13578f4db254bf232f49170397efb436477438b7 100644 (file)
@@ -1208,16 +1208,16 @@ int eeh_dev_open(struct pci_dev *pdev)
        struct eeh_dev *edev;
        int ret = -ENODEV;
 
-       mutex_lock(&eeh_dev_mutex);
+       guard(mutex)(&eeh_dev_mutex);
 
        /* No PCI device ? */
        if (!pdev)
-               goto out;
+               return ret;
 
        /* No EEH device or PE ? */
        edev = pci_dev_to_eeh_dev(pdev);
        if (!edev || !edev->pe)
-               goto out;
+               return ret;
 
        /*
         * The PE might have been put into frozen state, but we
@@ -1227,16 +1227,12 @@ int eeh_dev_open(struct pci_dev *pdev)
         */
        ret = eeh_pe_change_owner(edev->pe);
        if (ret)
-               goto out;
+               return ret;
 
        /* Increase PE's pass through count */
        atomic_inc(&edev->pe->pass_dev_cnt);
-       mutex_unlock(&eeh_dev_mutex);
 
        return 0;
-out:
-       mutex_unlock(&eeh_dev_mutex);
-       return ret;
 }
 EXPORT_SYMBOL_GPL(eeh_dev_open);
 
@@ -1252,22 +1248,20 @@ void eeh_dev_release(struct pci_dev *pdev)
 {
        struct eeh_dev *edev;
 
-       mutex_lock(&eeh_dev_mutex);
+       guard(mutex)(&eeh_dev_mutex);
 
        /* No PCI device ? */
        if (!pdev)
-               goto out;
+               return;
 
        /* No EEH device ? */
        edev = pci_dev_to_eeh_dev(pdev);
        if (!edev || !edev->pe || !eeh_pe_passed(edev->pe))
-               goto out;
+               return;
 
        /* Decrease PE's pass through count */
        WARN_ON(atomic_dec_if_positive(&edev->pe->pass_dev_cnt) < 0);
        eeh_pe_change_owner(edev->pe);
-out:
-       mutex_unlock(&eeh_dev_mutex);
 }
 EXPORT_SYMBOL(eeh_dev_release);