spapr_pci: Fix config space corruption
commit32420522482ffc20f8e9423af4f41f4e05ce3a56
authorAlexey Kardashevskiy <aik@ozlabs.ru>
Wed, 13 Aug 2014 07:20:53 +0000 (13 17:20 +1000)
committerAlexander Graf <agraf@suse.de>
Mon, 8 Sep 2014 10:50:52 +0000 (8 12:50 +0200)
tree3291a2756ec895fd4e1f919573e359cdba2d3853
parentb981289c493c7ddabc1cdf7de99daa24642c7739
spapr_pci: Fix config space corruption

When disabling MSI/MSIX via "ibm,change-msi" RTAS call, no check was made
if MSI or MSIX is actually supported and the MSI message was reset
unconditionally. If this happened on a device which does not support MSI
(but does support MSIX, otherwise "ibm,change-msi" would not be called),
this device would have PCIDevice::msi_cap field (MSI capability offset)
set to zero and writing a vector would actually clear PCI status.

This clears MSI message only if MSI or MSIX is present on a device.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Alexander Graf <agraf@suse.de>
hw/ppc/spapr_pci.c