diff options
Diffstat (limited to 'arch/powerpc/platforms/pseries')
-rw-r--r-- | arch/powerpc/platforms/pseries/ras.c | 14 | ||||
-rw-r--r-- | arch/powerpc/platforms/pseries/setup.c | 7 | ||||
-rw-r--r-- | arch/powerpc/platforms/pseries/xics.c | 18 | ||||
-rw-r--r-- | arch/powerpc/platforms/pseries/xics.h | 3 |
4 files changed, 18 insertions, 24 deletions
diff --git a/arch/powerpc/platforms/pseries/ras.c b/arch/powerpc/platforms/pseries/ras.c index 311ed1993fc0..b1d3d161249e 100644 --- a/arch/powerpc/platforms/pseries/ras.c +++ b/arch/powerpc/platforms/pseries/ras.c | |||
@@ -65,16 +65,14 @@ static int ras_check_exception_token; | |||
65 | #define EPOW_SENSOR_INDEX 0 | 65 | #define EPOW_SENSOR_INDEX 0 |
66 | #define RAS_VECTOR_OFFSET 0x500 | 66 | #define RAS_VECTOR_OFFSET 0x500 |
67 | 67 | ||
68 | static irqreturn_t ras_epow_interrupt(int irq, void *dev_id, | 68 | static irqreturn_t ras_epow_interrupt(int irq, void *dev_id); |
69 | struct pt_regs * regs); | 69 | static irqreturn_t ras_error_interrupt(int irq, void *dev_id); |
70 | static irqreturn_t ras_error_interrupt(int irq, void *dev_id, | ||
71 | struct pt_regs * regs); | ||
72 | 70 | ||
73 | /* #define DEBUG */ | 71 | /* #define DEBUG */ |
74 | 72 | ||
75 | 73 | ||
76 | static void request_ras_irqs(struct device_node *np, | 74 | static void request_ras_irqs(struct device_node *np, |
77 | irqreturn_t (*handler)(int, void *, struct pt_regs *), | 75 | irq_handler_t handler, |
78 | const char *name) | 76 | const char *name) |
79 | { | 77 | { |
80 | int i, index, count = 0; | 78 | int i, index, count = 0; |
@@ -166,8 +164,7 @@ __initcall(init_ras_IRQ); | |||
166 | * to examine the type of power failure and take appropriate action where | 164 | * to examine the type of power failure and take appropriate action where |
167 | * the time horizon permits something useful to be done. | 165 | * the time horizon permits something useful to be done. |
168 | */ | 166 | */ |
169 | static irqreturn_t | 167 | static irqreturn_t ras_epow_interrupt(int irq, void *dev_id) |
170 | ras_epow_interrupt(int irq, void *dev_id, struct pt_regs * regs) | ||
171 | { | 168 | { |
172 | int status = 0xdeadbeef; | 169 | int status = 0xdeadbeef; |
173 | int state = 0; | 170 | int state = 0; |
@@ -210,8 +207,7 @@ ras_epow_interrupt(int irq, void *dev_id, struct pt_regs * regs) | |||
210 | * For nonrecoverable errors, an error is logged and we stop all processing | 207 | * For nonrecoverable errors, an error is logged and we stop all processing |
211 | * as quickly as possible in order to prevent propagation of the failure. | 208 | * as quickly as possible in order to prevent propagation of the failure. |
212 | */ | 209 | */ |
213 | static irqreturn_t | 210 | static irqreturn_t ras_error_interrupt(int irq, void *dev_id) |
214 | ras_error_interrupt(int irq, void *dev_id, struct pt_regs * regs) | ||
215 | { | 211 | { |
216 | struct rtas_error_log *rtas_elog; | 212 | struct rtas_error_log *rtas_elog; |
217 | int status = 0xdeadbeef; | 213 | int status = 0xdeadbeef; |
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c index f82b13e531a3..ad9aec2c6fee 100644 --- a/arch/powerpc/platforms/pseries/setup.c +++ b/arch/powerpc/platforms/pseries/setup.c | |||
@@ -121,12 +121,11 @@ static void __init fwnmi_init(void) | |||
121 | fwnmi_active = 1; | 121 | fwnmi_active = 1; |
122 | } | 122 | } |
123 | 123 | ||
124 | void pseries_8259_cascade(unsigned int irq, struct irq_desc *desc, | 124 | void pseries_8259_cascade(unsigned int irq, struct irq_desc *desc) |
125 | struct pt_regs *regs) | ||
126 | { | 125 | { |
127 | unsigned int cascade_irq = i8259_irq(regs); | 126 | unsigned int cascade_irq = i8259_irq(get_irq_regs()); |
128 | if (cascade_irq != NO_IRQ) | 127 | if (cascade_irq != NO_IRQ) |
129 | generic_handle_irq(cascade_irq, regs); | 128 | generic_handle_irq(cascade_irq); |
130 | desc->chip->eoi(irq); | 129 | desc->chip->eoi(irq); |
131 | } | 130 | } |
132 | 131 | ||
diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c index 253972e5479f..f6bd2f285153 100644 --- a/arch/powerpc/platforms/pseries/xics.c +++ b/arch/powerpc/platforms/pseries/xics.c | |||
@@ -324,7 +324,7 @@ static unsigned int xics_get_irq_lpar(struct pt_regs *regs) | |||
324 | 324 | ||
325 | #ifdef CONFIG_SMP | 325 | #ifdef CONFIG_SMP |
326 | 326 | ||
327 | static irqreturn_t xics_ipi_dispatch(int cpu, struct pt_regs *regs) | 327 | static irqreturn_t xics_ipi_dispatch(int cpu) |
328 | { | 328 | { |
329 | WARN_ON(cpu_is_offline(cpu)); | 329 | WARN_ON(cpu_is_offline(cpu)); |
330 | 330 | ||
@@ -332,47 +332,47 @@ static irqreturn_t xics_ipi_dispatch(int cpu, struct pt_regs *regs) | |||
332 | if (test_and_clear_bit(PPC_MSG_CALL_FUNCTION, | 332 | if (test_and_clear_bit(PPC_MSG_CALL_FUNCTION, |
333 | &xics_ipi_message[cpu].value)) { | 333 | &xics_ipi_message[cpu].value)) { |
334 | mb(); | 334 | mb(); |
335 | smp_message_recv(PPC_MSG_CALL_FUNCTION, regs); | 335 | smp_message_recv(PPC_MSG_CALL_FUNCTION); |
336 | } | 336 | } |
337 | if (test_and_clear_bit(PPC_MSG_RESCHEDULE, | 337 | if (test_and_clear_bit(PPC_MSG_RESCHEDULE, |
338 | &xics_ipi_message[cpu].value)) { | 338 | &xics_ipi_message[cpu].value)) { |
339 | mb(); | 339 | mb(); |
340 | smp_message_recv(PPC_MSG_RESCHEDULE, regs); | 340 | smp_message_recv(PPC_MSG_RESCHEDULE); |
341 | } | 341 | } |
342 | #if 0 | 342 | #if 0 |
343 | if (test_and_clear_bit(PPC_MSG_MIGRATE_TASK, | 343 | if (test_and_clear_bit(PPC_MSG_MIGRATE_TASK, |
344 | &xics_ipi_message[cpu].value)) { | 344 | &xics_ipi_message[cpu].value)) { |
345 | mb(); | 345 | mb(); |
346 | smp_message_recv(PPC_MSG_MIGRATE_TASK, regs); | 346 | smp_message_recv(PPC_MSG_MIGRATE_TASK); |
347 | } | 347 | } |
348 | #endif | 348 | #endif |
349 | #if defined(CONFIG_DEBUGGER) || defined(CONFIG_KEXEC) | 349 | #if defined(CONFIG_DEBUGGER) || defined(CONFIG_KEXEC) |
350 | if (test_and_clear_bit(PPC_MSG_DEBUGGER_BREAK, | 350 | if (test_and_clear_bit(PPC_MSG_DEBUGGER_BREAK, |
351 | &xics_ipi_message[cpu].value)) { | 351 | &xics_ipi_message[cpu].value)) { |
352 | mb(); | 352 | mb(); |
353 | smp_message_recv(PPC_MSG_DEBUGGER_BREAK, regs); | 353 | smp_message_recv(PPC_MSG_DEBUGGER_BREAK); |
354 | } | 354 | } |
355 | #endif | 355 | #endif |
356 | } | 356 | } |
357 | return IRQ_HANDLED; | 357 | return IRQ_HANDLED; |
358 | } | 358 | } |
359 | 359 | ||
360 | static irqreturn_t xics_ipi_action_direct(int irq, void *dev_id, struct pt_regs *regs) | 360 | static irqreturn_t xics_ipi_action_direct(int irq, void *dev_id) |
361 | { | 361 | { |
362 | int cpu = smp_processor_id(); | 362 | int cpu = smp_processor_id(); |
363 | 363 | ||
364 | direct_qirr_info(cpu, 0xff); | 364 | direct_qirr_info(cpu, 0xff); |
365 | 365 | ||
366 | return xics_ipi_dispatch(cpu, regs); | 366 | return xics_ipi_dispatch(cpu); |
367 | } | 367 | } |
368 | 368 | ||
369 | static irqreturn_t xics_ipi_action_lpar(int irq, void *dev_id, struct pt_regs *regs) | 369 | static irqreturn_t xics_ipi_action_lpar(int irq, void *dev_id) |
370 | { | 370 | { |
371 | int cpu = smp_processor_id(); | 371 | int cpu = smp_processor_id(); |
372 | 372 | ||
373 | lpar_qirr_info(cpu, 0xff); | 373 | lpar_qirr_info(cpu, 0xff); |
374 | 374 | ||
375 | return xics_ipi_dispatch(cpu, regs); | 375 | return xics_ipi_dispatch(cpu); |
376 | } | 376 | } |
377 | 377 | ||
378 | void xics_cause_IPI(int cpu) | 378 | void xics_cause_IPI(int cpu) |
diff --git a/arch/powerpc/platforms/pseries/xics.h b/arch/powerpc/platforms/pseries/xics.h index 6ee1055b0ffb..db0ec3ba3ae2 100644 --- a/arch/powerpc/platforms/pseries/xics.h +++ b/arch/powerpc/platforms/pseries/xics.h | |||
@@ -31,7 +31,6 @@ struct xics_ipi_struct { | |||
31 | extern struct xics_ipi_struct xics_ipi_message[NR_CPUS] __cacheline_aligned; | 31 | extern struct xics_ipi_struct xics_ipi_message[NR_CPUS] __cacheline_aligned; |
32 | 32 | ||
33 | struct irq_desc; | 33 | struct irq_desc; |
34 | extern void pseries_8259_cascade(unsigned int irq, struct irq_desc *desc, | 34 | extern void pseries_8259_cascade(unsigned int irq, struct irq_desc *desc); |
35 | struct pt_regs *regs); | ||
36 | 35 | ||
37 | #endif /* _POWERPC_KERNEL_XICS_H */ | 36 | #endif /* _POWERPC_KERNEL_XICS_H */ |