]> git.proxmox.com Git - mirror_qemu.git/commit
arm_gicv3_kvm: kvm_dist_get/put: skip the registers banked by GICR
authorShannon Zhao <zhaoshenglong@huawei.com>
Fri, 8 Jun 2018 12:15:32 +0000 (13:15 +0100)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Thu, 21 Jun 2018 01:45:06 +0000 (20:45 -0500)
commit5d639531b7f6814c79c992f3753be6e8b34acb6f
treebf7480094fa20319a8755a13af71bb2b50dbe513
parentdeabb454dc39d633fcd4c6951079f1d7581a6720
arm_gicv3_kvm: kvm_dist_get/put: skip the registers banked by GICR

While we skip the GIC_INTERNAL irqs, we don't change the register offset
accordingly. This will overlap the GICR registers value and leave the
last GIC_INTERNAL irq's registers out of update.

Fix this by skipping the registers banked by GICR.

Also for migration compatibility if the migration source (old version
qemu) doesn't send gicd_no_migration_shift_bug = 1 to destination, then
we shift the data of PPI to get the right data for SPI.

Fixes: 367b9f527becdd20ddf116e17a3c0c2bbc486920
Cc: qemu-stable@nongnu.org
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Shannon Zhao <zhaoshenglong@huawei.com>
Message-id: 1527816987-16108-1-git-send-email-zhaoshenglong@huawei.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
(cherry picked from commit 910e204841954b95c051b2ee49ab0f5c735ff93c)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
hw/intc/arm_gicv3_common.c
hw/intc/arm_gicv3_kvm.c
include/hw/intc/arm_gicv3_common.h