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

Reviewed-by: Srikar Dronamraju <sri...@linux.ibm.com>
Signed-off-by: Shrikanth Hegde <sshe...@linux.ibm.com>
---
 arch/powerpc/sysdev/fsl_mpic_timer_wakeup.c | 14 +++-----------
 1 file changed, 3 insertions(+), 11 deletions(-)

diff --git a/arch/powerpc/sysdev/fsl_mpic_timer_wakeup.c 
b/arch/powerpc/sysdev/fsl_mpic_timer_wakeup.c
index ce6c739c51e5..06d9101a5d49 100644
--- a/arch/powerpc/sysdev/fsl_mpic_timer_wakeup.c
+++ b/arch/powerpc/sysdev/fsl_mpic_timer_wakeup.c
@@ -75,7 +75,7 @@ static ssize_t fsl_timer_wakeup_store(struct device *dev,
        if (kstrtoll(buf, 0, &interval))
                return -EINVAL;
 
-       mutex_lock(&sysfs_lock);
+       guard(mutex)(&sysfs_lock);
 
        if (fsl_wakeup->timer) {
                disable_irq_wake(fsl_wakeup->timer->irq);
@@ -83,31 +83,23 @@ static ssize_t fsl_timer_wakeup_store(struct device *dev,
                fsl_wakeup->timer = NULL;
        }
 
-       if (!interval) {
-               mutex_unlock(&sysfs_lock);
+       if (!interval)
                return count;
-       }
 
        fsl_wakeup->timer = mpic_request_timer(fsl_mpic_timer_irq,
                                                fsl_wakeup, interval);
-       if (!fsl_wakeup->timer) {
-               mutex_unlock(&sysfs_lock);
+       if (!fsl_wakeup->timer)
                return -EINVAL;
-       }
 
        ret = enable_irq_wake(fsl_wakeup->timer->irq);
        if (ret) {
                mpic_free_timer(fsl_wakeup->timer);
                fsl_wakeup->timer = NULL;
-               mutex_unlock(&sysfs_lock);
-
                return ret;
        }
 
        mpic_start_timer(fsl_wakeup->timer);
 
-       mutex_unlock(&sysfs_lock);
-
        return count;
 }
 
-- 
2.39.3


Reply via email to