summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJinjie Ruan <ruanjinjie@huawei.com>2024-09-14 16:25:32 +0800
committerNishanth Menon <nm@ti.com>2024-10-25 08:58:18 -0500
commit10b8a0cc84d28decb75bfc91f4395e176228a4ff (patch)
tree598ba9853313b73883d7f6d788d8d700aa09c390
parent9852d85ec9d492ebef56dc5f229416c925758edc (diff)
downloadlinux-stable-10b8a0cc84d28decb75bfc91f4395e176228a4ff.tar.gz
linux-stable-10b8a0cc84d28decb75bfc91f4395e176228a4ff.tar.bz2
linux-stable-10b8a0cc84d28decb75bfc91f4395e176228a4ff.zip
soc: ti: knav_qmss_queue: Use IRQF_NO_AUTOEN flag in request_irq()
As commit cbe16f35bee6 ("genirq: Add IRQF_NO_AUTOEN for request_irq/nmi()") said, reqeust_irq() and then disable_irq() is unsafe. In the small time gap between request_irq() and disable_irq(), interrupts can still come. IRQF_NO_AUTOEN flag can be used by drivers to request_irq(). It prevents the automatic enabling of the requested interrupt in the same safe way. With that the usage can be simplified and corrected. Compile-tested only. Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com> Link: https://lore.kernel.org/r/20240914082532.344456-1-ruanjinjie@huawei.com Signed-off-by: Nishanth Menon <nm@ti.com>
-rw-r--r--drivers/soc/ti/knav_qmss_queue.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/soc/ti/knav_qmss_queue.c b/drivers/soc/ti/knav_qmss_queue.c
index 6c98738e548a..c099f9e7f8c6 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) {