mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
genirq: Provide NMI management for percpu_devid interrupts
Add support for percpu_devid interrupts treated as NMIs. Percpu_devid NMIs need to be setup/torn down on each CPU they target. The same restrictions as for global NMIs still apply for percpu_devid NMIs. Signed-off-by: Julien Thierry <julien.thierry@arm.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Ingo Molnar <mingo@kernel.org> Cc: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
This commit is contained in:
parent
b525903c25
commit
4b078c3f1a
2 changed files with 186 additions and 0 deletions
|
@ -168,10 +168,15 @@ request_percpu_irq(unsigned int irq, irq_handler_t handler,
|
|||
devname, percpu_dev_id);
|
||||
}
|
||||
|
||||
extern int __must_check
|
||||
request_percpu_nmi(unsigned int irq, irq_handler_t handler,
|
||||
const char *devname, void __percpu *dev);
|
||||
|
||||
extern const void *free_irq(unsigned int, void *);
|
||||
extern void free_percpu_irq(unsigned int, void __percpu *);
|
||||
|
||||
extern const void *free_nmi(unsigned int irq, void *dev_id);
|
||||
extern void free_percpu_nmi(unsigned int irq, void __percpu *percpu_dev_id);
|
||||
|
||||
struct device;
|
||||
|
||||
|
@ -224,7 +229,11 @@ extern bool irq_percpu_is_enabled(unsigned int irq);
|
|||
extern void irq_wake_thread(unsigned int irq, void *dev_id);
|
||||
|
||||
extern void disable_nmi_nosync(unsigned int irq);
|
||||
extern void disable_percpu_nmi(unsigned int irq);
|
||||
extern void enable_nmi(unsigned int irq);
|
||||
extern void enable_percpu_nmi(unsigned int irq, unsigned int type);
|
||||
extern int prepare_percpu_nmi(unsigned int irq);
|
||||
extern void teardown_percpu_nmi(unsigned int irq);
|
||||
|
||||
/* The following three functions are for the core kernel use only. */
|
||||
extern void suspend_device_irqs(void);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue