summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2025-04-29 08:55:43 +0200
committerThomas Gleixner <tglx@linutronix.de>2025-05-07 09:08:15 +0200
commit90140d08ac7a1e1ea3136132e1fab9baec174c25 (patch)
tree81eb5b85645482b003d91c9285cd6c801196c2cd
parenta1ceb831417b8e23bd041d3e7021e235fa845128 (diff)
genirq/manage: Rework irq_set_parent()
Use the new guards to get and lock the interrupt descriptor and tidy up the code. 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/20250429065422.258216558@linutronix.de
-rw-r--r--kernel/irq/manage.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index b6f057a6b8ae4..a08bbada83eac 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -959,16 +959,11 @@ int __irq_set_trigger(struct irq_desc *desc, unsigned long flags)
#ifdef CONFIG_HARDIRQS_SW_RESEND
int irq_set_parent(int irq, int parent_irq)
{
- unsigned long flags;
- struct irq_desc *desc = irq_get_desc_lock(irq, &flags, 0);
-
- if (!desc)
- return -EINVAL;
-
- desc->parent_irq = parent_irq;
-
- irq_put_desc_unlock(desc, flags);
- return 0;
+ scoped_irqdesc_get_and_lock(irq, 0) {
+ scoped_irqdesc->parent_irq = parent_irq;
+ return 0;
+ }
+ return -EINVAL;
}
EXPORT_SYMBOL_GPL(irq_set_parent);
#endif