diff options
author | Jinjie Ruan <ruanjinjie@huawei.com> | 2024-09-14 16:25:32 +0800 |
---|---|---|
committer | Nishanth Menon <nm@ti.com> | 2024-10-25 08:58:18 -0500 |
commit | 10b8a0cc84d28decb75bfc91f4395e176228a4ff (patch) | |
tree | 598ba9853313b73883d7f6d788d8d700aa09c390 | |
parent | 9852d85ec9d492ebef56dc5f229416c925758edc (diff) | |
download | linux-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.c | 5 |
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) { |