[PATCH] soc: ti: knav_qmss_queue: Use IRQF_NO_AUTOEN flag in request_irq()

Nishanth Menon nm at ti.com
Fri Sep 13 11:14:21 PDT 2024


On 11:38-20240912, Jinjie Ruan wrote:
> disable_irq() after request_irq() still has a time gap in which
> interrupts can come. request_irq() with IRQF_NO_AUTOEN flag will
> disable IRQ auto-enable when request IRQ.

does it explicitly disable the irq?
> 
> Fixes: 41f93af900a2 ("soc: ti: add Keystone Navigator QMSS driver")

Not a fixes. at least not a fix when the code was introduced in 2014 and
the flag was introduced in 2015.

> Signed-off-by: Jinjie Ruan <ruanjinjie at huawei.com>
> ---
>  drivers/soc/ti/knav_qmss_queue.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/soc/ti/knav_qmss_queue.c b/drivers/soc/ti/knav_qmss_queue.c
> index f2055a76f84c..9c8d2f13b947 100644
> --- a/drivers/soc/ti/knav_qmss_queue.c
> +++ b/drivers/soc/ti/knav_qmss_queue.c
> @@ -119,11 +119,10 @@ static int knav_queue_setup_irq(struct knav_range_info *range,
>  
>  	if (range->flags & RANGE_HAS_IRQ) {
>  		irq = range->irqs[queue].irq;
> -		ret = request_irq(irq, knav_queue_int_handler, 0,
> -					inst->irq_name, inst);
> +		ret = request_irq(irq, knav_queue_int_handler, IRQF_NO_AUTOEN,
> +				  inst->irq_name, inst);
>  		if (ret)
>  			return ret;
> -		disable_irq(irq);
>  		if (range->irqs[queue].cpu_mask) {
>  			ret = irq_set_affinity_hint(irq, range->irqs[queue].cpu_mask);
>  			if (ret) {
> -- 
> 2.34.1
> 

-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D



More information about the linux-arm-kernel mailing list