netdev.vger.kernel.org archive mirror
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).