Re: [PULL net (try 2)] vhost-net: zercopy mode fixes

2011-07-21 Thread David Miller
From: "Michael S. Tsirkin" 
Date: Fri, 22 Jul 2011 09:32:38 +0300

> Fixing a corrupted pull request sent earlier.
> Sorry about the noise!
> 
> The following includes vhost-net fixes - both in the
> experimental zero copy mode.
> Please pull for 3.1.

Pulled, thanks!
___
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/virtualization


[PULL net (try 2)] vhost-net: zercopy mode fixes

2011-07-21 Thread Michael S. Tsirkin
Fixing a corrupted pull request sent earlier.
Sorry about the noise!

The following includes vhost-net fixes - both in the
experimental zero copy mode.
Please pull for 3.1.
Thanks!

The following changes since commit fd99beb9375b44309d5ed9c2b62063e23151610b:

  Merge branch 'vhost-net-next' of 
git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost (2011-07-19 10:12:44 
-0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git vhost-net-next

Michael S. Tsirkin (1):
  vhost-net: update used ring on backend change

Shirley Ma (1):
  vhost: handle wrap around in # of bufs math

 drivers/vhost/net.c |   18 ++
 1 files changed, 14 insertions(+), 4 deletions(-)
___
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/virtualization


Re: [PULL net] vhost-net: zercopy mode fixes

2011-07-21 Thread David Miller
From: "Michael S. Tsirkin" 
Date: Fri, 22 Jul 2011 09:00:46 +0300

> The following includes vhost-net fixes - both in the
> experimental zero copy mode.
> Please pull for 3.1.
> Thanks!
> 

Where is this "the following"?  I don't see any GIT url to pull
from or anything :-)
___
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/virtualization


[PULL net] vhost-net: zercopy mode fixes

2011-07-21 Thread Michael S. Tsirkin
The following includes vhost-net fixes - both in the
experimental zero copy mode.
Please pull for 3.1.
Thanks!


___
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/virtualization


Re: [PATCH repost] Fix panic in virtnet_remove

2011-07-21 Thread David Miller
From: "Michael S. Tsirkin" 
Date: Wed, 20 Jul 2011 17:31:15 +0300

> On Wed, Jul 20, 2011 at 07:26:02PM +0530, Krishna Kumar wrote:
>> Fix a panic in virtnet_remove. unregister_netdev has already
>> freed up the netdev (and virtnet_info) due to dev->destructor
>> being set, while virtnet_info is still required. Remove
>> virtnet_free altogether, and move the freeing of the per-cpu
>> statistics from virtnet_free to virtnet_remove.
>> 
>> Tested patch below.
>> 
>> Signed-off-by: Krishna Kumar 
> 
> Also note that the crash was apparently introduced by
> 3fa2a1df909482cc234524906e4bd30dee3514df in net-next,
> so this is a net-next only patch.
> 
> Stephen, was there any special reason to free the memory
> in the destructor like you did?
> 
> Acked-by: Michael S. Tsirkin 

Applied.
___
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/virtualization


Re: [PATCH 2/9] staging: hv: add newline to log messages in netvsc

2011-07-21 Thread Joe Perches
On Thu, 2011-07-21 at 10:14 -0700, Haiyang Zhang wrote:
> Signed-off-by: Haiyang Zhang 
> Signed-off-by: K. Y. Srinivasan 

Just noticing some trivial typos...

