Skip to content

Commit bddd10c

Browse files
committed
genirq/manage: Rework enable_irq()
Use the new guards to get and lock the interrupt descriptor and tidy up the code. No functional change. Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: Peter Zijlstra (Intel) <[email protected]> Link: https://lore.kernel.org/all/[email protected]
1 parent 1b74444 commit bddd10c

File tree

1 file changed

+6
-11
lines changed

1 file changed

+6
-11
lines changed

kernel/irq/manage.c

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -789,18 +789,13 @@ void __enable_irq(struct irq_desc *desc)
789789
*/
790790
void enable_irq(unsigned int irq)
791791
{
792-
unsigned long flags;
793-
struct irq_desc *desc = irq_get_desc_buslock(irq, &flags, IRQ_GET_DESC_CHECK_GLOBAL);
794-
795-
if (!desc)
796-
return;
797-
if (WARN(!desc->irq_data.chip,
798-
KERN_ERR "enable_irq before setup/request_irq: irq %u\n", irq))
799-
goto out;
792+
scoped_irqdesc_get_and_lock(irq, IRQ_GET_DESC_CHECK_GLOBAL) {
793+
struct irq_desc *desc = scoped_irqdesc;
800794

801-
__enable_irq(desc);
802-
out:
803-
irq_put_desc_busunlock(desc, flags);
795+
if (WARN(!desc->irq_data.chip, "enable_irq before setup/request_irq: irq %u\n", irq))
796+
return;
797+
__enable_irq(desc);
798+
}
804799
}
805800
EXPORT_SYMBOL(enable_irq);
806801

0 commit comments

Comments
 (0)