]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
genirq/autoprobe: Switch to lock guards
authorThomas Gleixner <tglx@linutronix.de>
Tue, 29 Apr 2025 06:54:52 +0000 (08:54 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 7 May 2025 07:08:11 +0000 (09:08 +0200)
Convert all lock/unlock pairs to guards.

No functional change.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/all/20250429065420.188866381@linutronix.de
kernel/irq/autoprobe.c

index ae60cae24e9aa3db1a6ac950c474e83854f73b37..d0af8a8b3ae679540cc779db0db528844c1beeb1 100644 (file)
@@ -43,18 +43,16 @@ unsigned long probe_irq_on(void)
         * flush such a longstanding irq before considering it as spurious.
         */
        for_each_irq_desc_reverse(i, desc) {
-               raw_spin_lock_irq(&desc->lock);
+               guard(raw_spinlock_irq)(&desc->lock);
                if (!desc->action && irq_settings_can_probe(desc)) {
                        /*
                         * Some chips need to know about probing in
                         * progress:
                         */
                        if (desc->irq_data.chip->irq_set_type)
-                               desc->irq_data.chip->irq_set_type(&desc->irq_data,
-                                                        IRQ_TYPE_PROBE);
+                               desc->irq_data.chip->irq_set_type(&desc->irq_data, IRQ_TYPE_PROBE);
                        irq_activate_and_startup(desc, IRQ_NORESEND);
                }
-               raw_spin_unlock_irq(&desc->lock);
        }
 
        /* Wait for longstanding interrupts to trigger. */
@@ -66,13 +64,12 @@ unsigned long probe_irq_on(void)
         * happened in the previous stage, it may have masked itself)
         */
        for_each_irq_desc_reverse(i, desc) {
-               raw_spin_lock_irq(&desc->lock);
+               guard(raw_spinlock_irq)(&desc->lock);
                if (!desc->action && irq_settings_can_probe(desc)) {
                        desc->istate |= IRQS_AUTODETECT | IRQS_WAITING;
                        if (irq_activate_and_startup(desc, IRQ_NORESEND))
                                desc->istate |= IRQS_PENDING;
                }
-               raw_spin_unlock_irq(&desc->lock);
        }
 
        /*
@@ -84,18 +81,16 @@ unsigned long probe_irq_on(void)
         * Now filter out any obviously spurious interrupts
         */
        for_each_irq_desc(i, desc) {
-               raw_spin_lock_irq(&desc->lock);
-
+               guard(raw_spinlock_irq)(&desc->lock);
                if (desc->istate & IRQS_AUTODETECT) {
                        /* It triggered already - consider it spurious. */
                        if (!(desc->istate & IRQS_WAITING)) {
                                desc->istate &= ~IRQS_AUTODETECT;
                                irq_shutdown_and_deactivate(desc);
-                       } else
-                               if (i < 32)
-                                       mask |= 1 << i;
+                       } else if (i < 32) {
+                               mask |= 1 << i;
+                       }
                }
-               raw_spin_unlock_irq(&desc->lock);
        }
 
        return mask;
@@ -121,7 +116,7 @@ unsigned int probe_irq_mask(unsigned long val)
        int i;
 
        for_each_irq_desc(i, desc) {
-               raw_spin_lock_irq(&desc->lock);
+               guard(raw_spinlock_irq)(&desc->lock);
                if (desc->istate & IRQS_AUTODETECT) {
                        if (i < 16 && !(desc->istate & IRQS_WAITING))
                                mask |= 1 << i;
@@ -129,7 +124,6 @@ unsigned int probe_irq_mask(unsigned long val)
                        desc->istate &= ~IRQS_AUTODETECT;
                        irq_shutdown_and_deactivate(desc);
                }
-               raw_spin_unlock_irq(&desc->lock);
        }
        mutex_unlock(&probing_active);
 
@@ -160,8 +154,7 @@ int probe_irq_off(unsigned long val)
        struct irq_desc *desc;
 
        for_each_irq_desc(i, desc) {
-               raw_spin_lock_irq(&desc->lock);
-
+               guard(raw_spinlock_irq)(&desc->lock);
                if (desc->istate & IRQS_AUTODETECT) {
                        if (!(desc->istate & IRQS_WAITING)) {
                                if (!nr_of_irqs)
@@ -171,7 +164,6 @@ int probe_irq_off(unsigned long val)
                        desc->istate &= ~IRQS_AUTODETECT;
                        irq_shutdown_and_deactivate(desc);
                }
-               raw_spin_unlock_irq(&desc->lock);
        }
        mutex_unlock(&probing_active);