summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2008-12-30 09:25:56 -0600
committerRusty Russell <rusty@rustcorp.com.au>2008-12-30 09:25:57 +1030
commit480daab42c4dd74b3c07031ddf9031251c530c77 (patch)
treec491b040071be3867aa42942a80435866fbc85cf
parent99e0b6c8e3f30602383bcfe3f574537a02ee2bea (diff)
downloadlinux-stable-480daab42c4dd74b3c07031ddf9031251c530c77.tar.gz
linux-stable-480daab42c4dd74b3c07031ddf9031251c530c77.tar.bz2
linux-stable-480daab42c4dd74b3c07031ddf9031251c530c77.zip
virtio: Don't use PAGE_SIZE in virtio_pci.c
The virtio PCI devices don't depend on the guest page size. This matters now PowerPC virtio is gaining ground (they like 64k pages). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-rw-r--r--drivers/virtio/virtio_pci.c2
-rw-r--r--include/linux/virtio_pci.h4
2 files changed, 5 insertions, 1 deletions
diff --git a/drivers/virtio/virtio_pci.c b/drivers/virtio/virtio_pci.c
index e37d686edfe0..c2cd69ba0a8c 100644
--- a/drivers/virtio/virtio_pci.c
+++ b/drivers/virtio/virtio_pci.c
@@ -245,7 +245,7 @@ static struct virtqueue *vp_find_vq(struct virtio_device *vdev, unsigned index,
}
/* activate the queue */
- iowrite32(virt_to_phys(info->queue) >> PAGE_SHIFT,
+ iowrite32(virt_to_phys(info->queue) >> VIRTIO_PCI_QUEUE_ADDR_SHIFT,
vp_dev->ioaddr + VIRTIO_PCI_QUEUE_PFN);
/* create the vring */
diff --git a/include/linux/virtio_pci.h b/include/linux/virtio_pci.h
index cdef35742932..e13d7ebcf576 100644
--- a/include/linux/virtio_pci.h
+++ b/include/linux/virtio_pci.h
@@ -53,4 +53,8 @@
/* Virtio ABI version, this must match exactly */
#define VIRTIO_PCI_ABI_VERSION 0
+
+/* How many bits to shift physical queue address written to QUEUE_PFN.
+ * 12 is historical, and due to x86 page size. */
+#define VIRTIO_PCI_QUEUE_ADDR_SHIFT 12
#endif