Skip to content

Commit e80618b

Browse files
committed
genirq/autoprobe: Switch to lock guards
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
1 parent 5d964a9 commit e80618b

1 file changed

Lines changed: 9 additions & 17 deletions

File tree

kernel/irq/autoprobe.c

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -43,18 +43,16 @@ unsigned long probe_irq_on(void)
4343
* flush such a longstanding irq before considering it as spurious.
4444
*/
4545
for_each_irq_desc_reverse(i, desc) {
46-
raw_spin_lock_irq(&desc->lock);
46+
guard(raw_spinlock_irq)(&desc->lock);
4747
if (!desc->action && irq_settings_can_probe(desc)) {
4848
/*
4949
* Some chips need to know about probing in
5050
* progress:
5151
*/
5252
if (desc->irq_data.chip->irq_set_type)
53-
desc->irq_data.chip->irq_set_type(&desc->irq_data,
54-
IRQ_TYPE_PROBE);
53+
desc->irq_data.chip->irq_set_type(&desc->irq_data, IRQ_TYPE_PROBE);
5554
irq_activate_and_startup(desc, IRQ_NORESEND);
5655
}
57-
raw_spin_unlock_irq(&desc->lock);
5856
}
5957

6058
/* Wait for longstanding interrupts to trigger. */
@@ -66,13 +64,12 @@ unsigned long probe_irq_on(void)
6664
* happened in the previous stage, it may have masked itself)
6765
*/
6866
for_each_irq_desc_reverse(i, desc) {
69-
raw_spin_lock_irq(&desc->lock);
67+
guard(raw_spinlock_irq)(&desc->lock);
7068
if (!desc->action && irq_settings_can_probe(desc)) {
7169
desc->istate |= IRQS_AUTODETECT | IRQS_WAITING;
7270
if (irq_activate_and_startup(desc, IRQ_NORESEND))
7371
desc->istate |= IRQS_PENDING;
7472
}
75-
raw_spin_unlock_irq(&desc->lock);
7673
}
7774

7875
/*
@@ -84,18 +81,16 @@ unsigned long probe_irq_on(void)
8481
* Now filter out any obviously spurious interrupts
8582
*/
8683
for_each_irq_desc(i, desc) {
87-
raw_spin_lock_irq(&desc->lock);
88-
84+
guard(raw_spinlock_irq)(&desc->lock);
8985
if (desc->istate & IRQS_AUTODETECT) {
9086
/* It triggered already - consider it spurious. */
9187
if (!(desc->istate & IRQS_WAITING)) {
9288
desc->istate &= ~IRQS_AUTODETECT;
9389
irq_shutdown_and_deactivate(desc);
94-
} else
95-
if (i < 32)
96-
mask |= 1 << i;
90+
} else if (i < 32) {
91+
mask |= 1 << i;
92+
}
9793
}
98-
raw_spin_unlock_irq(&desc->lock);
9994
}
10095

10196
return mask;
@@ -121,15 +116,14 @@ unsigned int probe_irq_mask(unsigned long val)
121116
int i;
122117

123118
for_each_irq_desc(i, desc) {
124-
raw_spin_lock_irq(&desc->lock);
119+
guard(raw_spinlock_irq)(&desc->lock);
125120
if (desc->istate & IRQS_AUTODETECT) {
126121
if (i < 16 && !(desc->istate & IRQS_WAITING))
127122
mask |= 1 << i;
128123

129124
desc->istate &= ~IRQS_AUTODETECT;
130125
irq_shutdown_and_deactivate(desc);
131126
}
132-
raw_spin_unlock_irq(&desc->lock);
133127
}
134128
mutex_unlock(&probing_active);
135129

@@ -160,8 +154,7 @@ int probe_irq_off(unsigned long val)
160154
struct irq_desc *desc;
161155

162156
for_each_irq_desc(i, desc) {
163-
raw_spin_lock_irq(&desc->lock);
164-
157+
guard(raw_spinlock_irq)(&desc->lock);
165158
if (desc->istate & IRQS_AUTODETECT) {
166159
if (!(desc->istate & IRQS_WAITING)) {
167160
if (!nr_of_irqs)
@@ -171,7 +164,6 @@ int probe_irq_off(unsigned long val)
171164
desc->istate &= ~IRQS_AUTODETECT;
172165
irq_shutdown_and_deactivate(desc);
173166
}
174-
raw_spin_unlock_irq(&desc->lock);
175167
}
176168
mutex_unlock(&probing_active);
177169

0 commit comments

Comments
 (0)