aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorNikunj A Dadhania <nikunj@linux.vnet.ibm.com>2016-02-01 11:18:04 +0530
committerAlexey Kardashevskiy <aik@ozlabs.ru>2016-02-08 16:40:39 +1100
commit5ed17500f03913f3f125ecde14aa041c6235ba08 (patch)
treed97248719d0bef3a2bcd4e347764acf378d53540 /lib
parentaa9566d2ed5c4fdcaa385759475c75bb0d0801d4 (diff)
downloadSLOF-5ed17500f03913f3f125ecde14aa041c6235ba08.zip
SLOF-5ed17500f03913f3f125ecde14aa041c6235ba08.tar.gz
SLOF-5ed17500f03913f3f125ecde14aa041c6235ba08.tar.bz2
virtio: get rid of type variable in virtio_device
virtio device structure carries a type variable indicating whether virtio is over PCI or VIO. While VIO is not there and no plan to introduce other transport, there is no purpose of having this variable around and checking for PCI. Signed-off-by: Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Diffstat (limited to 'lib')
-rw-r--r--lib/libvirtio/virtio-net.c1
-rw-r--r--lib/libvirtio/virtio.c64
-rw-r--r--lib/libvirtio/virtio.h2
3 files changed, 21 insertions, 46 deletions
diff --git a/lib/libvirtio/virtio-net.c b/lib/libvirtio/virtio-net.c
index f8b8cec..6eeb076 100644
--- a/lib/libvirtio/virtio-net.c
+++ b/lib/libvirtio/virtio-net.c
@@ -69,7 +69,6 @@ static int virtionet_init_pci(struct virtio_device *dev)
return -1;
virtiodev.base = dev->base;
- virtiodev.type = dev->type;
/* Reset device */
virtio_reset_device(&virtiodev);
diff --git a/lib/libvirtio/virtio.c b/lib/libvirtio/virtio.c
index 4ea8278..edb6258 100644
--- a/lib/libvirtio/virtio.c
+++ b/lib/libvirtio/virtio.c
@@ -54,12 +54,10 @@ int virtio_get_qsize(struct virtio_device *dev, int queue)
{
int size = 0;
- if (dev->type == VIRTIO_TYPE_PCI) {
- ci_write_16(dev->base+VIRTIOHDR_QUEUE_SELECT,
- cpu_to_le16(queue));
- eieio();
- size = le16_to_cpu(ci_read_16(dev->base+VIRTIOHDR_QUEUE_SIZE));
- }
+ ci_write_16(dev->base+VIRTIOHDR_QUEUE_SELECT,
+ cpu_to_le16(queue));
+ eieio();
+ size = le16_to_cpu(ci_read_16(dev->base+VIRTIOHDR_QUEUE_SIZE));
return size;
}
@@ -75,13 +73,11 @@ struct vring_desc *virtio_get_vring_desc(struct virtio_device *dev, int queue)
{
struct vring_desc *desc = 0;
- if (dev->type == VIRTIO_TYPE_PCI) {
- ci_write_16(dev->base+VIRTIOHDR_QUEUE_SELECT,
- cpu_to_le16(queue));
- eieio();
- desc = (void*)(4096L *
- le32_to_cpu(ci_read_32(dev->base+VIRTIOHDR_QUEUE_ADDRESS)));
- }
+ ci_write_16(dev->base+VIRTIOHDR_QUEUE_SELECT,
+ cpu_to_le16(queue));
+ eieio();
+ desc = (void*)(4096L *
+ le32_to_cpu(ci_read_32(dev->base+VIRTIOHDR_QUEUE_ADDRESS)));
return desc;
}
@@ -138,9 +134,7 @@ void virtio_fill_desc(struct vring_desc *desc, bool is_modern,
*/
void virtio_reset_device(struct virtio_device *dev)
{
- if (dev->type == VIRTIO_TYPE_PCI) {
- ci_write_8(dev->base+VIRTIOHDR_DEVICE_STATUS, 0);
- }
+ ci_write_8(dev->base+VIRTIOHDR_DEVICE_STATUS, 0);
}
@@ -149,9 +143,7 @@ void virtio_reset_device(struct virtio_device *dev)
*/
void virtio_queue_notify(struct virtio_device *dev, int queue)
{
- if (dev->type == VIRTIO_TYPE_PCI) {
- ci_write_16(dev->base+VIRTIOHDR_QUEUE_NOTIFY, cpu_to_le16(queue));
- }
+ ci_write_16(dev->base+VIRTIOHDR_QUEUE_NOTIFY, cpu_to_le16(queue));
}
/**
@@ -159,15 +151,13 @@ void virtio_queue_notify(struct virtio_device *dev, int queue)
*/
void virtio_set_qaddr(struct virtio_device *dev, int queue, unsigned long qaddr)
{
- if (dev->type == VIRTIO_TYPE_PCI) {
- uint32_t val = qaddr;
- val = val >> 12;
- ci_write_16(dev->base+VIRTIOHDR_QUEUE_SELECT,
- cpu_to_le16(queue));
- eieio();
- ci_write_32(dev->base+VIRTIOHDR_QUEUE_ADDRESS,
- cpu_to_le32(val));
- }
+ uint32_t val = qaddr;
+ val = val >> 12;
+ ci_write_16(dev->base+VIRTIOHDR_QUEUE_SELECT,
+ cpu_to_le16(queue));
+ eieio();
+ ci_write_32(dev->base+VIRTIOHDR_QUEUE_ADDRESS,
+ cpu_to_le32(val));
}
int virtio_queue_init_vq(struct virtio_device *dev, struct vqs *vq, unsigned int id)
@@ -191,9 +181,7 @@ int virtio_queue_init_vq(struct virtio_device *dev, struct vqs *vq, unsigned int
*/
void virtio_set_status(struct virtio_device *dev, int status)
{
- if (dev->type == VIRTIO_TYPE_PCI) {
- ci_write_8(dev->base+VIRTIOHDR_DEVICE_STATUS, status);
- }
+ ci_write_8(dev->base+VIRTIOHDR_DEVICE_STATUS, status);
}
@@ -203,9 +191,7 @@ void virtio_set_status(struct virtio_device *dev, int status)
void virtio_set_guest_features(struct virtio_device *dev, int features)
{
- if (dev->type == VIRTIO_TYPE_PCI) {
- ci_write_32(dev->base+VIRTIOHDR_GUEST_FEATURES, bswap_32(features));
- }
+ ci_write_32(dev->base+VIRTIOHDR_GUEST_FEATURES, bswap_32(features));
}
/**
@@ -214,9 +200,7 @@ void virtio_set_guest_features(struct virtio_device *dev, int features)
void virtio_get_host_features(struct virtio_device *dev, int *features)
{
- if (dev->type == VIRTIO_TYPE_PCI && features) {
- *features = bswap_32(ci_read_32(dev->base+VIRTIOHDR_DEVICE_FEATURES));
- }
+ *features = bswap_32(ci_read_32(dev->base+VIRTIOHDR_DEVICE_FEATURES));
}
@@ -228,9 +212,6 @@ uint64_t virtio_get_config(struct virtio_device *dev, int offset, int size)
uint64_t val = ~0ULL;
void *confbase;
- if (dev->type != VIRTIO_TYPE_PCI)
- return val;
-
confbase = dev->base + VIRTIOHDR_DEVICE_CONFIG;
switch (size) {
case 1:
@@ -265,9 +246,6 @@ int __virtio_read_config(struct virtio_device *dev, void *dst,
unsigned char *buf = dst;
int i;
- if (dev->type != VIRTIO_TYPE_PCI)
- return 0;
-
confbase = dev->base + VIRTIOHDR_DEVICE_CONFIG;
for (i = 0; i < len; i++)
buf[i] = ci_read_8(confbase + offset + i);
diff --git a/lib/libvirtio/virtio.h b/lib/libvirtio/virtio.h
index c26282f..75de5ec 100644
--- a/lib/libvirtio/virtio.h
+++ b/lib/libvirtio/virtio.h
@@ -61,10 +61,8 @@ struct vring_used {
struct vring_used_elem ring[];
};
-#define VIRTIO_TYPE_PCI 0 /* For virtio-pci interface */
struct virtio_device {
void *base; /* base address */
- int type; /* VIRTIO_TYPE_PCI or VIRTIO_TYPE_VIO */
};
struct vqs {