mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 22:25:25 +00:00
util: Forbid resetting non-endpoint devices
It is destructive to attempt reset on a pci- or cardbus-bridge, the host can crash. The bridges won't contain any guest data and neither they can be passed through using vfio/stub. So, no point in allowing a reset on them. Signed-off-by: Shivaprasad G Bhat <sbhat@linux.vnet.ibm.com>
This commit is contained in:
parent
bec9b9b01a
commit
bd12889616
@ -933,6 +933,18 @@ virPCIDeviceReset(virPCIDevicePtr dev,
|
||||
char *drvName = NULL;
|
||||
int ret = -1;
|
||||
int fd = -1;
|
||||
int hdrType = -1;
|
||||
|
||||
if (virPCIGetHeaderType(dev, &hdrType) < 0)
|
||||
return -1;
|
||||
|
||||
if (hdrType != VIR_PCI_HEADER_ENDPOINT) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("Invalid attempt to reset PCI device %s. "
|
||||
"Only PCI endpoint devices can be reset"),
|
||||
dev->name);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (activeDevs && virPCIDeviceListFind(activeDevs, dev)) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
|
Loading…
Reference in New Issue
Block a user