The guest physical address of the event queue will be part of the state to transfer in the migration. Let's just record it when the queue is configured. Signed-off-by: Cédric Le Goater <clg@xxxxxxxx> --- arch/powerpc/include/asm/xive.h | 1 + arch/powerpc/kvm/book3s_xive_native.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/arch/powerpc/include/asm/xive.h b/arch/powerpc/include/asm/xive.h index aef28248b5b7..4096e4164ada 100644 --- a/arch/powerpc/include/asm/xive.h +++ b/arch/powerpc/include/asm/xive.h @@ -73,6 +73,7 @@ struct xive_q { u32 esc_irq; atomic_t count; atomic_t pending_count; + u64 guest_qpage; }; /* Global enable flags for the XIVE support */ diff --git a/arch/powerpc/kvm/book3s_xive_native.c b/arch/powerpc/kvm/book3s_xive_native.c index 789c137f6b31..d705de3c5d65 100644 --- a/arch/powerpc/kvm/book3s_xive_native.c +++ b/arch/powerpc/kvm/book3s_xive_native.c @@ -693,6 +693,9 @@ static int kvmppc_h_int_set_queue_config(struct kvm_vcpu *vcpu, } qaddr = page_to_virt(page) + (qpage & ~PAGE_MASK); + /* Backup queue page guest address for migration */ + q->guest_qpage = qpage; + rc = xive_native_configure_queue(xc->vp_id, q, priority, (__be32 *) qaddr, qsize, true); if (rc) { -- 2.13.6