qemu-patch-raspberry4/hw
Vijay Mohan Pandarathil 7b4b0e9eda vfio: QEMU-AER: Qemu changes to support AER for VFIO-PCI devices
Add support for error containment when a VFIO device assigned to a KVM
guest encounters an error. This is for PCIe devices/drivers that support AER
functionality. When the host OS is notified of an error in a device either
through the firmware first approach or through an interrupt handled by the AER
root port driver, the error handler registered by the vfio-pci driver gets
invoked. The qemu process is signaled through an eventfd registered per
VFIO device by the qemu process. In the eventfd handler, qemu decides on
what action to take. In this implementation, guest is brought down to
contain the error.

The kernel patches for the above functionality has been already accepted.

This is a refresh of the QEMU patch which was reviewed earlier.
http://marc.info/?l=linux-kernel&m=136281557608087&w=2
This patch has the same contents and has been built after refreshing
to latest upstream and after the linux headers have been updated in qemu.

	- Create eventfd per vfio device assigned to a guest and register an
          event handler

	- This fd is passed to the vfio_pci driver through the SET_IRQ ioctl

	- When the device encounters an error, the eventfd is signalled
          and the qemu eventfd handler gets invoked.

	- In the handler decide what action to take. Current action taken
          is to stop the guest.

Signed-off-by: Vijay Mohan Pandarathil <vijaymohan.pandarathil@hp.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
2013-07-15 15:49:49 -06:00
..
9pfs hw/9pfs: Fix memory leak in error path 2013-07-09 13:38:56 -05:00
acpi hw/a*: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
alpha cpu: Replace cpu_single_env with CPUState current_cpu 2013-07-09 21:20:28 +02:00
arm QOM CPUState refactorings 2013-07-10 10:54:16 -05:00
audio hw/a*: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
block hw/block: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
bt sysemu: avoid proliferation of include/ subdirectories 2013-04-15 18:19:25 +02:00
char hw/c*: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
core hw/c*: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
cpu hw/c*: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
cris memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
display add a header file for atomic operations 2013-07-04 17:42:49 +02:00
dma hw/d*: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
gpio hw/gpio: pass owner to memory_region_init* functions 2013-07-04 17:42:47 +02:00
i2c Extend support of SMBUS(module pm_smbus.c) HST_STS register. 2013-07-09 13:38:55 -05:00
i386 cpu: Make first_cpu and next_cpu CPUState 2013-07-09 21:32:54 +02:00
ide PPC: dbdma: Support more multi-issue DMA requests 2013-07-11 18:51:25 +02:00
input hw/i*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
intc pseries: move interrupt controllers to hw/intc/ 2013-07-11 18:51:23 +02:00
isa cpu: Make first_cpu and next_cpu CPUState 2013-07-09 21:32:54 +02:00
lm32 memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
m68k memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
microblaze microblaze: Fix latent bug with default DTB lookup 2013-07-09 13:38:58 -05:00
mips cpu: Make first_cpu and next_cpu CPUState 2013-07-09 21:32:54 +02:00
misc vfio: QEMU-AER: Qemu changes to support AER for VFIO-PCI devices 2013-07-15 15:49:49 -06:00
moxie memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
net pci,misc enhancements 2013-07-08 08:00:23 -05:00
nvram hw/n*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
openrisc memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
pci pci,misc enhancements 2013-07-08 08:00:23 -05:00
pci-bridge hw/p*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
pci-host pci,misc enhancements 2013-07-08 08:00:23 -05:00
ppc PPC: dbdma: Wait for DMA until we have data 2013-07-11 18:51:25 +02:00
s390x memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
scsi hw/s*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
sd hw/s*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
sh4 pci,misc enhancements 2013-07-08 08:00:23 -05:00
sparc cpu: Replace cpu_single_env with CPUState current_cpu 2013-07-09 21:20:28 +02:00
sparc64 pci,misc enhancements 2013-07-08 08:00:23 -05:00
ssi hw/s*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
timer timer/arm_mptimer: Build arm_mptimer only once 2013-07-09 21:33:02 +02:00
tpm hw/t*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
unicore32 memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
usb hw/[u-x]*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
virtio add a header file for atomic operations 2013-07-04 17:42:49 +02:00
watchdog hw/[u-x]*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
xen hw/[u-x]*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
xtensa hw/[u-x]*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
Makefile.objs virtio: simplify Makefile conditionals 2013-04-19 16:18:11 +02:00