diff options
-rw-r--r-- | kernel/irq/manage.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 3a491c7c0679..a57e95254fdb 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -2330,15 +2330,8 @@ EXPORT_SYMBOL_GPL(irq_percpu_is_enabled); void disable_percpu_irq(unsigned int irq) { - unsigned int cpu = smp_processor_id(); - unsigned long flags; - struct irq_desc *desc = irq_get_desc_lock(irq, &flags, IRQ_GET_DESC_CHECK_PERCPU); - - if (!desc) - return; - - irq_percpu_disable(desc, cpu); - irq_put_desc_unlock(desc, flags); + scoped_irqdesc_get_and_lock(irq, IRQ_GET_DESC_CHECK_PERCPU) + irq_percpu_disable(scoped_irqdesc, smp_processor_id()); } EXPORT_SYMBOL_GPL(disable_percpu_irq); |