summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Scull <ascull@google.com>2022-04-21 16:11:00 +0000
committerTom Rini <trini@konsulko.com>2022-05-03 15:50:45 -0400
commitda03cdfa7a3454a6d66d4ae873525ea2409baf06 (patch)
tree850d9ec1f64bb76ba7a6f4dbfd44dbc606b03c65
parent30471d5351cf397d2a080fdcb747c7eb354bfab8 (diff)
virtio: pci: Fix discovery of device config length
The length of the device config was erroneously being taken from the notify capability. Correct this by finding the length in the device capability. Fixes: 550435edf810 ("virtio: pci: Support non-legacy PCI transport device") Signed-off-by: Andrew Scull <ascull@google.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
-rw-r--r--drivers/virtio/virtio_pci_modern.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/virtio/virtio_pci_modern.c b/drivers/virtio/virtio_pci_modern.c
index fd8a1f3fecb..55d25cb81b9 100644
--- a/drivers/virtio/virtio_pci_modern.c
+++ b/drivers/virtio/virtio_pci_modern.c
@@ -497,7 +497,7 @@ static int virtio_pci_probe(struct udevice *udev)
*/
device = virtio_pci_find_capability(udev, VIRTIO_PCI_CAP_DEVICE_CFG);
if (device) {
- offset = notify + offsetof(struct virtio_pci_cap, length);
+ offset = device + offsetof(struct virtio_pci_cap, length);
dm_pci_read_config32(udev, offset, &priv->device_len);
}