[SLOF] [PATCH v5 05/23] virtio: fix code style/design issues.

Nikunj A Dadhania nikunj at linux.vnet.ibm.com
Fri Jan 29 22:19:05 AEDT 2016


The patch does not make any functional changes.

Signed-off-by: Nikunj A Dadhania <nikunj at linux.vnet.ibm.com>
Reviewed-by: Thomas Huth <thuth at redhat.com>
---
 lib/libvirtio/virtio-net.c  |   2 +-
 lib/libvirtio/virtio-scsi.c | 156 ++++++++++++++++++++++----------------------
 lib/libvirtio/virtio.c      |  63 ++++++++----------
 lib/libvirtio/virtio.code   |  14 ++--
 lib/libvirtio/virtio.h      |   5 +-
 5 files changed, 117 insertions(+), 123 deletions(-)

diff --git a/lib/libvirtio/virtio-net.c b/lib/libvirtio/virtio-net.c
index 99c19d9..d8ce9a3 100644
--- a/lib/libvirtio/virtio-net.c
+++ b/lib/libvirtio/virtio-net.c
@@ -52,7 +52,7 @@
 struct virtio_device virtiodev;
 struct vqs vq[2];     /* Information about virtqueues */
 
-/* See Virtio Spec, appendix C, "Device Operation" */ 
+/* See Virtio Spec, appendix C, "Device Operation" */
 struct virtio_net_hdr {
 	uint8_t  flags;
 	uint8_t  gso_type;
diff --git a/lib/libvirtio/virtio-scsi.c b/lib/libvirtio/virtio-scsi.c
index 4828928..7ccc15c 100644
--- a/lib/libvirtio/virtio-scsi.c
+++ b/lib/libvirtio/virtio-scsi.c
@@ -22,58 +22,58 @@ int virtioscsi_send(struct virtio_device *dev,
 		    struct virtio_scsi_resp_cmd *resp,
 		    int is_read, void *buf, uint64_t buf_len)
 {
-        struct vring_desc *desc;
-        struct vring_desc *vq_desc;		/* Descriptor vring */
-        struct vring_avail *vq_avail;		/* "Available" vring */
-        struct vring_used *vq_used;		/* "Used" vring */
-
-        volatile uint16_t *current_used_idx;
-        uint16_t last_used_idx;
-        int id;
-        uint32_t vq_size, time;
-
-        int vq = VIRTIO_SCSI_REQUEST_VQ;
-
-        vq_size = virtio_get_qsize(dev, vq);
-        vq_desc = virtio_get_vring_desc(dev, vq);
-        vq_avail = virtio_get_vring_avail(dev, vq);
-        vq_used = virtio_get_vring_used(dev, vq);
-
-        last_used_idx = vq_used->idx;
-        current_used_idx = &vq_used->idx;
-
-        /* Determine descriptor index */
-        id = (vq_avail->idx * 3) % vq_size;
-
-        desc = &vq_desc[id];
-        desc->addr = (uint64_t)req;
-        desc->len = sizeof(*req);
-        desc->flags = VRING_DESC_F_NEXT;
-        desc->next = (id + 1) % vq_size;
-
-        /* Set up virtqueue descriptor for data */
-        desc = &vq_desc[(id + 1) % vq_size];
-        desc->addr = (uint64_t)resp;
-        desc->len = sizeof(*resp);
-        desc->flags = VRING_DESC_F_NEXT | VRING_DESC_F_WRITE;
-        desc->next = (id + 2) % vq_size;
-
-        if (buf && buf_len) {
-                /* Set up virtqueue descriptor for status */
-                desc = &vq_desc[(id + 2) % vq_size];
-                desc->addr = (uint64_t)buf;
-                desc->len = buf_len;
-                desc->flags = is_read ? VRING_DESC_F_WRITE : 0;
-                desc->next = 0;
-        } else
-                desc->flags &= ~VRING_DESC_F_NEXT;
-
-        vq_avail->ring[vq_avail->idx % vq_size] = id;
-        mb();
-        vq_avail->idx += 1;
-
-        /* Tell HV that the vq is ready */
-        virtio_queue_notify(dev, vq);
+	struct vring_desc *desc;
+	struct vring_desc *vq_desc;		/* Descriptor vring */
+	struct vring_avail *vq_avail;		/* "Available" vring */
+	struct vring_used *vq_used;		/* "Used" vring */
+
+	volatile uint16_t *current_used_idx;
+	uint16_t last_used_idx;
+	int id;
+	uint32_t vq_size, time;
+
+	int vq = VIRTIO_SCSI_REQUEST_VQ;
+
+	vq_size = virtio_get_qsize(dev, vq);
+	vq_desc = virtio_get_vring_desc(dev, vq);
+	vq_avail = virtio_get_vring_avail(dev, vq);
+	vq_used = virtio_get_vring_used(dev, vq);
+
+	last_used_idx = vq_used->idx;
+	current_used_idx = &vq_used->idx;
+
+	/* Determine descriptor index */
+	id = (vq_avail->idx * 3) % vq_size;
+
+	desc = &vq_desc[id];
+	desc->addr = (uint64_t)req;
+	desc->len = sizeof(*req);
+	desc->flags = VRING_DESC_F_NEXT;
+	desc->next = (id + 1) % vq_size;
+
+	/* Set up virtqueue descriptor for data */
+	desc = &vq_desc[(id + 1) % vq_size];
+	desc->addr = (uint64_t)resp;
+	desc->len = sizeof(*resp);
+	desc->flags = VRING_DESC_F_NEXT | VRING_DESC_F_WRITE;
+	desc->next = (id + 2) % vq_size;
+
+	if (buf && buf_len) {
+		/* Set up virtqueue descriptor for status */
+		desc = &vq_desc[(id + 2) % vq_size];
+		desc->addr = (uint64_t)buf;
+		desc->len = buf_len;
+		desc->flags = is_read ? VRING_DESC_F_WRITE : 0;
+		desc->next = 0;
+	} else
+		desc->flags &= ~VRING_DESC_F_NEXT;
+
+	vq_avail->ring[vq_avail->idx % vq_size] = id;
+	mb();
+	vq_avail->idx += 1;
+
+	/* Tell HV that the vq is ready */
+	virtio_queue_notify(dev, vq);
 
 	/* Wait for host to consume the descriptor */
 	time = SLOF_GetTimer() + VIRTIO_TIMEOUT;
@@ -84,7 +84,7 @@ int virtioscsi_send(struct virtio_device *dev,
 			break;
 	}
 
-        return 0;
+	return 0;
 }
 
 /**
@@ -93,40 +93,40 @@ int virtioscsi_send(struct virtio_device *dev,
  */
 int virtioscsi_init(struct virtio_device *dev)
 {
-        struct vring_avail *vq_avail;
-        unsigned int idx = 0;
-        int qsize = 0;
+	struct vring_avail *vq_avail;
+	unsigned int idx = 0;
+	int qsize = 0;
 
-        /* Reset device */
-        // XXX That will clear the virtq base. We need to move
-        //     initializing it to here anyway
-        //
-        //     virtio_reset_device(dev);
+	/* Reset device */
+	// XXX That will clear the virtq base. We need to move
+	//     initializing it to here anyway
+	//
+	//     virtio_reset_device(dev);
 
-        /* Acknowledge device. */
-        virtio_set_status(dev, VIRTIO_STAT_ACKNOWLEDGE);
+	/* Acknowledge device. */
+	virtio_set_status(dev, VIRTIO_STAT_ACKNOWLEDGE);
 
-        /* Tell HV that we know how to drive the device. */
-        virtio_set_status(dev, VIRTIO_STAT_ACKNOWLEDGE|VIRTIO_STAT_DRIVER);
+	/* Tell HV that we know how to drive the device. */
+	virtio_set_status(dev, VIRTIO_STAT_ACKNOWLEDGE|VIRTIO_STAT_DRIVER);
 
-        /* Device specific setup - we do not support special features right now */
-        virtio_set_guest_features(dev,  0);
+	/* Device specific setup - we do not support special features right now */
+	virtio_set_guest_features(dev,  0);
 
-        while(1) {
-                qsize = virtio_get_qsize(dev, idx);
-                if (!qsize)
-                        break;
-                virtio_vring_size(qsize);
+	while(1) {
+		qsize = virtio_get_qsize(dev, idx);
+		if (!qsize)
+			break;
+		virtio_vring_size(qsize);
 
-                vq_avail = virtio_get_vring_avail(dev, 0);
-                vq_avail->flags = VRING_AVAIL_F_NO_INTERRUPT;
-                vq_avail->idx = 0;
-                idx++;
-        }
+		vq_avail = virtio_get_vring_avail(dev, 0);
+		vq_avail->flags = VRING_AVAIL_F_NO_INTERRUPT;
+		vq_avail->idx = 0;
+		idx++;
+	}
 
 	/* Tell HV that setup succeeded */
  	virtio_set_status(dev, VIRTIO_STAT_ACKNOWLEDGE|VIRTIO_STAT_DRIVER
-                          |VIRTIO_STAT_DRIVER_OK);
+			  |VIRTIO_STAT_DRIVER_OK);
 
 	return 0;
 }
