[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250314090409.GV5880@noisy.programming.kicks-ass.net>
Date: Fri, 14 Mar 2025 10:04:09 +0100
From: Peter Zijlstra <peterz@...radead.org>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: LKML <linux-kernel@...r.kernel.org>, Jiri Slaby <jirislaby@...nel.org>
Subject: Re: [patch 00/46] genirq: Cleanups and conversion to lock guards
On Thu, Mar 13, 2025 at 04:59:41PM +0100, Thomas Gleixner wrote:
> The generic interrupt core code has accumulated quite some inconsistencies
> over time and a common pattern in various API functions is:
>
> unsigned long flags;
> struct irq_desc *desc = irq_get_desc_[bus]lock(irq, &flags, mode);
>
> if (!desc)
> return -EINVAL;
> ....
> irq_put_desc_[bus]unlock(desc, flags);
>
> That's awkward and requires gotos in failure paths.
>
> This series provides conditional lock guards and converts the core code
> over to use those guards. Along with that it converts the other open coded
> lock/unlock pairs and fixes up coding and kernel doc formatting. The
> conversions were partially done with Coccinelle where possible.
I see you've chosen for the scoped_guard() variant here, as opposed to
the scoped_cond_guard() one :-)
Anyway, cursory reading of the patches show no obvious weirdness.
> include/linux/irq.h | 2
> kernel/irq/autoprobe.c | 26 -
> kernel/irq/chip.c | 640 ++++++++++----------------
> kernel/irq/cpuhotplug.c | 10
> kernel/irq/debugfs.c | 3
> kernel/irq/internals.h | 47 -
> kernel/irq/irqdesc.c | 136 +----
> kernel/irq/manage.c | 1154 ++++++++++++++++++++----------------------------
> kernel/irq/pm.c | 38 -
> kernel/irq/proc.c | 65 --
> kernel/irq/resend.c | 50 --
> kernel/irq/spurious.c | 104 +---
> 12 files changed, 920 insertions(+), 1355 deletions(-)
Nice!
Powered by blists - more mailing lists