> diff --git a/drivers/staging/hv/netvsc.c b/drivers/staging/hv/netvsc.c
[]
> @@ -246,7 +246,7 @@ static int netvsc_init_recv_buf(struct hv_device *device)
>   if (init_packet->msg.v1_msg.
>   send_recv_buf_complete.status != NVSP_STAT_SUCCESS) {
>   dev_err(&device->device, "Unable to complete receive buffer "
> -"initialzation with NetVsp - status %d",
> +"initialzation with NetVsp - status %d\n",

initialization

[]
> @@ -738,7 +738,7 @@ static void netvsc_receive(struct hv_device *device,
>  
>   if (xferpage_packet->count != vmxferpage_packet->range_cnt) {
>   dev_err(&device->device, "Needed %d netvsc pkts to satisy "
> - "this xfer page...got %d",
> + "this xfer page...got %d\n",

satisfy


___
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/virtualization


[PATCH 5/9] staging: hv: re-order the code in netvsc_probe()

2011-07-21 Thread Haiyang Zhang
Re-order the code in netvsc_probe() to prevent a guest crash caused by
packets possibly received from NetVSP before call to register_netdev().

Signed-off-by: Haiyang Zhang 
Signed-off-by: K. Y. Srinivasan 
---
 drivers/staging/hv/netvsc_drv.c |   32 +---
 1 files changed, 17 insertions(+), 15 deletions(-)

diff --git a/drivers/staging/hv/netvsc_drv.c b/drivers/staging/hv/netvsc_drv.c
index c8e2f24..816e382 100644
--- a/drivers/staging/hv/netvsc_drv.c
+++ b/drivers/staging/hv/netvsc_drv.c
@@ -350,19 +350,6 @@ static int netvsc_probe(struct hv_device *dev)
dev_set_drvdata(&dev->device, net);
INIT_DELAYED_WORK(&net_device_ctx->dwork, netvsc_send_garp);
 
-   /* Notify the netvsc driver of the new device */
-   device_info.ring_size = ring_size;
-   ret = rndis_filter_device_add(dev, &device_info);
-   if (ret != 0) {
-   free_netdev(net);
-   dev_set_drvdata(&dev->device, NULL);
-   return ret;
-   }
-
-   netif_carrier_on(net);
-
-   memcpy(net->dev_addr, device_info.mac_adr, ETH_ALEN);
-
net->netdev_ops = &device_ops;
 
/* TODO: Add GSO and Checksum offload */
@@ -374,11 +361,26 @@ static int netvsc_probe(struct hv_device *dev)
 
ret = register_netdev(net);
if (ret != 0) {
-   /* Remove the device and release the resource */
-   rndis_filter_device_remove(dev);
+   pr_err("Unable to register netdev.\n");
free_netdev(net);
+   goto out;
}
 
+   /* Notify the netvsc driver of the new device */
+   device_info.ring_size = ring_size;
+   ret = rndis_filter_device_add(dev, &device_info);
+   if (ret != 0) {
+   netdev_err(net, "unable to add netvsc device (ret %d)\n", ret);
+   unregister_netdev(net);
+   free_netdev(net);
+   dev_set_drvdata(&dev->device, NULL);
+   return ret;
+   }
+   memcpy(net->dev_addr, device_info.mac_adr, ETH_ALEN);
+
+   netif_carrier_on(net);
+
+out:
return ret;
 }
 
-- 
1.6.3.2

___
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/virtualization


[PATCH 4/9] staging: hv: fix a kernel warning in netvsc_linkstatus_callback()

2011-07-21 Thread Haiyang Zhang
netif_notify_peers() caused a kernel warning in netvsc_linkstatus_callback(),
because netvsc_linkstatus_callback() is within IRQ context. So we move
the first call to netif_notify_peers() into queued work as well, but with
zero delay.

In addition to "staging-next", this should also be back-ported to stable
kernels 2.6.32 and later.

Signed-off-by: Haiyang Zhang 
Signed-off-by: K. Y. Srinivasan 
Cc: stable 
---
 drivers/staging/hv/netvsc_drv.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/staging/hv/netvsc_drv.c b/drivers/staging/hv/netvsc_drv.c
index 7b9d9ca..c8e2f24 100644
--- a/drivers/staging/hv/netvsc_drv.c
+++ b/drivers/staging/hv/netvsc_drv.c
@@ -216,8 +216,8 @@ void netvsc_linkstatus_callback(struct hv_device 
*device_obj,
if (status == 1) {
netif_carrier_on(net);
netif_wake_queue(net);
-   netif_notify_peers(net);
ndev_ctx = netdev_priv(net);
+   schedule_delayed_work(&ndev_ctx->dwork, 0);
schedule_delayed_work(&ndev_ctx->dwork, msecs_to_jiffies(20));
} else {
netif_carrier_off(net);
-- 
1.6.3.2

___
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/virtualization


[PATCH 2/9] staging: hv: add newline to log messages in netvsc

2011-07-21 Thread Haiyang Zhang
Signed-off-by: Haiyang Zhang 
Signed-off-by: K. Y. Srinivasan 
---
 drivers/staging/hv/netvsc.c |   58 +++---
 drivers/staging/hv/netvsc_drv.c |2 +-
 2 files changed, 30 insertions(+), 30 deletions(-)

diff --git a/drivers/staging/hv/netvsc.c b/drivers/staging/hv/netvsc.c
index c3cc880..0eda326 100644
--- a/drivers/staging/hv/netvsc.c
+++ b/drivers/staging/hv/netvsc.c
@@ -139,7 +139,7 @@ static int netvsc_destroy_recv_buf(struct netvsc_device 
*net_device)
 */
if (ret != 0) {
dev_err(&net_device->dev->device, "unable to send "
-   "revoke receive buffer to netvsp");
+   "revoke receive buffer to netvsp\n");
return ret;
}
}
@@ -154,7 +154,7 @@ static int netvsc_destroy_recv_buf(struct netvsc_device 
*net_device)
 */
if (ret != 0) {
dev_err(&net_device->dev->device,
-  "unable to teardown receive buffer's gpadl");
+  "unable to teardown receive buffer's 
gpadl\n");
return -ret;
}
net_device->recv_buf_gpadl_handle = 0;
@@ -186,7 +186,7 @@ static int netvsc_init_recv_buf(struct hv_device *device)
net_device = get_outbound_net_device(device);
if (!net_device) {
dev_err(&device->device, "unable to get net device..."
-  "device being destroyed?");
+  "device being destroyed?\n");
return -ENODEV;
}
 
@@ -195,7 +195,7 @@ static int netvsc_init_recv_buf(struct hv_device *device)
get_order(net_device->recv_buf_size));
if (!net_device->recv_buf) {
dev_err(&device->device, "unable to allocate receive "
-   "buffer of size %d", net_device->recv_buf_size);
+   "buffer of size %d\n", net_device->recv_buf_size);
ret = -ENOMEM;
goto cleanup;
}
@@ -210,7 +210,7 @@ static int netvsc_init_recv_buf(struct hv_device *device)
&net_device->recv_buf_gpadl_handle);
if (ret != 0) {
dev_err(&device->device,
-   "unable to establish receive buffer's gpadl");
+   "unable to establish receive buffer's gpadl\n");
goto cleanup;
}
 
