diff options
-rw-r--r-- | kernel/irq/handle.c | 45 |
1 files changed, 25 insertions, 20 deletions
diff --git a/kernel/irq/handle.c b/kernel/irq/handle.c index 7fc7bc33d497..402fa3aec1e4 100644 --- a/kernel/irq/handle.c +++ b/kernel/irq/handle.c | |||
@@ -40,32 +40,37 @@ struct irq_desc irq_desc[NR_IRQS] __cacheline_aligned = { | |||
40 | }; | 40 | }; |
41 | 41 | ||
42 | /* | 42 | /* |
43 | * Generic 'no controller' code | 43 | * What should we do if we get a hw irq event on an illegal vector? |
44 | * Each architecture has to answer this themself. | ||
44 | */ | 45 | */ |
45 | static void end_none(unsigned int irq) { } | 46 | static void ack_bad(unsigned int irq) |
46 | static void enable_none(unsigned int irq) { } | ||
47 | static void disable_none(unsigned int irq) { } | ||
48 | static void shutdown_none(unsigned int irq) { } | ||
49 | static unsigned int startup_none(unsigned int irq) { return 0; } | ||
50 | |||
51 | static void ack_none(unsigned int irq) | ||
52 | { | 47 | { |
53 | /* | ||
54 | * 'what should we do if we get a hw irq event on an illegal vector'. | ||
55 | * each architecture has to answer this themself. | ||
56 | */ | ||
57 | ack_bad_irq(irq); | 48 | ack_bad_irq(irq); |
58 | } | 49 | } |
59 | 50 | ||
51 | /* | ||
52 | * NOP functions | ||
53 | */ | ||
54 | static void noop(unsigned int irq) | ||
55 | { | ||
56 | } | ||
57 | |||
58 | static unsigned int noop_ret(unsigned int irq) | ||
59 | { | ||
60 | return 0; | ||
61 | } | ||
62 | |||
63 | /* | ||
64 | * Generic no controller implementation | ||
65 | */ | ||
60 | struct hw_interrupt_type no_irq_type = { | 66 | struct hw_interrupt_type no_irq_type = { |
61 | .typename = "none", | 67 | .typename = "none", |
62 | .startup = startup_none, | 68 | .startup = noop_ret, |
63 | .shutdown = shutdown_none, | 69 | .shutdown = noop, |
64 | .enable = enable_none, | 70 | .enable = noop, |
65 | .disable = disable_none, | 71 | .disable = noop, |
66 | .ack = ack_none, | 72 | .ack = ack_bad, |
67 | .end = end_none, | 73 | .end = noop, |
68 | .set_affinity = NULL | ||
69 | }; | 74 | }; |
70 | 75 | ||
71 | /* | 76 | /* |