xemu/hw/ppc
Greg Kurz ce266b75fe spapr_pci: fix irq leak in RTAS ibm,change-msi
This RTAS call is used to request new interrupts or to free all interrupts.

If the driver has already allocated interrupts and asks again for a non-null
number of irqs, then the rtas_ibm_change_msi() function will silently leak
the previous interrupts.

It happens because xics_free() is only called when the driver releases all
interrupts (!req_num case). Note that the previously allocated spapr_pci_msi
is not leaked because the GHashTable is created with destroy functions and
g_hash_table_insert() hence frees the old value.

This patch makes sure any previously allocated MSIs are released when a
new allocation succeeds.

Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2016-02-28 16:19:02 +11:00
..
e500-ccsr.h ppc: do not use ../ in include files 2013-03-01 13:57:33 +01:00
e500.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
e500.h PPC: e500 pci host: Add support for ATMUs 2015-01-07 16:16:24 +01:00
e500plat.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
mac_newworld.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
mac_oldworld.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
mac.h cuda: port SET_DEVICE_LIST command to new framework 2016-02-17 09:59:30 +11:00
Makefile.objs ppc/spapr: Implement H_RANDOM hypercall in QEMU 2015-09-23 10:51:11 +10:00
mpc8544_guts.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
mpc8544ds.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
ppc4xx_devs.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
ppc4xx_pci.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
ppc405_boards.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
ppc405_uc.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
ppc405.h hw: move private headers to hw/ subdirectories. 2013-04-08 18:13:16 +02:00
ppc440_bamboo.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
ppc_booke.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
ppc.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
ppce500_spin.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
prep.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
spapr_drc.c qapi: Drop unused error argument for list and implicit struct 2016-02-08 17:29:57 +01:00
spapr_events.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
spapr_hcall.c hw/ppc/spapr: Implement the h_page_init hypercall 2016-02-25 13:58:44 +11:00
spapr_iommu.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
spapr_pci_vfio.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
spapr_pci.c spapr_pci: fix irq leak in RTAS ibm,change-msi 2016-02-28 16:19:02 +11:00
spapr_rng.c spapr_rng: disable hotpluggability 2016-02-28 16:19:02 +11:00
spapr_rtas.c hw/ppc/spapr: Halt CPU when powering off via RTAS call 2016-02-18 11:08:43 +11:00
spapr_rtc.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
spapr_vio.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
spapr.c spapr: initialize local Error pointer 2016-02-25 13:58:44 +11:00
virtex_ml507.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00