From 229e16fd247c7d39822627916d18b52f733cbfa1 Mon Sep 17 00:00:00 2001 From: Sam Bobroff Date: Thu, 27 Apr 2017 16:32:03 +1000 Subject: ppc/xics: preserve P and Q bits for KVM IRQs Kernel commit 17d48610ae0f ("KVM: PPC: Book 3S: XICS: Implement ICS P/Q states") added new bits to the state used by KVM IRQs. Currently, QEMU does not preserve these bits, so migrating (or otherwise saving and restoring) the guest state causes the P and Q bits to be cleared. Clearing the P bit has no effect, because the kernel will set it based on other data, but the loss of a set Q bit will cause a lost interrupt. This patch preserves the P and Q bits, correcting the problem. Signed-off-by: Sam Bobroff Signed-off-by: David Gibson --- include/hw/ppc/xics.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/hw') diff --git a/include/hw/ppc/xics.h b/include/hw/ppc/xics.h index c215dc7..68525c8 100644 --- a/include/hw/ppc/xics.h +++ b/include/hw/ppc/xics.h @@ -144,6 +144,8 @@ struct ICSIRQState { #define XICS_STATUS_SENT 0x2 #define XICS_STATUS_REJECTED 0x4 #define XICS_STATUS_MASKED_PENDING 0x8 +#define XICS_STATUS_PRESENTED 0x10 +#define XICS_STATUS_QUEUED 0x20 uint8_t status; /* (flags & XICS_FLAGS_IRQ_MASK) == 0 means the interrupt is not allocated */ #define XICS_FLAGS_IRQ_LSI 0x1 -- cgit v1.1