diff options
| author | Gleb Natapov <gleb@redhat.com> | 2013-04-28 12:50:07 +0300 | 
|---|---|---|
| committer | Gleb Natapov <gleb@redhat.com> | 2013-04-28 12:50:07 +0300 | 
| commit | 064d1afaa5a60fc391d0b4b77599fc8f63f99cd3 (patch) | |
| tree | 2e640cdfa50b0048c52e021f07a8b24560251b26 /arch/powerpc/sysdev/xics/icp-native.c | |
| parent | 730dca42c1d363c939da18c1499c7327c66e2b37 (diff) | |
| parent | 8b78645c93b5d469e8006d68dbc92edc2640c654 (diff) | |
| download | olio-linux-3.10-064d1afaa5a60fc391d0b4b77599fc8f63f99cd3.tar.xz olio-linux-3.10-064d1afaa5a60fc391d0b4b77599fc8f63f99cd3.zip  | |
Merge git://github.com/agraf/linux-2.6.git kvm-ppc-next into queue
Diffstat (limited to 'arch/powerpc/sysdev/xics/icp-native.c')
| -rw-r--r-- | arch/powerpc/sysdev/xics/icp-native.c | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/powerpc/sysdev/xics/icp-native.c b/arch/powerpc/sysdev/xics/icp-native.c index 48861d3fcd0..20b328bb494 100644 --- a/arch/powerpc/sysdev/xics/icp-native.c +++ b/arch/powerpc/sysdev/xics/icp-native.c @@ -51,6 +51,12 @@ static struct icp_ipl __iomem *icp_native_regs[NR_CPUS];  static inline unsigned int icp_native_get_xirr(void)  {  	int cpu = smp_processor_id(); +	unsigned int xirr; + +	/* Handled an interrupt latched by KVM */ +	xirr = kvmppc_get_xics_latch(); +	if (xirr) +		return xirr;  	return in_be32(&icp_native_regs[cpu]->xirr.word);  } @@ -138,6 +144,7 @@ static unsigned int icp_native_get_irq(void)  static void icp_native_cause_ipi(int cpu, unsigned long data)  { +	kvmppc_set_host_ipi(cpu, 1);  	icp_native_set_qirr(cpu, IPI_PRIORITY);  } @@ -151,6 +158,7 @@ static irqreturn_t icp_native_ipi_action(int irq, void *dev_id)  {  	int cpu = smp_processor_id(); +	kvmppc_set_host_ipi(cpu, 0);  	icp_native_set_qirr(cpu, 0xff);  	return smp_ipi_demux();  |