From: Thomas Gleixner Date: Tue, 29 Apr 2025 06:55:20 +0000 (+0200) Subject: genirq/chip: Rework irq_set_irq_type() X-Git-Tag: v6.16-rc1~189^2~33 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fa870e0f3551cfff90c7d0261e8f208a83097946;p=thirdparty%2Flinux.git genirq/chip: Rework irq_set_irq_type() Use the new guards to get and lock the interrupt descriptor and tidy up the code. Fixup the kernel doc comment while at it. No functional change. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra (Intel) Link: https://lore.kernel.org/all/20250429065421.355673840@linutronix.de --- diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c index 92bf81aeba224..0904886fb2f7f 100644 --- a/kernel/irq/chip.c +++ b/kernel/irq/chip.c @@ -54,22 +54,15 @@ int irq_set_chip(unsigned int irq, const struct irq_chip *chip) EXPORT_SYMBOL(irq_set_chip); /** - * irq_set_irq_type - set the irq trigger type for an irq - * @irq: irq number - * @type: IRQ_TYPE_{LEVEL,EDGE}_* value - see include/linux/irq.h + * irq_set_irq_type - set the irq trigger type for an irq + * @irq: irq number + * @type: IRQ_TYPE_{LEVEL,EDGE}_* value - see include/linux/irq.h */ int irq_set_irq_type(unsigned int irq, unsigned int type) { - unsigned long flags; - struct irq_desc *desc = irq_get_desc_buslock(irq, &flags, IRQ_GET_DESC_CHECK_GLOBAL); - int ret = 0; - - if (!desc) - return -EINVAL; - - ret = __irq_set_trigger(desc, type); - irq_put_desc_busunlock(desc, flags); - return ret; + scoped_irqdesc_get_and_buslock(irq, IRQ_GET_DESC_CHECK_GLOBAL) + return __irq_set_trigger(scoped_irqdesc, type); + return -EINVAL; } EXPORT_SYMBOL(irq_set_irq_type);