qemu-irix/hw/ppc
Alexey Kardashevskiy 32c113c182 spapr_pci: Fix number of returned vectors in ibm, change-msi
Current guest kernels try allocating as many vectors as the quota is.
For example, in the case of virtio-net (which has just 3 vectors)
the guest requests 4 vectors (that is the quota in the test) and
the existing ibm,change-msi handler returns 4. But before it returns,
it calls msix_set_message() in a loop and corrupts memory behind
the end of msix_table.

This limits the number of vectors returned by ibm,change-msi to
the maximum supported by the actual device.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Cc: qemu-stable@nongnu.org
[agraf: squash in bugfix from aik]
Signed-off-by: Alexander Graf <agraf@suse.de>

(cherry picked from commit b26696b519)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2014-07-20 22:20:07 -05:00
..
Makefile.objs ppcemb-softmmu: Drop Mac and e500 emulation 2014-02-13 17:47:43 +01:00
e500-ccsr.h ppc: do not use ../ in include files 2013-03-01 13:57:33 +01:00
e500.c PPC: E500: Set PIR default reset value rather than SPR value 2014-04-08 11:19:59 +02:00
e500.h ppc: Don't duplicate QEMUMachineInitArgs in PPCE500Params 2013-08-21 23:22:22 +03:00
e500plat.c device_tree: s/qemu_devtree/qemu_fdt globally 2013-12-20 01:58:11 +01:00
mac.h hw/ppc/mac.h: remove unused BIOS_FILENAME definition 2013-12-02 21:18:18 +04:00
mac_newworld.c hw: Clean up bogus default boot order 2013-08-28 10:16:47 +03:00
mac_oldworld.c hw: Clean up bogus default boot order 2013-08-28 10:16:47 +03:00
mpc8544_guts.c cpu: Replace cpu_single_env with CPUState current_cpu 2013-07-09 21:20:28 +02:00
mpc8544ds.c device_tree: s/qemu_devtree/qemu_fdt globally 2013-12-20 01:58:11 +01:00
ppc.c PPC: Clean up DECR implementation 2014-04-08 11:20:04 +02:00
ppc4xx_devs.c hw/ppc: Avoid shifting left into sign bit 2014-03-27 19:22:49 +04:00
ppc4xx_pci.c pci-host: Consistently set cannot_instantiate_with_device_add_yet 2013-12-23 00:27:23 +01:00
ppc405.h hw: move private headers to hw/ subdirectories. 2013-04-08 18:13:16 +02:00
ppc405_boards.c pc,pci,virtio fixes and cleanups 2013-09-03 12:31:07 -05:00
ppc405_uc.c target-ppc: Clean up ENV_GET_CPU() usage 2014-03-13 19:01:48 +01:00
ppc440_bamboo.c hw/ppc: Avoid shifting left into sign bit 2014-03-27 19:22:49 +04:00
ppc_booke.c hw/ppc: Avoid shifting left into sign bit 2014-03-27 19:22:49 +04:00
ppce500_spin.c ppce500_spin: Initialize struct properly 2014-04-08 11:20:05 +02:00
prep.c raven: Set a correct PCI memory region 2014-03-20 00:33:17 +01:00
spapr.c spapr: Implement interface to fix device pathname 2014-03-20 02:40:26 +01:00
spapr_events.c spapr-rtas: replace return code constants with macros 2013-12-20 01:57:59 +01:00
spapr_hcall.c spapr_hcall: Fix little-endian resource handling in H_SET_MODE 2014-03-20 02:39:33 +01:00
spapr_iommu.c target-ppc: Introduce hypervisor call H_GET_TCE 2014-03-05 03:07:03 +01:00
spapr_pci.c spapr_pci: Fix number of returned vectors in ibm, change-msi 2014-07-20 22:20:07 -05:00
spapr_rtas.c target-ppc: spapr: e500: fix to use cpu_dt_id 2014-03-05 03:07:04 +01:00
spapr_vio.c spapr_vio: Fix firmware names 2014-03-20 02:40:13 +01:00
virtex_ml507.c hw/ppc: Avoid shifting left into sign bit 2014-03-27 19:22:49 +04:00