Re: [PATCH] genirq: Simplify the check for __irq_get_desc_lock()

From: Thomas Gleixner
Date: Mon May 06 2024 - 13:55:23 EST


On Mon, May 06 2024 at 20:50, Jinjie Ruan wrote:

> If it set "_IRQ_DESC_PERCPU" in "check" but the desc is not percpu, or if
> the desc is percpu but it not set "_IRQ_DESC_PERCPU" in "check", it both
> return NULL, so simplify the check in __irq_get_desc_lock() with "!=".

What is exactly simplified here?

> Signed-off-by: Jinjie Ruan <ruanjinjie@xxxxxxxxxx>
> ---
> kernel/irq/irqdesc.c | 6 +-----
> 1 file changed, 1 insertion(+), 5 deletions(-)
>
> diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c
> index 88ac3652fcf2..6c52deb134b9 100644
> --- a/kernel/irq/irqdesc.c
> +++ b/kernel/irq/irqdesc.c
> @@ -882,11 +882,7 @@ __irq_get_desc_lock(unsigned int irq, unsigned long *flags, bool bus,
>
> if (desc) {
> if (check & _IRQ_DESC_CHECK) {
> - if ((check & _IRQ_DESC_PERCPU) &&
> - !irq_settings_is_per_cpu_devid(desc))
> - return NULL;
> -
> - if (!(check & _IRQ_DESC_PERCPU) &&
> + if (!!(check & _IRQ_DESC_PERCPU) !=
> irq_settings_is_per_cpu_devid(desc))
> return NULL;

The existing code is readable and obvious. This is not.

Thanks,

tglx