diff --git a/lib/libvirtio/virtio.c b/lib/libvirtio/virtio.c
index f9c00a6..8da10c8 100644
--- a/lib/libvirtio/virtio.c
+++ b/lib/libvirtio/virtio.c
@@ -33,9 +33,9 @@
 unsigned long virtio_vring_size(unsigned int qsize)
 {
 	return VQ_ALIGN(sizeof(struct vring_desc) * qsize +
-                        sizeof(struct vring_avail) + sizeof(uint16_t) * qsize) +
-               VQ_ALIGN(sizeof(struct vring_used) +
-                        sizeof(struct vring_used_elem) * qsize);
+			sizeof(struct vring_avail) + sizeof(uint16_t) * qsize) +
+		VQ_ALIGN(sizeof(struct vring_used) +
+			 sizeof(struct vring_used_elem) * qsize);
 }
 
 
@@ -75,7 +75,7 @@ struct vring_desc *virtio_get_vring_desc(struct virtio_device *dev, int queue)
 			    cpu_to_le16(queue));
 		eieio();
 		desc = (void*)(4096L *
-		   le32_to_cpu(ci_read_32(dev->base+VIRTIOHDR_QUEUE_ADDRESS)));
+			       le32_to_cpu(ci_read_32(dev->base+VIRTIOHDR_QUEUE_ADDRESS)));
 	}
 
 	return desc;
