aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/pseries/xics.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/platforms/pseries/xics.c')
-rw-r--r--arch/powerpc/platforms/pseries/xics.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c
index 62b0400577d..e1904774a70 100644
--- a/arch/powerpc/platforms/pseries/xics.c
+++ b/arch/powerpc/platforms/pseries/xics.c
@@ -498,26 +498,23 @@ static irqreturn_t xics_ipi_dispatch(int cpu)
498{ 498{
499 WARN_ON(cpu_is_offline(cpu)); 499 WARN_ON(cpu_is_offline(cpu));
500 500
501 mb(); /* order mmio clearing qirr */
501 while (xics_ipi_message[cpu].value) { 502 while (xics_ipi_message[cpu].value) {
502 if (test_and_clear_bit(PPC_MSG_CALL_FUNCTION, 503 if (test_and_clear_bit(PPC_MSG_CALL_FUNCTION,
503 &xics_ipi_message[cpu].value)) { 504 &xics_ipi_message[cpu].value)) {
504 mb();
505 smp_message_recv(PPC_MSG_CALL_FUNCTION); 505 smp_message_recv(PPC_MSG_CALL_FUNCTION);
506 } 506 }
507 if (test_and_clear_bit(PPC_MSG_RESCHEDULE, 507 if (test_and_clear_bit(PPC_MSG_RESCHEDULE,
508 &xics_ipi_message[cpu].value)) { 508 &xics_ipi_message[cpu].value)) {
509 mb();
510 smp_message_recv(PPC_MSG_RESCHEDULE); 509 smp_message_recv(PPC_MSG_RESCHEDULE);
511 } 510 }
512 if (test_and_clear_bit(PPC_MSG_CALL_FUNC_SINGLE, 511 if (test_and_clear_bit(PPC_MSG_CALL_FUNC_SINGLE,
513 &xics_ipi_message[cpu].value)) { 512 &xics_ipi_message[cpu].value)) {
514 mb();
515 smp_message_recv(PPC_MSG_CALL_FUNC_SINGLE); 513 smp_message_recv(PPC_MSG_CALL_FUNC_SINGLE);
516 } 514 }
517#if defined(CONFIG_DEBUGGER) || defined(CONFIG_KEXEC) 515#if defined(CONFIG_DEBUGGER) || defined(CONFIG_KEXEC)
518 if (test_and_clear_bit(PPC_MSG_DEBUGGER_BREAK, 516 if (test_and_clear_bit(PPC_MSG_DEBUGGER_BREAK,
519 &xics_ipi_message[cpu].value)) { 517 &xics_ipi_message[cpu].value)) {
520 mb();
521 smp_message_recv(PPC_MSG_DEBUGGER_BREAK); 518 smp_message_recv(PPC_MSG_DEBUGGER_BREAK);
522 } 519 }
523#endif 520#endif