[POWERPC] Fix iseries/smp.c for irq breakage
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
committed by
Paul Mackerras
parent
27db2d0cb9
commit
1224f373c9
@@ -43,10 +43,7 @@
|
|||||||
#include "irq.h"
|
#include "irq.h"
|
||||||
#include "pci.h"
|
#include "pci.h"
|
||||||
#include "call_pci.h"
|
#include "call_pci.h"
|
||||||
|
#include "smp.h"
|
||||||
#if defined(CONFIG_SMP)
|
|
||||||
extern void iSeries_smp_message_recv(struct pt_regs *);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_PCI
|
#ifdef CONFIG_PCI
|
||||||
|
|
||||||
@@ -315,7 +312,7 @@ unsigned int iSeries_get_irq(struct pt_regs *regs)
|
|||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
if (get_lppaca()->int_dword.fields.ipi_cnt) {
|
if (get_lppaca()->int_dword.fields.ipi_cnt) {
|
||||||
get_lppaca()->int_dword.fields.ipi_cnt = 0;
|
get_lppaca()->int_dword.fields.ipi_cnt = 0;
|
||||||
iSeries_smp_message_recv(regs);
|
iSeries_smp_message_recv();
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_SMP */
|
#endif /* CONFIG_SMP */
|
||||||
if (hvlpevent_is_pending())
|
if (hvlpevent_is_pending())
|
||||||
|
@@ -43,9 +43,11 @@
|
|||||||
#include <asm/cputable.h>
|
#include <asm/cputable.h>
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
|
|
||||||
|
#include "smp.h"
|
||||||
|
|
||||||
static unsigned long iSeries_smp_message[NR_CPUS];
|
static unsigned long iSeries_smp_message[NR_CPUS];
|
||||||
|
|
||||||
void iSeries_smp_message_recv(struct pt_regs *regs)
|
void iSeries_smp_message_recv(void)
|
||||||
{
|
{
|
||||||
int cpu = smp_processor_id();
|
int cpu = smp_processor_id();
|
||||||
int msg;
|
int msg;
|
||||||
@@ -55,7 +57,7 @@ void iSeries_smp_message_recv(struct pt_regs *regs)
|
|||||||
|
|
||||||
for (msg = 0; msg < 4; msg++)
|
for (msg = 0; msg < 4; msg++)
|
||||||
if (test_and_clear_bit(msg, &iSeries_smp_message[cpu]))
|
if (test_and_clear_bit(msg, &iSeries_smp_message[cpu]))
|
||||||
smp_message_recv(msg, regs);
|
smp_message_recv(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void smp_iSeries_do_message(int cpu, int msg)
|
static inline void smp_iSeries_do_message(int cpu, int msg)
|
||||||
|
6
arch/powerpc/platforms/iseries/smp.h
Normal file
6
arch/powerpc/platforms/iseries/smp.h
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#ifndef _PLATFORMS_ISERIES_SMP_H
|
||||||
|
#define _PLATFORMS_ISERIES_SMP_H
|
||||||
|
|
||||||
|
extern void iSeries_smp_message_recv(void);
|
||||||
|
|
||||||
|
#endif /* _PLATFORMS_ISERIES_SMP_H */
|
Reference in New Issue
Block a user