qemu-patch-raspberry4/hw/intc
Bharata B Rao a45863bda9 xics_kvm: Don't enable KVM_CAP_IRQ_XICS if already enabled
When supporting CPU hot removal by parking the vCPU fd and reusing
it during hotplug again, there can be cases where we try to reenable
KVM_CAP_IRQ_XICS CAP for the vCPU for which it was already enabled.
Introduce a boolean member in ICPState to track this and don't
reenable the CAP if it was already enabled earlier.

Re-enabling this CAP should ideally work, but currently it results in
kernel trying to create and associate ICP with this vCPU and that
fails since there is already an ICP associated with it. Hence this
patch is needed to work around this problem in the kernel.

This change allows CPU hot removal to work for sPAPR.

Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
2015-07-07 17:44:52 +02:00
..
allwinner-a10-pic.c Convert ffs() != 0 callers to ctz32() 2015-04-28 15:36:08 +02:00
apic.c apic: convert ->busdev.qdev casts to C casts 2015-06-02 15:15:52 -03:00
apic_common.c migration: Use normal VMStateDescriptions for Subsections 2015-06-12 06:53:57 +02:00
arm_gic.c arm_gic: gic_update should always update all cores 2015-06-15 18:06:07 +01:00
arm_gic_common.c hw/intc/arm_gic_common.c: Reset all registers 2015-07-06 10:13:17 +01:00
arm_gic_kvm.c intc: arm_gic_kvm: set the qemu_irq/gsi mapping 2015-07-06 12:15:13 -06:00
arm_gicv2m.c arm_gicv2m: set kvm_gsi_direct_mapping and kvm_msi_via_irqfd_allowed 2015-06-02 14:56:25 +01:00
armv7m_nvic.c hw/intc/arm_gic: Change behavior of IAR writes 2015-05-12 11:57:18 +01:00
etraxfs_pic.c Fix remaining warnings from Sparse (void return) 2015-03-19 11:11:55 +03:00
exynos4210_combiner.c savevm: Remove all the unneeded version_minimum_id_old (arm) 2014-05-13 16:09:35 +01:00
exynos4210_gic.c hw/intc/exynos4210_gic.c: Fix memory leak by adjusting order 2015-06-03 14:21:24 +03:00
gic_internal.h hw/intc/arm_gic: Change behavior of IAR writes 2015-05-12 11:57:18 +01:00
grlib_irqmp.c hw: cannot_instantiate_with_device_add_yet due to pointer props 2013-12-24 17:27:17 +01:00
heathrow_pic.c savevm: Remove all the unneeded version_minimum_id_old (ppc) 2014-06-16 04:55:26 +02:00
i8259.c hmp: Name HMP info handler functions hmp_info_SUBCOMMAND() 2015-02-18 11:58:50 +01:00
i8259_common.c savevm: Remove all the unneeded version_minimum_id_old (x86) 2014-06-16 04:55:26 +02:00
imx_avic.c hw/intc/imx_avic.c: Remove unused function imx_avic_set_prio() 2014-09-29 18:48:47 +01:00
ioapic.c qemu: x86: ignore ioapic polarity 2014-03-09 21:09:38 +02:00
ioapic_common.c savevm: Remove all the unneeded version_minimum_id_old (x86) 2014-06-16 04:55:26 +02:00
lm32_pic.c hmp: Name HMP info handler functions hmp_info_SUBCOMMAND() 2015-02-18 11:58:50 +01:00
Makefile.objs arm_gicv2m: Add GICv2m widget to support MSIs 2015-06-02 14:56:25 +01:00
omap_intc.c omap_intc: convert ffs(3) to ctz32() in omap_inth_sir_update() 2015-04-28 15:36:08 +02:00
openpic.c qerror: Clean up QERR_ macros to expand into a single string 2015-06-22 18:20:40 +02:00
openpic_kvm.c KVM_CAP_IRQFD and KVM_CAP_IRQFD_RESAMPLE checks 2014-12-15 12:21:01 +01:00
pl190.c sysbus: Set cannot_instantiate_with_device_add_yet 2013-12-23 00:27:22 +01:00
puv3_intc.c puv3_intc: QOM cast cleanup 2013-07-29 21:06:58 +02:00
realview_gic.c realview_gic: Prepare for QOM embedding 2013-11-05 17:47:30 +01:00
s390_flic.c s390x: Replace unchecked qdev_init() by qdev_init_nofail() 2015-03-16 10:15:44 +01:00
s390_flic_kvm.c s390x/kvm: inject via flic 2014-06-10 09:50:27 +02:00
sh_intc.c cpu: Make first_cpu and next_cpu CPUState 2013-07-09 21:32:54 +02:00
slavio_intctl.c savevm: Remove all the unneeded version_minimum_id_old (rest) 2014-05-14 15:24:51 +02:00
xics.c spapr: Merge sPAPREnvironment into sPAPRMachineState 2015-07-07 17:44:50 +02:00
xics_kvm.c xics_kvm: Don't enable KVM_CAP_IRQ_XICS if already enabled 2015-07-07 17:44:52 +02:00
xilinx_intc.c intc: xilinx_uartlite: Convert SBD::init -> instance_init 2014-06-09 00:33:03 +02:00