[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250506142412.GZ4439@noisy.programming.kicks-ass.net>
Date: Tue, 6 May 2025 16:24:12 +0200
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 V2 00/45] genirq: Cleanups and conversion to lock guards
On Tue, Apr 29, 2025 at 08:54:47AM +0200, Thomas Gleixner wrote:
> This is V2 of the generic interrupt locking overhaul. V1 can be found here:
>
> https://lore.kernel.org/all/20250313154615.860723120@linutronix.de
>
> 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.
So while my eyes glazed over near the end of the series, the general
shape of things looks right.
Acked-by: Peter Zijlstra (Intel) <peterz@...radead.org>
Jiri found a few nice cases where mixing the conditional scoped guard
with return variables went side-ways. I did a quick scan to see if I
could find more of that same pattern, but I think that's all of them.
Powered by blists - more mailing lists