diff options
Diffstat (limited to 'arch/powerpc/kernel/irq.c')
-rw-r--r-- | arch/powerpc/kernel/irq.c | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c index a5fe12aa937d..7d46e5d5b207 100644 --- a/arch/powerpc/kernel/irq.c +++ b/arch/powerpc/kernel/irq.c | |||
@@ -254,7 +254,6 @@ static inline void handle_one_irq(unsigned int irq) | |||
254 | struct thread_info *curtp, *irqtp; | 254 | struct thread_info *curtp, *irqtp; |
255 | unsigned long saved_sp_limit; | 255 | unsigned long saved_sp_limit; |
256 | struct irq_desc *desc; | 256 | struct irq_desc *desc; |
257 | void *handler; | ||
258 | 257 | ||
259 | /* Switch to the irq stack to handle this */ | 258 | /* Switch to the irq stack to handle this */ |
260 | curtp = current_thread_info(); | 259 | curtp = current_thread_info(); |
@@ -269,10 +268,6 @@ static inline void handle_one_irq(unsigned int irq) | |||
269 | desc = irq_desc + irq; | 268 | desc = irq_desc + irq; |
270 | saved_sp_limit = current->thread.ksp_limit; | 269 | saved_sp_limit = current->thread.ksp_limit; |
271 | 270 | ||
272 | handler = desc->handle_irq; | ||
273 | if (handler == NULL) | ||
274 | handler = &__do_IRQ; | ||
275 | |||
276 | irqtp->task = curtp->task; | 271 | irqtp->task = curtp->task; |
277 | irqtp->flags = 0; | 272 | irqtp->flags = 0; |
278 | 273 | ||
@@ -284,7 +279,7 @@ static inline void handle_one_irq(unsigned int irq) | |||
284 | current->thread.ksp_limit = (unsigned long)irqtp + | 279 | current->thread.ksp_limit = (unsigned long)irqtp + |
285 | _ALIGN_UP(sizeof(struct thread_info), 16); | 280 | _ALIGN_UP(sizeof(struct thread_info), 16); |
286 | 281 | ||
287 | call_handle_irq(irq, desc, irqtp, handler); | 282 | call_handle_irq(irq, desc, irqtp, desc->handle_irq); |
288 | current->thread.ksp_limit = saved_sp_limit; | 283 | current->thread.ksp_limit = saved_sp_limit; |
289 | irqtp->task = NULL; | 284 | irqtp->task = NULL; |
290 | 285 | ||