qemu-e2k/hw
Shmulik Ladkani 0560b0e97d virtio-pci: Set the QEMU_PCI_CAP_EXPRESS capability early in its DeviceClass realize method
In 1811e64 'hw/virtio: Add PCIe capability to virtio devices', the
QEMU_PCI_CAP_EXPRESS capability was added to virtio's pci_dev, within
'virtio_pci_realize' - the pci device object realization method.

This occurs to late, as 'pci_qdev_realize' (DeviceClass.realize of
TYPE_PCI_DEVICE) has already been called, without knowing that the
device instance is indeed an "express" instance, thus allocating
insufficient pci config space.

As a result, device may crash upon attempt to write to the PCIE config
space.

Fix, by arming the QEMU_PCI_CAP_EXPRESS capability early in virtio-pci's
own DeviceClass realize method.

This also makes code cleaner, as 'virtio_pci_realize' may now access the
'pci_is_express' predicate when needed.

Signed-off-by: Shmulik Ladkani <shmulik.ladkani@ravellosystems.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>
Tested-by: Marcel Apfelbaum <marcel@redhat.com>
2015-12-02 21:51:33 +02:00
..
9pfs virtio-9p: use QEMU thread pool 2015-11-30 12:36:12 +01:00
acpi Fix memory leak on error 2015-11-26 14:27:52 +02:00
alpha
arm xlnx-ep108: Fix minimum RAM check 2015-11-24 14:12:15 +00:00
audio Remove macros IO_READ_PROTO and IO_WRITE_PROTO 2015-10-19 09:03:53 +02:00
block Block layer patches 2015-11-25 14:47:06 +00:00
bt bt: fix use of uninitialized variable seqlen 2015-11-06 15:42:38 +03:00
char input: Convert to new qapi union layout 2015-11-02 08:30:28 +01:00
core q35: Check propery to determine if iommu is set 2015-11-17 15:41:13 +02:00
cpu
cris
display qxl: Use g_new() & friends where that makes obvious sense 2015-11-06 15:42:38 +03:00
dma hw/dma/pxa2xx: Remove superfluous memset 2015-11-06 15:42:38 +03:00
gpio i.MX: Standardize i.MX GPIO debug 2015-10-27 15:59:46 +00:00
i2c i.MX: Standardize i.MX I2C debug 2015-10-27 15:59:46 +00:00
i386 pc: Don't set hw_version on pc-*-2.5 2015-11-25 13:42:37 +02:00
ide atapi: Fix code indentation 2015-11-24 14:56:49 -05:00
input hw/input/tsc210x: Remove superfluous memset 2015-11-06 15:42:38 +03:00
intc hw/arm_gic: Correctly restore nested irq priority 2015-11-19 12:09:52 +00:00
ipack
isa hw/isa/lpc_ich9: inject the SMI on the VCPU that is writing to APM_CNT 2015-10-22 14:39:09 +03:00
lm32 ui/opengl: Reduce build required libraries for opengl 2015-11-03 10:13:42 +01:00
m68k
mem memory: Convert to new qapi union layout 2015-11-02 08:30:28 +01:00
microblaze
mips hw/mips_malta: Fix KVM PC initialisation 2015-10-30 13:30:14 +00:00
misc mac_dbdma: always initialize channel field in DBDMA_channel 2015-11-30 19:38:44 +11:00
moxie
net eepro100: Prevent two endless loops 2015-11-27 10:39:55 +08:00
nvram macio-nvram: add to misc category 2015-10-23 12:35:18 +11:00
openrisc
pci fix bad indentation in pcie_cap_slot_write_config() 2015-11-06 15:42:38 +03:00
pci-bridge
pci-host i440fx: print an error message if user tries to enable iommu 2015-11-17 15:41:13 +02:00
pcmcia hw: do not pass NULL to memory_region_init from instance_init 2015-10-09 15:25:56 +02:00
ppc hw/ppc/ppc405_boards: Fix infinite recursion by converting taihu_cpld from old_mmio 2015-11-30 19:39:00 +11:00
s390x virtio: handle non-virtio-1-capable backend for ccw 2015-12-02 19:34:11 +02:00
scsi virtio-scsi: don't crash without a valid device 2015-11-26 16:47:44 +01:00
sd sdhci: Split sdhci.h for public and internal device usage 2015-10-29 17:59:27 +00:00
sh4
smbios
sparc
sparc64
ssi
timer hw/timer/hpet.c: Avoid signed integer overflow which results in bugs on OSX 2015-11-09 15:48:21 +00:00
tpm tpm: avoid clang shifting negative signed warning 2015-11-17 18:35:56 +08:00
tricore
unicore32
usb usb: Use g_new() & friends where that makes obvious sense 2015-11-06 15:42:38 +03:00
vfio vfio: Use g_new() & friends where that makes obvious sense 2015-11-10 12:11:08 -07:00
virtio virtio-pci: Set the QEMU_PCI_CAP_EXPRESS capability early in its DeviceClass realize method 2015-12-02 21:51:33 +02:00
watchdog
xen xen: fix invalid assertion 2015-11-06 15:42:38 +03:00
xenpv xen: fix usage of xc_domain_create in domain builder 2015-11-13 17:38:06 +00:00
xtensa target-xtensa: xtfpga: attach FLASH to system IO 2015-10-21 21:28:33 +03:00
Makefile.objs