From 01549028733315a513b1b5fcc1951fd271e8a531 Mon Sep 17 00:00:00 2001 From: Marcel Apfelbaum Date: Tue, 13 Sep 2016 13:20:45 +0200 Subject: [PATCH] pci: don't map virtio 1.0 storage devices above 4G RH-Author: Marcel Apfelbaum Message-id: <1473772845-913-1-git-send-email-marcel@redhat.com> Patchwork-id: 72292 O-Subject: [RHEL-7.3 seabios PATCH V2] pci: don't map virtio 1.0 storage devices above 4G Bugzilla: 1373154 RH-Acked-by: Maxime Coquelin RH-Acked-by: Gerd Hoffmann RH-Acked-by: Laszlo Ersek RH-Acked-by: Michael S. Tsirkin v1->v2: - add the note to the commit message (Gerd) BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1373154 Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=11741451 Upstream: Fixed upstream by commit: 0e21548b15 (virtio: pci cfg access) Tests: Checked the virtio BARs are placed in the 32-bit range and the guest boots successfully. Otherwise SeaBIOS can't access virtio's modern BAR. Note: It works in the master branch but can't be merged easily into 1.9 branch, so use this as an interim solution until we'll rebase to 1.10. Signed-off-by: Marcel Apfelbaum Signed-off-by: Miroslav Rezanina --- src/fw/pciinit.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/fw/pciinit.c b/src/fw/pciinit.c index 7896600..4ff1262 100644 --- a/src/fw/pciinit.c +++ b/src/fw/pciinit.c @@ -650,6 +650,13 @@ static void pci_region_migrate_64bit_entries(struct pci_region *from, continue; if (entry->dev->class == PCI_CLASS_SERIAL_USB) continue; + if (entry->dev->vendor == PCI_VENDOR_ID_REDHAT_QUMRANET && + (entry->dev->device == PCI_DEVICE_ID_VIRTIO_BLK_09 || + entry->dev->device == PCI_DEVICE_ID_VIRTIO_BLK_10 || + entry->dev->device == PCI_DEVICE_ID_VIRTIO_SCSI_09 || + entry->dev->device == PCI_DEVICE_ID_VIRTIO_SCSI_10)) + continue; + // Move from source list to destination list. hlist_del(&entry->node); hlist_add(&entry->node, last); -- 1.8.3.1