@@ -91,7 +91,7 @@ struct vring_desc *virtio_get_vring_desc(struct virtio_device *dev, int queue)
 struct vring_avail *virtio_get_vring_avail(struct virtio_device *dev, int queue)
 {
 	return (void*)((uint64_t)virtio_get_vring_desc(dev, queue)
-			+ virtio_get_qsize(dev, queue) * sizeof(struct vring_desc));
+		       + virtio_get_qsize(dev, queue) * sizeof(struct vring_desc));
 }
 
 
@@ -104,8 +104,8 @@ struct vring_avail *virtio_get_vring_avail(struct virtio_device *dev, int queue)
 struct vring_used *virtio_get_vring_used(struct virtio_device *dev, int queue)
 {
 	return (void*)VQ_ALIGN((uint64_t)virtio_get_vring_avail(dev, queue)
-				  + virtio_get_qsize(dev, queue)
-				    * sizeof(struct vring_avail));
+			       + virtio_get_qsize(dev, queue)
+			       * sizeof(struct vring_avail));
 }
 
 
@@ -135,15 +135,15 @@ void virtio_queue_notify(struct virtio_device *dev, int queue)
  */
 void virtio_set_qaddr(struct virtio_device *dev, int queue, unsigned int 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));
-        }
+	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));
+	}
 }
 
 /**
@@ -188,24 +188,21 @@ uint64_t virtio_get_config(struct virtio_device *dev, int offset, int size)
 	uint64_t val = ~0ULL;
 	void *confbase;
 
-	switch (dev->type) {
-	 case VIRTIO_TYPE_PCI:
-		confbase = dev->base+VIRTIOHDR_DEVICE_CONFIG;
-		break;
-	 default:
-		return ~0ULL;
-	}
+	if (dev->type != VIRTIO_TYPE_PCI)
+		return val;
+
+	confbase = dev->base + VIRTIOHDR_DEVICE_CONFIG;
 	switch (size) {
-	 case 1:
+	case 1:
 		val = ci_read_8(confbase+offset);
 		break;
-	 case 2:
+	case 2:
 		val = ci_read_16(confbase+offset);
 		break;
-	 case 4:
+	case 4:
 		val = ci_read_32(confbase+offset);
 		break;
-	 case 8:
+	case 8:
 		/* We don't support 8 bytes PIO accesses
 		 * in qemu and this is all PIO
 		 */
