sPAPR: Clear stale MSIx table during EEH reset
commit6319b1dad04e66f450fb3ac6c31d2bf3940068b8
authorGavin Shan <gwshan@linux.vnet.ibm.com>
Thu, 2 Jul 2015 06:23:28 +0000 (2 16:23 +1000)
committerAlexander Graf <agraf@suse.de>
Tue, 7 Jul 2015 15:44:54 +0000 (7 17:44 +0200)
tree3a6910bb0a7b7adbf58e104dc2cd258008d71db5
parentaef87d1b879416909a4ac73e6fe2cea4a5630f40
sPAPR: Clear stale MSIx table during EEH reset

The PCI device MSIx table is cleaned out in hardware after EEH PE
reset. However, we still hold the stale MSIx entries in QEMU, which
should be cleared accordingly. Otherwise, we will run into another
(recursive) EEH error and the PCI devices contained in the PE have
to be offlined exceptionally.

The patch introduces function spapr_phb_vfio_eeh_pre_reset(), which
is called by sPAPR when asserting hot or fundamental reset, to clear
stale MSIx table for VFIO PCI devices before EEH PE reset so that
MSIx table could be restored properly after EEH PE reset.

Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
hw/ppc/spapr_pci_vfio.c