All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next v2 0/3] virtio: style cleanups
@ 2016-07-26 16:37 Stephen Hemminger
  2016-07-26 16:37 ` [PATCH net-next v2 1/3] virtio: whitespace cleanups Stephen Hemminger
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Stephen Hemminger @ 2016-07-26 16:37 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: netdev

Minor things found while doing some inspection code review.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH net-next v2 1/3] virtio: whitespace cleanups
  2016-07-26 16:37 [PATCH net-next v2 0/3] virtio: style cleanups Stephen Hemminger
@ 2016-07-26 16:37 ` Stephen Hemminger
  2016-07-26 16:58   ` Michael S. Tsirkin
  2016-07-26 16:37 ` [PATCH net-next v2 2/3] virtio: cleanup sizeof usage Stephen Hemminger
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 6+ messages in thread
From: Stephen Hemminger @ 2016-07-26 16:37 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: netdev, Stephen Hemminger

[-- Attachment #1: virtio-style.patch --]
[-- Type: text/plain, Size: 6531 bytes --]

Adjust whitespace to match current favored style.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>

--- a/drivers/net/virtio_net.c	2016-07-20 08:12:24.035656119 -0700
+++ b/drivers/net/virtio_net.c	2016-07-26 09:11:06.988788668 -0700
@@ -201,7 +201,9 @@ static void give_pages(struct receive_qu
 	struct page *end;
 
 	/* Find end of list, sew whole thing into vi->rq.pages. */
-	for (end = page; end->private; end = (struct page *)end->private);
+	for (end = page; end->private; end = (struct page *)end->private)
+		continue;
+
 	end->private = (unsigned long)rq->pages;
 	rq->pages = page;
 }
@@ -233,13 +235,13 @@ static void skb_xmit_done(struct virtque
 static unsigned int mergeable_ctx_to_buf_truesize(unsigned long mrg_ctx)
 {
 	unsigned int truesize = mrg_ctx & (MERGEABLE_BUFFER_ALIGN - 1);
+
 	return (truesize + 1) * MERGEABLE_BUFFER_ALIGN;
 }
 
 static void *mergeable_ctx_to_buf_address(unsigned long mrg_ctx)
 {
 	return (void *)(mrg_ctx & -MERGEABLE_BUFFER_ALIGN);
-
 }
 
 static unsigned long mergeable_buf_to_ctx(void *buf, unsigned int truesize)
@@ -310,6 +312,7 @@ static struct sk_buff *page_to_skb(struc
 	BUG_ON(offset >= PAGE_SIZE);
 	while (len) {
 		unsigned int frag_size = min((unsigned)PAGE_SIZE - offset, len);
+
 		skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, page, offset,
 				frag_size, truesize);
 		len -= frag_size;
@@ -323,9 +326,10 @@ static struct sk_buff *page_to_skb(struc
 	return skb;
 }
 
-static struct sk_buff *receive_small(struct virtnet_info *vi, void *buf, unsigned int len)
+static struct sk_buff *receive_small(struct virtnet_info *vi,
+				     void *buf, unsigned int len)
 {
-	struct sk_buff * skb = buf;
+	struct sk_buff *skb = buf;
 
 	len -= vi->hdr_len;
 	skb_trim(skb, len);
@@ -455,6 +459,7 @@ static void receive_buf(struct virtnet_i
 		if (vi->mergeable_rx_bufs) {
 			unsigned long ctx = (unsigned long)buf;
 			void *base = mergeable_ctx_to_buf_address(ctx);
+
 			put_page(virt_to_head_page(base));
 		} else if (vi->big_packets) {
 			give_pages(rq, buf);
@@ -699,7 +704,7 @@ static void refill_work(struct work_stru
 		 * we will *never* try to fill again.
 		 */
 		if (still_empty)
-			schedule_delayed_work(&vi->refill, HZ/2);
+			schedule_delayed_work(&vi->refill, HZ / 2);
 	}
 }
 
@@ -901,12 +906,12 @@ static netdev_tx_t start_xmit(struct sk_
 	 * Since most packets only take 1 or 2 ring slots, stopping the queue
 	 * early means 16 slots are typically wasted.
 	 */
-	if (sq->vq->num_free < 2+MAX_SKB_FRAGS) {
+	if (sq->vq->num_free < 2 + MAX_SKB_FRAGS) {
 		netif_stop_subqueue(dev, qnum);
 		if (unlikely(!virtqueue_enable_cb_delayed(sq->vq))) {
 			/* More just got used, free them then recheck. */
 			free_old_xmit_skbs(sq);
-			if (sq->vq->num_free >= 2+MAX_SKB_FRAGS) {
+			if (sq->vq->num_free >= 2 + MAX_SKB_FRAGS) {
 				netif_start_subqueue(dev, qnum);
 				virtqueue_disable_cb(sq->vq);
 			}
@@ -1238,11 +1243,11 @@ static void virtnet_set_affinity(struct
 }
 
 static int virtnet_cpu_callback(struct notifier_block *nfb,
-			        unsigned long action, void *hcpu)
+				unsigned long action, void *hcpu)
 {
 	struct virtnet_info *vi = container_of(nfb, struct virtnet_info, nb);
 
-	switch(action & ~CPU_TASKS_FROZEN) {
+	switch (action & ~CPU_TASKS_FROZEN) {
 	case CPU_ONLINE:
 	case CPU_DOWN_FAILED:
 	case CPU_DEAD:
@@ -1259,7 +1264,7 @@ static int virtnet_cpu_callback(struct n
 }
 
 static void virtnet_get_ringparam(struct net_device *dev,
-				struct ethtool_ringparam *ring)
+				  struct ethtool_ringparam *ring)
 {
 	struct virtnet_info *vi = netdev_priv(dev);
 
@@ -1269,7 +1274,6 @@ static void virtnet_get_ringparam(struct
 	ring->tx_pending = ring->tx_max_pending;
 }
 
-
 static void virtnet_get_drvinfo(struct net_device *dev,
 				struct ethtool_drvinfo *info)
 {
@@ -1279,7 +1283,6 @@ static void virtnet_get_drvinfo(struct n
 	strlcpy(info->driver, KBUILD_MODNAME, sizeof(info->driver));
 	strlcpy(info->version, VIRTNET_DRIVER_VERSION, sizeof(info->version));
 	strlcpy(info->bus_info, virtio_bus_name(vdev), sizeof(info->bus_info));
-
 }
 
 /* TODO: Eliminate OOO packets during switching */
@@ -1402,9 +1405,9 @@ static int virtnet_change_mtu(struct net
 }
 
 static const struct net_device_ops virtnet_netdev = {
-	.ndo_open            = virtnet_open,
-	.ndo_stop   	     = virtnet_close,
-	.ndo_start_xmit      = start_xmit,
+	.ndo_open	     = virtnet_open,
+	.ndo_stop	     = virtnet_close,
+	.ndo_start_xmit	     = start_xmit,
 	.ndo_validate_addr   = eth_validate_addr,
 	.ndo_set_mac_address = virtnet_set_mac_address,
 	.ndo_set_rx_mode     = virtnet_set_rx_mode,
@@ -1485,6 +1488,7 @@ static void free_receive_bufs(struct vir
 static void free_receive_page_frags(struct virtnet_info *vi)
 {
 	int i;
+
 	for (i = 0; i < vi->max_queue_pairs; i++)
 		if (vi->rq[i].alloc_frag.page)
 			put_page(vi->rq[i].alloc_frag.page);
@@ -1497,6 +1501,7 @@ static void free_unused_bufs(struct virt
 
 	for (i = 0; i < vi->max_queue_pairs; i++) {
 		struct virtqueue *vq = vi->sq[i].vq;
+
 		while ((buf = virtqueue_detach_unused_buf(vq)) != NULL)
 			dev_kfree_skb(buf);
 	}
@@ -1508,6 +1513,7 @@ static void free_unused_bufs(struct virt
 			if (vi->mergeable_rx_bufs) {
 				unsigned long ctx = (unsigned long)buf;
 				void *base = mergeable_ctx_to_buf_address(ctx);
+
 				put_page(virt_to_head_page(base));
 			} else if (vi->big_packets) {
 				give_pages(&vi->rq[i], buf);
@@ -1660,7 +1666,8 @@ err:
 
 #ifdef CONFIG_SYSFS
 static ssize_t mergeable_rx_buffer_size_show(struct netdev_rx_queue *queue,
-		struct rx_queue_attribute *attribute, char *buf)
+					     struct rx_queue_attribute *attribute,
+					     char *buf)
 {
 	struct virtnet_info *vi = netdev_priv(queue->dev);
 	unsigned int queue_index = get_netdev_rx_queue_index(queue);
@@ -1784,7 +1791,8 @@ static int virtnet_probe(struct virtio_d
 		dev->features |= NETIF_F_GSO_ROBUST;
 
 		if (gso)
-			dev->features |= dev->hw_features & (NETIF_F_ALL_TSO|NETIF_F_UFO);
+			dev->features |= dev->hw_features
+				& (NETIF_F_ALL_TSO | NETIF_F_UFO);
 		/* (!csum && gso) case will be fixed by register_netdev() */
 	}
 	if (virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_CSUM))
@@ -1811,8 +1819,9 @@ static int virtnet_probe(struct virtio_d
 		goto free;
 
 	for_each_possible_cpu(i) {
-		struct virtnet_stats *virtnet_stats;
-		virtnet_stats = per_cpu_ptr(vi->stats, i);
+		struct virtnet_stats *virtnet_stats
+			= per_cpu_ptr(vi->stats, i);
+
 		u64_stats_init(&virtnet_stats->tx_syncp);
 		u64_stats_init(&virtnet_stats->rx_syncp);
 	}

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH net-next v2 2/3] virtio: cleanup sizeof usage
  2016-07-26 16:37 [PATCH net-next v2 0/3] virtio: style cleanups Stephen Hemminger
  2016-07-26 16:37 ` [PATCH net-next v2 1/3] virtio: whitespace cleanups Stephen Hemminger
@ 2016-07-26 16:37 ` Stephen Hemminger
  2016-07-26 16:37 ` [PATCH net-next v2 3/3] virtio: use kcalloc and kmalloc_array Stephen Hemminger
  2016-07-26 18:11 ` [PATCH net-next v2 0/3] virtio: style cleanups Michael S. Tsirkin
  3 siblings, 0 replies; 6+ messages in thread
From: Stephen Hemminger @ 2016-07-26 16:37 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: netdev, Stephen Hemminger

[-- Attachment #1: virtio-sizeof.patch --]
[-- Type: text/plain, Size: 551 bytes --]

Although sizeof is an operator in C. Preferred usage is to use
it as a function.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>

--- a/drivers/net/virtio_net.c	2016-07-26 09:13:16.173384238 -0700
+++ b/drivers/net/virtio_net.c	2016-07-26 09:13:16.169384220 -0700
@@ -272,7 +272,7 @@ static struct sk_buff *page_to_skb(struc
 
 	hdr_len = vi->hdr_len;
 	if (vi->mergeable_rx_bufs)
-		hdr_padded_len = sizeof *hdr;
+		hdr_padded_len = sizeof(struct virtio_net_hdr_mrg_rxbuf);
 	else
 		hdr_padded_len = sizeof(struct padded_vnet_hdr);
 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH net-next v2 3/3] virtio: use kcalloc and kmalloc_array
  2016-07-26 16:37 [PATCH net-next v2 0/3] virtio: style cleanups Stephen Hemminger
  2016-07-26 16:37 ` [PATCH net-next v2 1/3] virtio: whitespace cleanups Stephen Hemminger
  2016-07-26 16:37 ` [PATCH net-next v2 2/3] virtio: cleanup sizeof usage Stephen Hemminger
@ 2016-07-26 16:37 ` Stephen Hemminger
  2016-07-26 18:11 ` [PATCH net-next v2 0/3] virtio: style cleanups Michael S. Tsirkin
  3 siblings, 0 replies; 6+ messages in thread
From: Stephen Hemminger @ 2016-07-26 16:37 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: netdev, Stephen Hemminger

[-- Attachment #1: virtio-kcalloc.patch --]
[-- Type: text/plain, Size: 1323 bytes --]

Preferred style is to use kcalloc and kmalloc_array.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>

--- a/drivers/net/virtio_net.c	2016-07-26 09:28:21.401557546 -0700
+++ b/drivers/net/virtio_net.c	2016-07-26 09:36:05.107695337 -0700
@@ -1551,13 +1551,13 @@ static int virtnet_find_vqs(struct virtn
 		    virtio_has_feature(vi->vdev, VIRTIO_NET_F_CTRL_VQ);
 
 	/* Allocate space for find_vqs parameters */
-	vqs = kzalloc(total_vqs * sizeof(*vqs), GFP_KERNEL);
+	vqs = kcalloc(total_vqs, sizeof(*vqs), GFP_KERNEL);
 	if (!vqs)
 		goto err_vq;
-	callbacks = kmalloc(total_vqs * sizeof(*callbacks), GFP_KERNEL);
+	callbacks = kmalloc_array(total_vqs, sizeof(*callbacks), GFP_KERNEL);
 	if (!callbacks)
 		goto err_callback;
-	names = kmalloc(total_vqs * sizeof(*names), GFP_KERNEL);
+	names = kmalloc_array(total_vqs, sizeof(*names), GFP_KERNEL);
 	if (!names)
 		goto err_names;
 
@@ -1613,10 +1613,10 @@ static int virtnet_alloc_queues(struct v
 {
 	int i;
 
-	vi->sq = kzalloc(sizeof(*vi->sq) * vi->max_queue_pairs, GFP_KERNEL);
+	vi->sq = kcalloc(vi->max_queue_pairs, sizeof(*vi->sq), GFP_KERNEL);
 	if (!vi->sq)
 		goto err_sq;
-	vi->rq = kzalloc(sizeof(*vi->rq) * vi->max_queue_pairs, GFP_KERNEL);
+	vi->rq = kcalloc(vi->max_queue_pairs, sizeof(*vi->rq), GFP_KERNEL);
 	if (!vi->rq)
 		goto err_rq;
 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH net-next v2 1/3] virtio: whitespace cleanups
  2016-07-26 16:37 ` [PATCH net-next v2 1/3] virtio: whitespace cleanups Stephen Hemminger
@ 2016-07-26 16:58   ` Michael S. Tsirkin
  0 siblings, 0 replies; 6+ messages in thread
From: Michael S. Tsirkin @ 2016-07-26 16:58 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: netdev

On Tue, Jul 26, 2016 at 09:37:13AM -0700, Stephen Hemminger wrote:
> Adjust whitespace to match current favored style.
> 
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> 
> --- a/drivers/net/virtio_net.c	2016-07-20 08:12:24.035656119 -0700
> +++ b/drivers/net/virtio_net.c	2016-07-26 09:11:06.988788668 -0700
> @@ -201,7 +201,9 @@ static void give_pages(struct receive_qu
>  	struct page *end;
>  
>  	/* Find end of list, sew whole thing into vi->rq.pages. */
> -	for (end = page; end->private; end = (struct page *)end->private);
> +	for (end = page; end->private; end = (struct page *)end->private)
> +		continue;
> +
>  	end->private = (unsigned long)rq->pages;
>  	rq->pages = page;
>  }
> @@ -233,13 +235,13 @@ static void skb_xmit_done(struct virtque
>  static unsigned int mergeable_ctx_to_buf_truesize(unsigned long mrg_ctx)
>  {
>  	unsigned int truesize = mrg_ctx & (MERGEABLE_BUFFER_ALIGN - 1);
> +
>  	return (truesize + 1) * MERGEABLE_BUFFER_ALIGN;
>  }
>  
>  static void *mergeable_ctx_to_buf_address(unsigned long mrg_ctx)
>  {
>  	return (void *)(mrg_ctx & -MERGEABLE_BUFFER_ALIGN);
> -
>  }
>  
>  static unsigned long mergeable_buf_to_ctx(void *buf, unsigned int truesize)
> @@ -310,6 +312,7 @@ static struct sk_buff *page_to_skb(struc
>  	BUG_ON(offset >= PAGE_SIZE);
>  	while (len) {
>  		unsigned int frag_size = min((unsigned)PAGE_SIZE - offset, len);
> +
>  		skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, page, offset,
>  				frag_size, truesize);
>  		len -= frag_size;
> @@ -323,9 +326,10 @@ static struct sk_buff *page_to_skb(struc
>  	return skb;
>  }
>  
> -static struct sk_buff *receive_small(struct virtnet_info *vi, void *buf, unsigned int len)
> +static struct sk_buff *receive_small(struct virtnet_info *vi,
> +				     void *buf, unsigned int len)
>  {
> -	struct sk_buff * skb = buf;
> +	struct sk_buff *skb = buf;
>  
>  	len -= vi->hdr_len;
>  	skb_trim(skb, len);
> @@ -455,6 +459,7 @@ static void receive_buf(struct virtnet_i
>  		if (vi->mergeable_rx_bufs) {
>  			unsigned long ctx = (unsigned long)buf;
>  			void *base = mergeable_ctx_to_buf_address(ctx);
> +
>  			put_page(virt_to_head_page(base));
>  		} else if (vi->big_packets) {
>  			give_pages(rq, buf);
> @@ -699,7 +704,7 @@ static void refill_work(struct work_stru
>  		 * we will *never* try to fill again.
>  		 */
>  		if (still_empty)
> -			schedule_delayed_work(&vi->refill, HZ/2);
> +			schedule_delayed_work(&vi->refill, HZ / 2);
>  	}
>  }
>  
> @@ -901,12 +906,12 @@ static netdev_tx_t start_xmit(struct sk_
>  	 * Since most packets only take 1 or 2 ring slots, stopping the queue
>  	 * early means 16 slots are typically wasted.
>  	 */
> -	if (sq->vq->num_free < 2+MAX_SKB_FRAGS) {
> +	if (sq->vq->num_free < 2 + MAX_SKB_FRAGS) {
>  		netif_stop_subqueue(dev, qnum);
>  		if (unlikely(!virtqueue_enable_cb_delayed(sq->vq))) {
>  			/* More just got used, free them then recheck. */
>  			free_old_xmit_skbs(sq);
> -			if (sq->vq->num_free >= 2+MAX_SKB_FRAGS) {
> +			if (sq->vq->num_free >= 2 + MAX_SKB_FRAGS) {
>  				netif_start_subqueue(dev, qnum);
>  				virtqueue_disable_cb(sq->vq);
>  			}
> @@ -1238,11 +1243,11 @@ static void virtnet_set_affinity(struct
>  }
>  
>  static int virtnet_cpu_callback(struct notifier_block *nfb,
> -			        unsigned long action, void *hcpu)
> +				unsigned long action, void *hcpu)
>  {
>  	struct virtnet_info *vi = container_of(nfb, struct virtnet_info, nb);
>  
> -	switch(action & ~CPU_TASKS_FROZEN) {
> +	switch (action & ~CPU_TASKS_FROZEN) {
>  	case CPU_ONLINE:
>  	case CPU_DOWN_FAILED:
>  	case CPU_DEAD:
> @@ -1259,7 +1264,7 @@ static int virtnet_cpu_callback(struct n
>  }
>  
>  static void virtnet_get_ringparam(struct net_device *dev,
> -				struct ethtool_ringparam *ring)
> +				  struct ethtool_ringparam *ring)
>  {
>  	struct virtnet_info *vi = netdev_priv(dev);
>  
> @@ -1269,7 +1274,6 @@ static void virtnet_get_ringparam(struct
>  	ring->tx_pending = ring->tx_max_pending;
>  }
>  
> -
>  static void virtnet_get_drvinfo(struct net_device *dev,
>  				struct ethtool_drvinfo *info)
>  {
> @@ -1279,7 +1283,6 @@ static void virtnet_get_drvinfo(struct n
>  	strlcpy(info->driver, KBUILD_MODNAME, sizeof(info->driver));
>  	strlcpy(info->version, VIRTNET_DRIVER_VERSION, sizeof(info->version));
>  	strlcpy(info->bus_info, virtio_bus_name(vdev), sizeof(info->bus_info));
> -
>  }
>  
>  /* TODO: Eliminate OOO packets during switching */
> @@ -1402,9 +1405,9 @@ static int virtnet_change_mtu(struct net
>  }
>  
>  static const struct net_device_ops virtnet_netdev = {
> -	.ndo_open            = virtnet_open,
> -	.ndo_stop   	     = virtnet_close,
> -	.ndo_start_xmit      = start_xmit,
> +	.ndo_open	     = virtnet_open,
> +	.ndo_stop	     = virtnet_close,
> +	.ndo_start_xmit	     = start_xmit,
>  	.ndo_validate_addr   = eth_validate_addr,
>  	.ndo_set_mac_address = virtnet_set_mac_address,
>  	.ndo_set_rx_mode     = virtnet_set_rx_mode,
> @@ -1485,6 +1488,7 @@ static void free_receive_bufs(struct vir
>  static void free_receive_page_frags(struct virtnet_info *vi)
>  {
>  	int i;
> +
>  	for (i = 0; i < vi->max_queue_pairs; i++)
>  		if (vi->rq[i].alloc_frag.page)
>  			put_page(vi->rq[i].alloc_frag.page);
> @@ -1497,6 +1501,7 @@ static void free_unused_bufs(struct virt
>  
>  	for (i = 0; i < vi->max_queue_pairs; i++) {
>  		struct virtqueue *vq = vi->sq[i].vq;
> +
>  		while ((buf = virtqueue_detach_unused_buf(vq)) != NULL)
>  			dev_kfree_skb(buf);
>  	}
> @@ -1508,6 +1513,7 @@ static void free_unused_bufs(struct virt
>  			if (vi->mergeable_rx_bufs) {
>  				unsigned long ctx = (unsigned long)buf;
>  				void *base = mergeable_ctx_to_buf_address(ctx);
> +
>  				put_page(virt_to_head_page(base));
>  			} else if (vi->big_packets) {
>  				give_pages(&vi->rq[i], buf);
> @@ -1660,7 +1666,8 @@ err:
>  
>  #ifdef CONFIG_SYSFS
>  static ssize_t mergeable_rx_buffer_size_show(struct netdev_rx_queue *queue,
> -		struct rx_queue_attribute *attribute, char *buf)
> +					     struct rx_queue_attribute *attribute,
> +					     char *buf)
>  {
>  	struct virtnet_info *vi = netdev_priv(queue->dev);
>  	unsigned int queue_index = get_netdev_rx_queue_index(queue);
> @@ -1784,7 +1791,8 @@ static int virtnet_probe(struct virtio_d
>  		dev->features |= NETIF_F_GSO_ROBUST;
>  
>  		if (gso)
> -			dev->features |= dev->hw_features & (NETIF_F_ALL_TSO|NETIF_F_UFO);
> +			dev->features |= dev->hw_features
> +				& (NETIF_F_ALL_TSO | NETIF_F_UFO);

I'm sorry, I don't like continuations to start with an
operator on the next line. I prefer & on the previous line instead.

Is this one a preferred style now? Any pointers?

>  		/* (!csum && gso) case will be fixed by register_netdev() */
>  	}
>  	if (virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_CSUM))
> @@ -1811,8 +1819,9 @@ static int virtnet_probe(struct virtio_d
>  		goto free;
>  
>  	for_each_possible_cpu(i) {
> -		struct virtnet_stats *virtnet_stats;
> -		virtnet_stats = per_cpu_ptr(vi->stats, i);
> +		struct virtnet_stats *virtnet_stats
> +			= per_cpu_ptr(vi->stats, i);
> +


Same here for =.

>  		u64_stats_init(&virtnet_stats->tx_syncp);
>  		u64_stats_init(&virtnet_stats->rx_syncp);
>  	}

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH net-next v2 0/3] virtio: style cleanups
  2016-07-26 16:37 [PATCH net-next v2 0/3] virtio: style cleanups Stephen Hemminger
                   ` (2 preceding siblings ...)
  2016-07-26 16:37 ` [PATCH net-next v2 3/3] virtio: use kcalloc and kmalloc_array Stephen Hemminger
@ 2016-07-26 18:11 ` Michael S. Tsirkin
  3 siblings, 0 replies; 6+ messages in thread
From: Michael S. Tsirkin @ 2016-07-26 18:11 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: netdev

On Tue, Jul 26, 2016 at 09:37:12AM -0700, Stephen Hemminger wrote:
> Minor things found while doing some inspection code review.

Acked-by: Michael S. Tsirkin <mst@redhat.com>

I guess I'll just queue it up for this release.

-- 
MST

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-07-26 18:11 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-07-26 16:37 [PATCH net-next v2 0/3] virtio: style cleanups Stephen Hemminger
2016-07-26 16:37 ` [PATCH net-next v2 1/3] virtio: whitespace cleanups Stephen Hemminger
2016-07-26 16:58   ` Michael S. Tsirkin
2016-07-26 16:37 ` [PATCH net-next v2 2/3] virtio: cleanup sizeof usage Stephen Hemminger
2016-07-26 16:37 ` [PATCH net-next v2 3/3] virtio: use kcalloc and kmalloc_array Stephen Hemminger
2016-07-26 18:11 ` [PATCH net-next v2 0/3] virtio: style cleanups Michael S. Tsirkin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.