[PATCH pre-squash 13/14] fixup! virtio_pci: add module param to force legacy mode

From: Michael S. Tsirkin
Date: Wed Jan 21 2015 - 10:01:45 EST


virtio modern: fix up fallback logic with force_legacy

This bails out if legacy driver succeeds - not what we wanted.

Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
Tested-by: Gerd Hoffmann <kraxel@xxxxxxxxxx>
---
drivers/virtio/virtio_pci_common.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/virtio/virtio_pci_common.c b/drivers/virtio/virtio_pci_common.c
index 0f87b99..e894eb2 100644
--- a/drivers/virtio/virtio_pci_common.c
+++ b/drivers/virtio/virtio_pci_common.c
@@ -516,18 +516,14 @@ static int virtio_pci_probe(struct pci_dev *pci_dev,
if (force_legacy) {
rc = virtio_pci_legacy_probe(vp_dev);
/* Also try modern mode if we can't map BAR0 (no IO space). */
- if (rc != -ENODEV && rc != -ENOMEM)
- return rc;
-
- rc = virtio_pci_modern_probe(vp_dev);
+ if (rc == -ENODEV || rc == -ENOMEM)
+ rc = virtio_pci_modern_probe(vp_dev);
if (rc)
goto err_probe;
} else {
rc = virtio_pci_modern_probe(vp_dev);
- if (rc != -ENODEV)
- return rc;
-
- rc = virtio_pci_legacy_probe(vp_dev);
+ if (rc == -ENODEV)
+ rc = virtio_pci_legacy_probe(vp_dev);
if (rc)
goto err_probe;
}
--
MST

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/