@@ -234,7 +234,7 @@ static int netvsc_init_recv_buf(struct hv_device *device)
   VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED);
if (ret != 0) {
dev_err(&device->device,
-   "unable to send receive buffer's gpadl to netvsp");
+   "unable to send receive buffer's gpadl to netvsp\n");
goto cleanup;
}
 
@@ -246,7 +246,7 @@ static int netvsc_init_recv_buf(struct hv_device *device)
if (init_packet->msg.v1_msg.
send_recv_buf_complete.status != NVSP_STAT_SUCCESS) {
dev_err(&device->device, "Unable to complete receive buffer "
-  "initialzation with NetVsp - status %d",
+  "initialzation with NetVsp - status %d\n",
   init_packet->msg.v1_msg.
   send_recv_buf_complete.status);
ret = -EINVAL;
@@ -302,7 +302,7 @@ static int netvsc_connect_vsp(struct hv_device *device)
net_device = get_outbound_net_device(device);
if (!net_device) {
dev_err(&device->device, "unable to get net device..."
-  "device being destroyed?");
+  "device being destroyed?\n");
return -ENODEV;
}
 
@@ -401,7 +401,7 @@ int netvsc_device_remove(struct hv_device *device)
/* Wait for all send completions */
while (atomic_read(&net_device->num_outstanding_sends)) {
dev_err(&device->device,
-   "waiting for %d requests to complete...",
+   "waiting for %d requests to complete...\n",
atomic_read(&net_device->num_outstanding_sends));
udelay(100);
}
@@ -425,7 +425,7 @@ int netvsc_device_remove(struct hv_device *device)
udelay(100);
 
/* At this point, no one should be accessing netDevice except in here */
-   dev_notice(&device->device, "net device safe to remove");
+   dev_notice(&device->device, "net device safe to remove\n");
 