@@ -222,20 +219,18 @@ uint64_t virtio_get_config(struct virtio_device *dev, int offset, int size)
  * Get config blob
  */
 int __virtio_read_config(struct virtio_device *dev, void *dst,
-			  int offset, int len)
+			 int offset, int len)
 {
 	void *confbase;
 	unsigned char *buf = dst;
 	int i;
 
-	switch (dev->type) {
-	 case VIRTIO_TYPE_PCI:
-		confbase = dev->base+VIRTIOHDR_DEVICE_CONFIG;
-		break;
-	 default:
+	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);
+
 	return len;
 }
diff --git a/lib/libvirtio/virtio.code b/lib/libvirtio/virtio.code
index 258b9bb..9e6c475 100644
--- a/lib/libvirtio/virtio.code
+++ b/lib/libvirtio/virtio.code
@@ -127,15 +127,15 @@ PRIM(virtio_X2d_net_X2d_open)
 {
 	void *dev = TOS.a; POP;
 	int len = TOS.u; POP;
-        char *mac_addr = TOS.a;
+	char *mac_addr = TOS.a;
 
-        net_driver_t *net_driver = virtionet_open(mac_addr, len, dev);
+	net_driver_t *net_driver = virtionet_open(mac_addr, len, dev);
 
-        if (net_driver) {
-                TOS.u = (unsigned long)net_driver; PUSH;
-                TOS.n = -1;
-        } else
-                TOS.n = 0;
+	if (net_driver) {
+		TOS.u = (unsigned long)net_driver; PUSH;
+		TOS.n = -1;
+	} else
+		TOS.n = 0;
 }
 MIRP
 
diff --git a/lib/libvirtio/virtio.h b/lib/libvirtio/virtio.h
index d5759b4..9d6d8da 100644
--- a/lib/libvirtio/virtio.h
+++ b/lib/libvirtio/virtio.h
@@ -34,7 +34,7 @@ struct vring_desc {
 	uint32_t len;		/* Length */
 	uint16_t flags;		/* The flags as indicated above */
 	uint16_t next;		/* Next field if flags & NEXT */
-}; 
+};
 
 /* Definitions for vring_avail.flags */
 #define VRING_AVAIL_F_NO_INTERRUPT	1
@@ -44,8 +44,7 @@ struct vring_avail {
 	uint16_t flags;
 	uint16_t idx;
 	uint16_t ring[];
-}; 
-
+};
 
 /* Definitions for vring_used.flags */
 #define VRING_USED_F_NO_NOTIFY		1
-- 
2.5.0



More information about the SLOF mailing list