diff options
author | Barry Song <song.bao.hua@hisilicon.com> | 2021-03-03 11:49:15 +1300 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2021-03-06 12:48:00 +0100 |
commit | cbe16f35bee6880becca6f20d2ebf6b457148552 (patch) | |
tree | 4c82c004e0be2e9100af1407c11b5f35028a0d48 /net/llc/Makefile | |
parent | a38fd8748464831584a19438cbb3082b5a2dab15 (diff) | |
download | linux-stable-cbe16f35bee6880becca6f20d2ebf6b457148552.tar.gz linux-stable-cbe16f35bee6880becca6f20d2ebf6b457148552.tar.bz2 linux-stable-cbe16f35bee6880becca6f20d2ebf6b457148552.zip |
genirq: Add IRQF_NO_AUTOEN for request_irq/nmi()
Many drivers don't want interrupts enabled automatically via request_irq().
So they are handling this issue by either way of the below two:
(1)
irq_set_status_flags(irq, IRQ_NOAUTOEN);
request_irq(dev, irq...);
(2)
request_irq(dev, irq...);
disable_irq(irq);
The code in the second way is silly and unsafe. In the small time gap
between request_irq() and disable_irq(), interrupts can still come.
The code in the first way is safe though it's subobtimal.
Add a new IRQF_NO_AUTOEN flag which can be handed in by drivers to
request_irq() and request_nmi(). It prevents the automatic enabling of the
requested interrupt/nmi in the same safe way as #1 above. With that the
various usage sites of #1 and #2 above can be simplified and corrected.
Signed-off-by: Barry Song <song.bao.hua@hisilicon.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: dmitry.torokhov@gmail.com
Link: https://lore.kernel.org/r/20210302224916.13980-2-song.bao.hua@hisilicon.com
Diffstat (limited to 'net/llc/Makefile')
0 files changed, 0 insertions, 0 deletions