/* Now, we can close the channel safely */
vmbus_close(device->channel);
@@ -451,7 +451,7 @@ static void netvsc_send_completion(struct hv_device *device,
net_device = get_inbound_net_device(device);
if (!net_device) {
dev_err(&device->device, "unable to 

[PATCH 7/9] staging: hv: fix counting of available buffer slots when send fails

2011-07-21 Thread Haiyang Zhang
Because the number of available buffer slots doesn't decrease for failed
sends, we should not call netvsc_xmit_completion(), which increase the
count of available slots. In this failed case, just free the memory is
enough.

Signed-off-by: Haiyang Zhang 
Signed-off-by: K. Y. Srinivasan 
---
 drivers/staging/hv/netvsc_drv.c |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/staging/hv/netvsc_drv.c b/drivers/staging/hv/netvsc_drv.c
index 816e382..a15165e 100644
--- a/drivers/staging/hv/netvsc_drv.c
+++ b/drivers/staging/hv/netvsc_drv.c
@@ -192,7 +192,8 @@ static int netvsc_start_xmit(struct sk_buff *skb, struct 
net_device *net)
} else {
/* we are shutting down or bus overloaded, just drop packet */
net->stats.tx_dropped++;
-   netvsc_xmit_completion(packet);
+   kfree(packet);
+   dev_kfree_skb_any(skb);
}
 
return NETDEV_TX_OK;
-- 
1.6.3.2

___
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/virtualization


[PATCH 6/9] staging: hv: fix counting of #outstanding-sends in failed sends

2011-07-21 Thread Haiyang Zhang
If the packet failed to be sent, we shouldn't count it as the
number of outstanding sends.

Signed-off-by: Haiyang Zhang 
Signed-off-by: K. Y. Srinivasan 
---
 drivers/staging/hv/netvsc.c |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/staging/hv/netvsc.c b/drivers/staging/hv/netvsc.c
index 159c490..2b33e13 100644
--- a/drivers/staging/hv/netvsc.c
+++ b/drivers/staging/hv/netvsc.c
@@ -539,8 +539,9 @@ int netvsc_send(struct hv_device *device,
if (ret != 0)
netdev_err(ndev, "Unable to send packet %p ret %d\n",
   packet, ret);
+   else
+   atomic_inc(&net_device->num_outstanding_sends);
 
-   atomic_inc(&net_device->num_outstanding_sends);
put_net_device(device);
return ret;
 }
-- 
1.6.3.2

___
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/virtualization


[PATCH 9/9] staging: hv: fix the page buffer when rndis data go across page boundary

2011-07-21 Thread Haiyang Zhang
In rndis_filter_receive_data(), we need to drop the 0th page and move the
rest of pages forward if the rndis data go across page boundary, otherwise
the page offset will overflow.

Signed-off-by: Haiyang Zhang 
Signed-off-by: K. Y. Srinivasan 
---
 drivers/staging/hv/rndis_filter.c |   10 ++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/drivers/staging/hv/rndis_filter.c 
b/drivers/staging/hv/rndis_filter.c
index 20e673d..b325345 100644
--- a/drivers/staging/hv/rndis_filter.c
+++ b/drivers/staging/hv/rndis_filter.c
@@ -323,6 +323,7 @@ static void rndis_filter_receive_data(struct rndis_device 
*dev,
 {
struct rndis_packet *rndis_pkt;
u32 data_offset;
+   int i;
 
rndis_pkt = &msg->msg.pkt;
 
@@ -338,6 +339,15 @@ static void rndis_filter_receive_data(struct rndis_device 
*dev,
pkt->page_buf[0].offset += data_offset;
pkt->page_buf[0].len -= data_offset;
 
+   /* Drop the 0th page, if rndis data go beyond page boundary */
+   if (pkt->page_buf[0].offset >= PAGE_SIZE) {
+   pkt->page_buf[1].offset = pkt->page_buf[0].offset - PAGE_SIZE;
+   pkt->page_buf[1].len -= pkt->page_buf[1].offset;
+   pkt->page_buf_cnt--;
+   for (i = 0; i < pkt->page_buf_cnt; i++)
+   pkt->page_buf[i] = pkt->page_buf[i+1];
+   }
+
pkt->is_data_pkt = true;
 
netvsc_recv_callback(dev->net_dev->dev, pkt);
-- 
1.6.3.2

___
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/virtualization


[PATCH 3/9] staging: hv: convert dev_ to netdev_ in netvsc

2011-07-21 Thread Haiyang Zhang
Signed-off-by: Haiyang Zhang 
Signed-off-by: K. Y. Srinivasan 
---
 drivers/staging/hv/netvsc.c   |   68 +
 drivers/staging/hv/rndis_filter.c |   17 +
 2 files changed, 49 insertions(+), 36 deletions(-)

diff --git a/drivers/staging/hv/netvsc.c b/drivers/staging/hv/netvsc.c
index 0eda326..159c490 100644
--- a/drivers/staging/hv/netvsc.c
+++ b/drivers/staging/hv/netvsc.c
@@ -28,6 +28,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include "hyperv_net.h"
 
@@ -111,6 +112,7 @@ static int netvsc_destroy_recv_buf(struct netvsc_device 
*net_device)
 {
struct nvsp_message *revoke_packet;
int ret = 0;
+   struct net_device *ndev = dev_get_drvdata(&net_device->dev->device);
 
/*
 * If we got a section count, it means we received a
@@ -138,7 +140,7 @@ static int netvsc_destroy_recv_buf(struct netvsc_device 
*net_device)
 * have a leak rather than continue and a bugchk
 */
if (ret != 0) {
-   dev_err(&net_device->dev->device, "unable to send "
+   netdev_err(ndev, "unable to send "
"revoke receive buffer to netvsp\n");
return ret;
}
@@ -153,7 +155,7 @@ static int netvsc_destroy_recv_buf(struct netvsc_device 
*net_device)
 * rather than continue and a bugchk
 */
if (ret != 0) {
-   dev_err(&net_device->dev->device,
+   netdev_err(ndev,
   "unable to teardown receive buffer's 
gpadl\n");
return -ret;
}
@@ -182,10 +184,11 @@ static int netvsc_init_recv_buf(struct hv_device *device)
int t;
struct netvsc_device *net_device;
struct nvsp_message *init_packet;
+   struct net_device *ndev = dev_get_drvdata(&device->device);
 
net_device = get_outbound_net_device(device);
if (!net_device) {
-   dev_err(&device->device, "unable to get net device..."
+   netdev_err(ndev, "unable to get net device..."
   "device being destroyed?\n");
return -ENODEV;
}
@@ -194,7 +197,7 @@ static int netvsc_init_recv_buf(struct hv_device *device)
(void *)__get_free_pages(GFP_KERNEL|__GFP_ZERO,
get_order(net_device->recv_buf_size));
if (!net_device->recv_buf) {
-   dev_err(&device->device, "unable to allocate receive "
+   netdev_err(ndev, "unable to allocate receive "
"buffer of size %d\n", net_device->recv_buf_size);
ret = -ENOMEM;
goto cleanup;
@@ -209,7 +212,7 @@ static int netvsc_init_recv_buf(struct hv_device *device)
net_device->recv_buf_size,
&net_device->recv_buf_gpadl_handle);
if (ret != 0) {
-   dev_err(&device->device,
+   netdev_err(ndev,
"unable to establish receive buffer's gpadl\n");
goto cleanup;
}
@@ -233,7 +236,7 @@ static int netvsc_init_recv_buf(struct hv_device *device)
   VM_PKT_DATA_INBAND,
   VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED);
if (ret != 0) {
-   dev_err(&device->device,
+   netdev_err(ndev,
"unable to send receive buffer's gpadl to netvsp\n");
goto cleanup;
}
@@ -245,7 +248,7 @@ static int netvsc_init_recv_buf(struct hv_device *device)
/* Check the response */
if (init_packet->msg.v1_msg.
send_recv_buf_complete.status != NVSP_STAT_SUCCESS) {
-   dev_err(&device->device, "Unable to complete receive buffer "
+   netdev_err(ndev, "Unable to complete receive buffer "
   "initialzation with NetVsp - status %d\n",
   init_packet->msg.v1_msg.
   send_recv_buf_complete.status);
@@ -298,10 +301,11 @@ static int netvsc_connect_vsp(struct hv_device *device)
struct netvsc_device *net_device;
struct nvsp_message *init_packet;
int ndis_version;
+   struct net_device *ndev = dev_get_drvdata(&device->device);
 
net_device = get_outbound_net_device(device);
if (!net_device) {
-   dev_err(&device->device, "unable to get net device..."
+   netdev_err(ndev, "unable to get net device..."
   "device being destroyed?\n");
return -ENODEV;
}
@@ -400,7 +404,7 @@ int netvsc_device_remove(struct hv_device *device)
 
/* Wait for all send completions */
while (atomic_read(&net_device->num_outstanding_sends)) {
-   dev_err(&device->device,
+ 

[PATCH 8/9] staging: hv: fix the return status of netvsc_start_xmit()

2011-07-21 Thread Haiyang Zhang
Fix the return status, so the upper layer will retry if transmission
fails.

Signed-off-by: Haiyang Zhang 
Signed-off-by: K. Y. Srinivasan 
---
 drivers/staging/hv/netvsc_drv.c |6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/hv/netvsc_drv.c b/drivers/staging/hv/netvsc_drv.c
index a15165e..818ddf8 100644
--- a/drivers/staging/hv/netvsc_drv.c
+++ b/drivers/staging/hv/netvsc_drv.c
@@ -142,12 +142,12 @@ static int netvsc_start_xmit(struct sk_buff *skb, struct 
net_device *net)
 (num_pages * sizeof(struct hv_page_buffer)) +
 sizeof(struct rndis_filter_packet), GFP_ATOMIC);
if (!packet) {
-   /* out of memory, silently drop packet */
+   /* out of memory, drop packet */
netdev_err(net, "unable to allocate hv_netvsc_packet\n");
 
dev_kfree_skb(skb);
net->stats.tx_dropped++;
-   return NETDEV_TX_OK;
+   return NETDEV_TX_BUSY;
}
 
packet->extension = (void *)(unsigned long)packet +
@@ -196,7 +196,7 @@ static int netvsc_start_xmit(struct sk_buff *skb, struct 
net_device *net)
dev_kfree_skb_any(skb);
}
 
-   return NETDEV_TX_OK;
+   return ret ? NETDEV_TX_BUSY : NETDEV_TX_OK;
 }
 
 /*
-- 
1.6.3.2

___
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/virtualization


[PATCH 1/9] staging: hv: remove unnecessary includes in netvsc

2011-07-21 Thread Haiyang Zhang
hyperv.h is included by hyperv_net.h already, so no need to include it
again in these C files.

Signed-off-by: Haiyang Zhang 
Signed-off-by: K. Y. Srinivasan 
---
 drivers/staging/hv/netvsc.c   |1 -
 drivers/staging/hv/netvsc_drv.c   |1 -
 drivers/staging/hv/rndis_filter.c |1 -
 3 files changed, 0 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/hv/netvsc.c b/drivers/staging/hv/netvsc.c
index 16a80b1..c3cc880 100644
--- a/drivers/staging/hv/netvsc.c
+++ b/drivers/staging/hv/netvsc.c
@@ -29,7 +29,6 @@
 #include 
 #include 
 
-#include "hyperv.h"
 #include "hyperv_net.h"
 
 
diff --git a/drivers/staging/hv/netvsc_drv.c b/drivers/staging/hv/netvsc_drv.c
index 474c5f0..1325de4 100644
--- a/drivers/staging/hv/netvsc_drv.c
+++ b/drivers/staging/hv/netvsc_drv.c
@@ -38,7 +38,6 @@
 #include 
 #include 
 
-#include "hyperv.h"
 #include "hyperv_net.h"
 
 static const char *driver_name = "netvsc";
diff --git a/drivers/staging/hv/rndis_filter.c 
b/drivers/staging/hv/rndis_filter.c
index 6db48b9..8416bf2 100644
--- a/drivers/staging/hv/rndis_filter.c
+++ b/drivers/staging/hv/rndis_filter.c
@@ -27,7 +27,6 @@
 #include 
 #include 
 
-#include "hyperv.h"
 #include "hyperv_net.h"
 
 
-- 
1.6.3.2

___
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/virtualization


[PATCH 0/9] netvsc bug fixes and cleanups

2011-07-21 Thread Haiyang Zhang
Fixed a set of bugs in netvsc module, and cleaned up some coding style issues.

Haiyang Zhang (9):
  staging: hv: remove unnecessary includes in netvsc
  staging: hv: add newline to log messages in netvsc
  staging: hv: convert dev_ to netdev_ in netvsc
  staging: hv: fix a kernel warning in netvsc_linkstatus_callback()
  staging: hv: re-order the code in netvsc_probe()
  staging: hv: fix counting of #outstanding-sends in failed sends
  staging: hv: fix counting of available buffer slots when send fails
  staging: hv: fix the return status of netvsc_start_xmit()
  staging: hv: fix the page buffer when rndis data go across page
boundary

 drivers/staging/hv/netvsc.c   |  124 -
 drivers/staging/hv/netvsc_drv.c   |   46 +++---
 drivers/staging/hv/rndis_filter.c |   28 ++---
 3 files changed, 111 insertions(+), 87 deletions(-)

___
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/virtualization