[PATCH 37/38] genirq: Do not call add_interrupt_randomness() in NMI context

Jinjie Ruan ruanjinjie at huawei.com
Thu Sep 17 04:55:07 PDT 2026



在 2026/9/14 18:21, Vladimir Murzin 写道:
> handle_irq_event_percpu() calls add_interrupt_randomness(). Similarly
> to 512718bbc51b ("genirq/chip: Don't call add_interrupt_randomness()
> for NMIs"), calling it while handling an NMI is not safe.
> 
> Stop calling add_interrupt_randomness() when handle_irq_event_percpu()
> runs in NMI context.
> 
> Signed-off-by: Vladimir Murzin <vladimir.murzin at arm.com>
> ---
>  kernel/irq/handle.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/kernel/irq/handle.c b/kernel/irq/handle.c
> index b7d52821837b..114fd63b0210 100644
> --- a/kernel/irq/handle.c
> +++ b/kernel/irq/handle.c
> @@ -245,7 +245,8 @@ irqreturn_t handle_irq_event_percpu(struct irq_desc *desc)
>  
>  	retval = __handle_irq_event_percpu(desc);
>  
> -	add_interrupt_randomness(desc->irq_data.irq);
> +	if (!in_nmi())
> +		add_interrupt_randomness(desc->irq_data.irq);


Reviewed-by: Jinjie Ruan <ruanjinjie at huawei.com>

>  
>  	if (!irq_settings_no_debug(desc))
>  		note_interrupt(desc, retval);

-- 
Best regards,
Jinjie




More information about the linux-arm-kernel mailing list