Skip to content

Commit

Permalink
virtio: Use PCI revision field to indicate virtio PCI ABI version
Browse files Browse the repository at this point in the history
As Avi pointed out, as we continue to massage the virtio PCI ABI, we can make
things a little more friendly to users by utilizing the PCI revision field to
indicate which version of the ABI we're using.  This is a hard ABI version
and incrementing it will cause the guest driver to break.

This is the necessary changes to virtio_pci to support this.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
  • Loading branch information
Anthony Liguori authored and Rusty Russell committed Feb 4, 2008
1 parent 3343660 commit 55a7c06
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 0 deletions.
6 changes: 6 additions & 0 deletions drivers/virtio/virtio_pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,12 @@ static int __devinit virtio_pci_probe(struct pci_dev *pci_dev,
if (pci_dev->device < 0x1000 || pci_dev->device > 0x103f)
return -ENODEV;

if (pci_dev->revision != VIRTIO_PCI_ABI_VERSION) {
printk(KERN_ERR "virtio_pci: expected ABI version %d, got %d\n",
VIRTIO_PCI_ABI_VERSION, pci_dev->revision);
return -ENODEV;
}

/* allocate our structure and fill it out */
vp_dev = kzalloc(sizeof(struct virtio_pci_device), GFP_KERNEL);
if (vp_dev == NULL)
Expand Down
2 changes: 2 additions & 0 deletions include/linux/virtio_pci.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,4 +52,6 @@
* configuration space */
#define VIRTIO_PCI_CONFIG 20

/* Virtio ABI version, this must match exactly */
#define VIRTIO_PCI_ABI_VERSION 0
#endif

0 comments on commit 55a7c06

Please sign in to comment.