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.614161...@infradead.org/T/#u

Signed-off-by: Shrikanth Hegde <sshe...@linux.ibm.com>
---
 arch/powerpc/kernel/eeh.c | 20 +++++++-------------
 1 file changed, 7 insertions(+), 13 deletions(-)

diff --git a/arch/powerpc/kernel/eeh.c b/arch/powerpc/kernel/eeh.c
index 83fe99861eb1..929474c0ec77 100644
--- a/arch/powerpc/kernel/eeh.c
+++ b/arch/powerpc/kernel/eeh.c
@@ -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);
 
-- 
2.39.3


Reply via email to