* [PATCH 1/5] staging: hv: fix some white spaces in netvsc driver
@ 2011-06-17 14:58 Haiyang Zhang
0 siblings, 0 replies; 10+ messages in thread
From: Haiyang Zhang @ 2011-06-17 14:58 UTC (permalink / raw)
To: haiyangz, hjanssen, kys, v-abkane, gregkh, linux-kernel, devel,
vir
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: Abhishek Kane <v-abkane@microsoft.com>
Signed-off-by: Hank Janssen <hjanssen@microsoft.com>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
---
drivers/staging/hv/netvsc.c | 8 ++++----
drivers/staging/hv/netvsc_drv.c | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/staging/hv/netvsc.c b/drivers/staging/hv/netvsc.c
index 0ae35e7..b6e1fb9 100644
--- a/drivers/staging/hv/netvsc.c
+++ b/drivers/staging/hv/netvsc.c
@@ -525,10 +525,10 @@ int netvsc_send(struct hv_device *device,
(unsigned long)packet);
} else {
ret = vmbus_sendpacket(device->channel, &sendMessage,
- sizeof(struct nvsp_message),
- (unsigned long)packet,
- VM_PKT_DATA_INBAND,
- VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED);
+ sizeof(struct nvsp_message),
+ (unsigned long)packet,
+ VM_PKT_DATA_INBAND,
+ VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED);
}
diff --git a/drivers/staging/hv/netvsc_drv.c b/drivers/staging/hv/netvsc_drv.c
index b339acc..8380fe9 100644
--- a/drivers/staging/hv/netvsc_drv.c
+++ b/drivers/staging/hv/netvsc_drv.c
@@ -122,7 +122,7 @@ static void netvsc_xmit_completion(void *context)
atomic_add(num_pages, &net_device_ctx->avail);
if (atomic_read(&net_device_ctx->avail) >=
PACKET_PAGES_HIWATER)
- netif_wake_queue(net);
+ netif_wake_queue(net);
}
}
--
1.6.3.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/5] staging: hv: remove unnecessary includes in netvsc
[not found] <1308322688-9796-1-git-send-email-haiyangz@microsoft.com>
@ 2011-06-17 14:58 ` Haiyang Zhang
2011-06-17 14:58 ` [PATCH 3/5] staging: hv: add newline to log messages " Haiyang Zhang
` (5 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Haiyang Zhang @ 2011-06-17 14:58 UTC (permalink / raw)
To: haiyangz, hjanssen, kys, v-abkane, gregkh, linux-kernel, devel,
vir
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 <haiyangz@microsoft.com>
Signed-off-by: Abhishek Kane <v-abkane@microsoft.com>
Signed-off-by: Hank Janssen <hjanssen@microsoft.com>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
---
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 b6e1fb9..ed9b8af 100644
--- a/drivers/staging/hv/netvsc.c
+++ b/drivers/staging/hv/netvsc.c
@@ -28,7 +28,6 @@
#include <linux/io.h>
#include <linux/slab.h>
-#include "hyperv.h"
#include "hyperv_net.h"
diff --git a/drivers/staging/hv/netvsc_drv.c b/drivers/staging/hv/netvsc_drv.c
index 8380fe9..e5aba38 100644
--- a/drivers/staging/hv/netvsc_drv.c
+++ b/drivers/staging/hv/netvsc_drv.c
@@ -38,7 +38,6 @@
#include <net/sock.h>
#include <net/pkt_sched.h>
-#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 <linux/if_ether.h>
#include <linux/netdevice.h>
-#include "hyperv.h"
#include "hyperv_net.h"
--
1.6.3.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 3/5] staging: hv: add newline to log messages in netvsc
[not found] <1308322688-9796-1-git-send-email-haiyangz@microsoft.com>
2011-06-17 14:58 ` [PATCH 2/5] staging: hv: remove unnecessary includes in netvsc Haiyang Zhang
@ 2011-06-17 14:58 ` Haiyang Zhang
2011-06-17 14:58 ` [PATCH 4/5] staging: hv: convert dev_<loglevel> to netdev_<loglevel> " Haiyang Zhang
` (4 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Haiyang Zhang @ 2011-06-17 14:58 UTC (permalink / raw)
To: haiyangz, hjanssen, kys, v-abkane, gregkh, linux-kernel, devel,
vir
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: Abhishek Kane <v-abkane@microsoft.com>
Signed-off-by: Hank Janssen <hjanssen@microsoft.com>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
---
drivers/staging/hv/netvsc.c | 60 +++++++++++++++++++-------------------
drivers/staging/hv/netvsc_drv.c | 2 +-
2 files changed, 31 insertions(+), 31 deletions(-)
diff --git a/drivers/staging/hv/netvsc.c b/drivers/staging/hv/netvsc.c
index ed9b8af..68ed3b4 100644
--- a/drivers/staging/hv/netvsc.c
+++ b/drivers/staging/hv/netvsc.c
@@ -158,7 +158,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;
}
}
@@ -173,7 +173,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;
@@ -205,7 +205,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;
}
@@ -214,7 +214,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;
}
@@ -229,7 +229,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;
}
@@ -253,7 +253,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;
}
@@ -265,7 +265,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;
@@ -321,7 +321,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;
}
@@ -407,14 +407,14 @@ int netvsc_device_remove(struct hv_device *device)
/* Stop outbound traffic ie sends and receives completions */
net_device = release_outbound_net_device(device);
if (!net_device) {
- dev_err(&device->device, "No net device present!!");
+ dev_err(&device->device, "No net device present!!\n");
return -ENODEV;
}
/* 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)
net_device = release_inbound_net_device(device);
/* 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 get net device..."
- "device being destroyed?");
+ "device being destroyed?\n");
return;
}
@@ -480,7 +480,7 @@ static void netvsc_send_completion(struct hv_device *device,
atomic_dec(&net_device->num_outstanding_sends);
} else {
dev_err(&device->device, "Unknown send completion packet type- "
- "%d received!!", nvsp_packet->hdr.msg_type);
+ "%d received!!\n", nvsp_packet->hdr.msg_type);
}
put_net_device(device);
@@ -497,7 +497,7 @@ int netvsc_send(struct hv_device *device,
net_device = get_outbound_net_device(device);
if (!net_device) {
dev_err(&device->device, "net device (%p) shutting down..."
- "ignoring outbound packets", net_device);
+ "ignoring outbound packets\n", net_device);
return -ENODEV;
}
@@ -532,7 +532,7 @@ int netvsc_send(struct hv_device *device,
}
if (ret != 0)
- dev_err(&device->device, "Unable to send packet %p ret %d",
+ dev_err(&device->device, "Unable to send packet %p ret %d\n",
packet, ret);
atomic_inc(&net_device->num_outstanding_sends);
@@ -566,19 +566,19 @@ retry_send_cmplt:
/* no more room...wait a bit and attempt to retry 3 times */
retries++;
dev_err(&device->device, "unable to send receive completion pkt"
- " (tid %llx)...retrying %d", transaction_id, retries);
+ " (tid %llx)...retrying %d\n", transaction_id, retries);
if (retries < 4) {
udelay(100);
goto retry_send_cmplt;
} else {
dev_err(&device->device, "unable to send receive "
- "completion pkt (tid %llx)...give up retrying",
+ "completion pkt (tid %llx)...give up retrying\n",
transaction_id);
}
} else {
dev_err(&device->device, "unable to send receive "
- "completion pkt - %llx", transaction_id);
+ "completion pkt - %llx\n", transaction_id);
}
}
@@ -600,7 +600,7 @@ static void netvsc_receive_completion(void *context)
net_device = get_inbound_net_device(device);
if (!net_device) {
dev_err(&device->device, "unable to get net device..."
- "device being destroyed?");
+ "device being destroyed?\n");
return;
}
@@ -652,7 +652,7 @@ static void netvsc_receive(struct hv_device *device,
net_device = get_inbound_net_device(device);
if (!net_device) {
dev_err(&device->device, "unable to get net device..."
- "device being destroyed?");
+ "device being destroyed?\n");
return;
}
@@ -661,7 +661,7 @@ static void netvsc_receive(struct hv_device *device,
* packet
*/
if (packet->type != VM_PKT_DATA_USING_XFER_PAGES) {
- dev_err(&device->device, "Unknown packet type received - %d",
+ dev_err(&device->device, "Unknown packet type received - %d\n",
packet->type);
put_net_device(device);
return;
@@ -674,7 +674,7 @@ static void netvsc_receive(struct hv_device *device,
if (nvsp_packet->hdr.msg_type !=
NVSP_MSG1_TYPE_SEND_RNDIS_PKT) {
dev_err(&device->device, "Unknown nvsp packet type received-"
- " %d", nvsp_packet->hdr.msg_type);
+ " %d\n", nvsp_packet->hdr.msg_type);
put_net_device(device);
return;
}
@@ -683,7 +683,7 @@ static void netvsc_receive(struct hv_device *device,
if (vmxferpage_packet->xfer_pageset_id != NETVSC_RECEIVE_BUFFER_ID) {
dev_err(&device->device, "Invalid xfer page set id - "
- "expecting %x got %x", NETVSC_RECEIVE_BUFFER_ID,
+ "expecting %x got %x\n", NETVSC_RECEIVE_BUFFER_ID,
vmxferpage_packet->xfer_pageset_id);
put_net_device(device);
return;
@@ -710,7 +710,7 @@ static void netvsc_receive(struct hv_device *device,
*/
if (count < 2) {
dev_err(&device->device, "Got only %d netvsc pkt...needed "
- "%d pkts. Dropping this xfer page packet completely!",
+ "%d pkts. Dropping this xfer page packet completely!\n",
count, vmxferpage_packet->range_cnt + 1);
/* Return it to the freelist */
@@ -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",
vmxferpage_packet->range_cnt, xferpage_packet->count);
}
@@ -837,7 +837,7 @@ static void netvsc_channel_cb(void *context)
net_device = get_inbound_net_device(device);
if (!net_device) {
dev_err(&device->device, "net device (%p) shutting down..."
- "ignoring inbound packets", net_device);
+ "ignoring inbound packets\n", net_device);
goto out;
}
@@ -888,7 +888,7 @@ static void netvsc_channel_cb(void *context)
/* Try again next time around */
dev_err(&device->device,
"unable to allocate buffer of size "
- "(%d)!!", bytes_recvd);
+ "(%d)!!\n", bytes_recvd);
break;
}
@@ -945,18 +945,18 @@ int netvsc_device_add(struct hv_device *device, void *additional_info)
netvsc_channel_cb, device);
if (ret != 0) {
- dev_err(&device->device, "unable to open channel: %d", ret);
+ dev_err(&device->device, "unable to open channel: %d\n", ret);
goto cleanup;
}
/* Channel is opened */
- pr_info("hv_netvsc channel opened successfully");
+ pr_info("hv_netvsc channel opened successfully\n");
/* Connect with the NetVsp */
ret = netvsc_connect_vsp(device);
if (ret != 0) {
dev_err(&device->device,
- "unable to connect to NetVSP - %d", ret);
+ "unable to connect to NetVSP - %d\n", ret);
goto close;
}
diff --git a/drivers/staging/hv/netvsc_drv.c b/drivers/staging/hv/netvsc_drv.c
index e5aba38..c9ed19a 100644
--- a/drivers/staging/hv/netvsc_drv.c
+++ b/drivers/staging/hv/netvsc_drv.c
@@ -433,7 +433,7 @@ static int __init netvsc_drv_init(void)
struct hv_driver *drv = &netvsc_drv;
int ret;
- pr_info("initializing....");
+ pr_info("initializing....\n");
drv->driver.name = driver_name;
--
1.6.3.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 4/5] staging: hv: convert dev_<loglevel> to netdev_<loglevel> in netvsc
[not found] <1308322688-9796-1-git-send-email-haiyangz@microsoft.com>
2011-06-17 14:58 ` [PATCH 2/5] staging: hv: remove unnecessary includes in netvsc Haiyang Zhang
2011-06-17 14:58 ` [PATCH 3/5] staging: hv: add newline to log messages " Haiyang Zhang
@ 2011-06-17 14:58 ` Haiyang Zhang
2011-06-17 14:58 ` [PATCH 5/5] staging: hv: fix a kernel warning in netvsc_linkstatus_callback() Haiyang Zhang
` (3 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Haiyang Zhang @ 2011-06-17 14:58 UTC (permalink / raw)
To: haiyangz, hjanssen, kys, v-abkane, gregkh, linux-kernel, devel,
vir
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: Abhishek Kane <v-abkane@microsoft.com>
Signed-off-by: Hank Janssen <hjanssen@microsoft.com>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
---
drivers/staging/hv/netvsc.c | 71 +++++++++++++++++++++---------------
drivers/staging/hv/rndis_filter.c | 17 +++++----
2 files changed, 51 insertions(+), 37 deletions(-)
diff --git a/drivers/staging/hv/netvsc.c b/drivers/staging/hv/netvsc.c
index 68ed3b4..551537a 100644
--- a/drivers/staging/hv/netvsc.c
+++ b/drivers/staging/hv/netvsc.c
@@ -27,6 +27,7 @@
#include <linux/delay.h>
#include <linux/io.h>
#include <linux/slab.h>
+#include <linux/netdevice.h>
#include "hyperv_net.h"
@@ -130,6 +131,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
@@ -157,7 +159,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;
}
@@ -172,7 +174,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;
}
@@ -201,10 +203,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;
}
@@ -213,7 +216,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;
@@ -228,7 +231,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;
}
@@ -252,7 +255,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;
}
@@ -264,7 +267,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);
@@ -317,10 +320,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;
}
@@ -403,17 +407,18 @@ int netvsc_device_remove(struct hv_device *device)
{
struct netvsc_device *net_device;
struct hv_netvsc_packet *netvsc_packet, *pos;
+ struct net_device *ndev = dev_get_drvdata(&device->device);
/* Stop outbound traffic ie sends and receives completions */
net_device = release_outbound_net_device(device);
if (!net_device) {
- dev_err(&device->device, "No net device present!!\n");
+ netdev_err(ndev, "No net device present!!\n");
return -ENODEV;
}
/* Wait for all send completions */
while (atomic_read(&net_device->num_outstanding_sends)) {
- dev_err(&device->device,
+ dev_info(&device->device,
"waiting for %d requests to complete...\n",
atomic_read(&net_device->num_outstanding_sends));
udelay(100);
@@ -447,10 +452,11 @@ static void netvsc_send_completion(struct hv_device *device,
struct netvsc_device *net_device;
struct nvsp_message *nvsp_packet;
struct hv_netvsc_packet *nvsc_packet;
+ struct net_device *ndev = dev_get_drvdata(&device->device);
net_device = get_inbound_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;
}
@@ -479,7 +485,7 @@ static void netvsc_send_completion(struct hv_device *device,
atomic_dec(&net_device->num_outstanding_sends);
} else {
- dev_err(&device->device, "Unknown send completion packet type- "
+ netdev_err(ndev, "Unknown send completion packet type- "
"%d received!!\n", nvsp_packet->hdr.msg_type);
}
@@ -491,12 +497,12 @@ int netvsc_send(struct hv_device *device,
{
struct netvsc_device *net_device;
int ret = 0;
-
struct nvsp_message sendMessage;
+ struct net_device *ndev = dev_get_drvdata(&device->device);
net_device = get_outbound_net_device(device);
if (!net_device) {
- dev_err(&device->device, "net device (%p) shutting down..."
+ netdev_err(ndev, "net device (%p) shutting down..."
"ignoring outbound packets\n", net_device);
return -ENODEV;
}
@@ -532,7 +538,7 @@ int netvsc_send(struct hv_device *device,
}
if (ret != 0)
- dev_err(&device->device, "Unable to send packet %p ret %d\n",
+ netdev_err(ndev, "Unable to send packet %p ret %d\n",
packet, ret);
atomic_inc(&net_device->num_outstanding_sends);
@@ -546,6 +552,7 @@ static void netvsc_send_recv_completion(struct hv_device *device,
struct nvsp_message recvcompMessage;
int retries = 0;
int ret;
+ struct net_device *ndev = dev_get_drvdata(&device->device);
recvcompMessage.hdr.msg_type =
NVSP_MSG1_TYPE_SEND_RNDIS_PKT_COMPLETE;
@@ -565,19 +572,19 @@ retry_send_cmplt:
} else if (ret == -EAGAIN) {
/* no more room...wait a bit and attempt to retry 3 times */
retries++;
- dev_err(&device->device, "unable to send receive completion pkt"
+ netdev_err(ndev, "unable to send receive completion pkt"
" (tid %llx)...retrying %d\n", transaction_id, retries);
if (retries < 4) {
udelay(100);
goto retry_send_cmplt;
} else {
- dev_err(&device->device, "unable to send receive "
+ netdev_err(ndev, "unable to send receive "
"completion pkt (tid %llx)...give up retrying\n",
transaction_id);
}
} else {
- dev_err(&device->device, "unable to send receive "
+ netdev_err(ndev, "unable to send receive "
"completion pkt - %llx\n", transaction_id);
}
}
@@ -591,6 +598,7 @@ static void netvsc_receive_completion(void *context)
u64 transaction_id = 0;
bool fsend_receive_comp = false;
unsigned long flags;
+ struct net_device *ndev = dev_get_drvdata(&device->device);
/*
* Even though it seems logical to do a GetOutboundNetDevice() here to
@@ -599,7 +607,7 @@ static void netvsc_receive_completion(void *context)
*/
net_device = get_inbound_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;
}
@@ -646,12 +654,13 @@ static void netvsc_receive(struct hv_device *device,
int i, j;
int count = 0, bytes_remain = 0;
unsigned long flags;
+ struct net_device *ndev = dev_get_drvdata(&device->device);
LIST_HEAD(listHead);
net_device = get_inbound_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;
}
@@ -661,7 +670,7 @@ static void netvsc_receive(struct hv_device *device,
* packet
*/
if (packet->type != VM_PKT_DATA_USING_XFER_PAGES) {
- dev_err(&device->device, "Unknown packet type received - %d\n",
+ netdev_err(ndev, "Unknown packet type received - %d\n",
packet->type);
put_net_device(device);
return;
@@ -673,7 +682,7 @@ static void netvsc_receive(struct hv_device *device,
/* Make sure this is a valid nvsp packet */
if (nvsp_packet->hdr.msg_type !=
NVSP_MSG1_TYPE_SEND_RNDIS_PKT) {
- dev_err(&device->device, "Unknown nvsp packet type received-"
+ netdev_err(ndev, "Unknown nvsp packet type received-"
" %d\n", nvsp_packet->hdr.msg_type);
put_net_device(device);
return;
@@ -682,7 +691,7 @@ static void netvsc_receive(struct hv_device *device,
vmxferpage_packet = (struct vmtransfer_page_packet_header *)packet;
if (vmxferpage_packet->xfer_pageset_id != NETVSC_RECEIVE_BUFFER_ID) {
- dev_err(&device->device, "Invalid xfer page set id - "
+ netdev_err(ndev, "Invalid xfer page set id - "
"expecting %x got %x\n", NETVSC_RECEIVE_BUFFER_ID,
vmxferpage_packet->xfer_pageset_id);
put_net_device(device);
@@ -709,7 +718,7 @@ static void netvsc_receive(struct hv_device *device,
* some of the xfer page packet ranges...
*/
if (count < 2) {
- dev_err(&device->device, "Got only %d netvsc pkt...needed "
+ netdev_err(ndev, "Got only %d netvsc pkt...needed "
"%d pkts. Dropping this xfer page packet completely!\n",
count, vmxferpage_packet->range_cnt + 1);
@@ -737,7 +746,7 @@ static void netvsc_receive(struct hv_device *device,
xferpage_packet->count = count - 1;
if (xferpage_packet->count != vmxferpage_packet->range_cnt) {
- dev_err(&device->device, "Needed %d netvsc pkts to satisy "
+ netdev_err(ndev, "Needed %d netvsc pkts to satisy "
"this xfer page...got %d\n",
vmxferpage_packet->range_cnt, xferpage_packet->count);
}
@@ -827,6 +836,7 @@ static void netvsc_channel_cb(void *context)
struct vmpacket_descriptor *desc;
unsigned char *buffer;
int bufferlen = NETVSC_PACKET_SIZE;
+ struct net_device *ndev = dev_get_drvdata(&device->device);
packet = kzalloc(NETVSC_PACKET_SIZE * sizeof(unsigned char),
GFP_ATOMIC);
@@ -836,7 +846,7 @@ static void netvsc_channel_cb(void *context)
net_device = get_inbound_net_device(device);
if (!net_device) {
- dev_err(&device->device, "net device (%p) shutting down..."
+ netdev_err(ndev, "net device (%p) shutting down..."
"ignoring inbound packets\n", net_device);
goto out;
}
@@ -857,7 +867,7 @@ static void netvsc_channel_cb(void *context)
break;
default:
- dev_err(&device->device,
+ netdev_err(ndev,
"unhandled packet type %d, "
"tid %llx len %d\n",
desc->type, request_id,
@@ -886,7 +896,7 @@ static void netvsc_channel_cb(void *context)
buffer = kmalloc(bytes_recvd, GFP_ATOMIC);
if (buffer == NULL) {
/* Try again next time around */
- dev_err(&device->device,
+ netdev_err(ndev,
"unable to allocate buffer of size "
"(%d)!!\n", bytes_recvd);
break;
@@ -914,6 +924,7 @@ int netvsc_device_add(struct hv_device *device, void *additional_info)
((struct netvsc_device_info *)additional_info)->ring_size;
struct netvsc_device *net_device;
struct hv_netvsc_packet *packet, *pos;
+ struct net_device *ndev = dev_get_drvdata(&device->device);
net_device = alloc_net_device(device);
if (!net_device) {
@@ -945,7 +956,7 @@ int netvsc_device_add(struct hv_device *device, void *additional_info)
netvsc_channel_cb, device);
if (ret != 0) {
- dev_err(&device->device, "unable to open channel: %d\n", ret);
+ netdev_err(ndev, "unable to open channel: %d\n", ret);
goto cleanup;
}
@@ -955,7 +966,7 @@ int netvsc_device_add(struct hv_device *device, void *additional_info)
/* Connect with the NetVsp */
ret = netvsc_connect_vsp(device);
if (ret != 0) {
- dev_err(&device->device,
+ netdev_err(ndev,
"unable to connect to NetVSP - %d\n", ret);
goto close;
}
diff --git a/drivers/staging/hv/rndis_filter.c b/drivers/staging/hv/rndis_filter.c
index 8416bf2..20e673d 100644
--- a/drivers/staging/hv/rndis_filter.c
+++ b/drivers/staging/hv/rndis_filter.c
@@ -249,6 +249,7 @@ static void rndis_filter_receive_response(struct rndis_device *dev,
struct rndis_request *request = NULL;
bool found = false;
unsigned long flags;
+ struct net_device *ndev = dev_get_drvdata(&dev->net_dev->dev->device);
spin_lock_irqsave(&dev->request_lock, flags);
list_for_each_entry(request, &dev->req_list, list_ent) {
@@ -269,7 +270,7 @@ static void rndis_filter_receive_response(struct rndis_device *dev,
memcpy(&request->response_msg, resp,
resp->msg_len);
} else {
- dev_err(&dev->net_dev->dev->device,
+ netdev_err(ndev,
"rndis response buffer overflow "
"detected (size %u max %zu)\n",
resp->msg_len,
@@ -289,7 +290,7 @@ static void rndis_filter_receive_response(struct rndis_device *dev,
complete(&request->wait_event);
} else {
- dev_err(&dev->net_dev->dev->device,
+ netdev_err(ndev,
"no rndis request found for this response "
"(id 0x%x res type 0x%x)\n",
resp->msg.init_complete.req_id,
@@ -349,20 +350,21 @@ int rndis_filter_receive(struct hv_device *dev,
struct rndis_device *rndis_dev;
struct rndis_message rndis_msg;
struct rndis_message *rndis_hdr;
+ struct net_device *ndev = dev_get_drvdata(&dev->device);
if (!net_dev)
return -EINVAL;
/* Make sure the rndis device state is initialized */
if (!net_dev->extension) {
- dev_err(&dev->device, "got rndis message but no rndis device - "
+ netdev_err(ndev, "got rndis message but no rndis device - "
"dropping this message!\n");
return -ENODEV;
}
rndis_dev = (struct rndis_device *)net_dev->extension;
if (rndis_dev->state == RNDIS_DEV_UNINITIALIZED) {
- dev_err(&dev->device, "got rndis message but rndis device "
+ netdev_err(ndev, "got rndis message but rndis device "
"uninitialized...dropping this message!\n");
return -ENODEV;
}
@@ -376,7 +378,7 @@ int rndis_filter_receive(struct hv_device *dev,
/* Make sure we got a valid rndis message */
if ((rndis_hdr->ndis_msg_type != REMOTE_NDIS_PACKET_MSG) &&
(rndis_hdr->msg_len > sizeof(struct rndis_message))) {
- dev_err(&dev->device, "incoming rndis message buffer overflow "
+ netdev_err(ndev, "incoming rndis message buffer overflow "
"detected (got %u, max %zu)..marking it an error!\n",
rndis_hdr->msg_len,
sizeof(struct rndis_message));
@@ -409,7 +411,7 @@ int rndis_filter_receive(struct hv_device *dev,
rndis_filter_receive_indicate_status(rndis_dev, &rndis_msg);
break;
default:
- dev_err(&dev->device,
+ netdev_err(ndev,
"unhandled rndis message (type %u len %u)\n",
rndis_msg.ndis_msg_type,
rndis_msg.msg_len);
@@ -505,6 +507,7 @@ static int rndis_filter_set_packet_filter(struct rndis_device *dev,
struct rndis_set_complete *set_complete;
u32 status;
int ret, t;
+ struct net_device *ndev = dev_get_drvdata(&dev->net_dev->dev->device);
request = get_rndis_request(dev, REMOTE_NDIS_SET_MSG,
RNDIS_MESSAGE_SIZE(struct rndis_set_request) +
@@ -530,7 +533,7 @@ static int rndis_filter_set_packet_filter(struct rndis_device *dev,
t = wait_for_completion_timeout(&request->wait_event, 5*HZ);
if (t == 0) {
- dev_err(&dev->net_dev->dev->device,
+ netdev_err(ndev,
"timeout before we got a set response...\n");
/*
* We can't deallocate the request since we may still receive a
--
1.6.3.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 5/5] staging: hv: fix a kernel warning in netvsc_linkstatus_callback()
[not found] <1308322688-9796-1-git-send-email-haiyangz@microsoft.com>
` (2 preceding siblings ...)
2011-06-17 14:58 ` [PATCH 4/5] staging: hv: convert dev_<loglevel> to netdev_<loglevel> " Haiyang Zhang
@ 2011-06-17 14:58 ` Haiyang Zhang
2011-06-17 16:03 ` [PATCH 1/5] staging: hv: fix some white spaces in netvsc driver Nicolas Kaiser
` (2 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Haiyang Zhang @ 2011-06-17 14:58 UTC (permalink / raw)
To: haiyangz, hjanssen, kys, v-abkane, gregkh, linux-kernel, devel,
vir; +Cc: stable
netif_notify_peers() is not allowed in netvsc_linkstatus_callback() on some
distros, 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.
This should also be back-ported to stable kernels 2.6.32 and later.
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Cc: stable <stable@kernel.org>
---
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 c9ed19a..2299b88 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
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 1/5] staging: hv: fix some white spaces in netvsc driver
[not found] <1308322688-9796-1-git-send-email-haiyangz@microsoft.com>
` (3 preceding siblings ...)
2011-06-17 14:58 ` [PATCH 5/5] staging: hv: fix a kernel warning in netvsc_linkstatus_callback() Haiyang Zhang
@ 2011-06-17 16:03 ` Nicolas Kaiser
2011-06-17 16:43 ` Haiyang Zhang
[not found] ` <1308322688-9796-5-git-send-email-haiyangz@microsoft.com>
2011-07-05 16:11 ` [PATCH 1/5] staging: hv: fix some white spaces in netvsc driver Greg KH
6 siblings, 1 reply; 10+ messages in thread
From: Nicolas Kaiser @ 2011-06-17 16:03 UTC (permalink / raw)
To: Haiyang Zhang
Cc: hjanssen, kys, v-abkane, gregkh, linux-kernel, devel,
virtualization
* Haiyang Zhang <haiyangz@microsoft.com>:
> diff --git a/drivers/staging/hv/netvsc.c b/drivers/staging/hv/netvsc.c
> index 0ae35e7..b6e1fb9 100644
> --- a/drivers/staging/hv/netvsc.c
> +++ b/drivers/staging/hv/netvsc.c
> @@ -525,10 +525,10 @@ int netvsc_send(struct hv_device *device,
> (unsigned long)packet);
> } else {
> ret = vmbus_sendpacket(device->channel, &sendMessage,
> - sizeof(struct nvsp_message),
> - (unsigned long)packet,
> - VM_PKT_DATA_INBAND,
> - VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED);
> + sizeof(struct nvsp_message),
> + (unsigned long)packet,
> + VM_PKT_DATA_INBAND,
> + VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED);
Why? The arguments were nicely aligned.
Best regards,
Nicolas Kaiser
^ permalink raw reply [flat|nested] 10+ messages in thread
* RE: [PATCH 1/5] staging: hv: fix some white spaces in netvsc driver
2011-06-17 16:03 ` [PATCH 1/5] staging: hv: fix some white spaces in netvsc driver Nicolas Kaiser
@ 2011-06-17 16:43 ` Haiyang Zhang
0 siblings, 0 replies; 10+ messages in thread
From: Haiyang Zhang @ 2011-06-17 16:43 UTC (permalink / raw)
To: Nicolas Kaiser
Cc: Abhishek Kane (Mindtree Consulting PVT LTD), gregkh@suse.de,
linux-kernel@vger.kernel.org, virtualization@lists.osdl.org,
devel@linuxdriverproject.org
> -----Original Message-----
> From: Nicolas Kaiser [mailto:nikai@nikai.net]
> Sent: Friday, June 17, 2011 12:03 PM
> To: Haiyang Zhang
> Cc: Hank Janssen; KY Srinivasan; Abhishek Kane (Mindtree Consulting
> PVT LTD); gregkh@suse.de; linux-kernel@vger.kernel.org;
> devel@linuxdriverproject.org; virtualization@lists.osdl.org
> Subject: Re: [PATCH 1/5] staging: hv: fix some white spaces in netvsc
> driver
>
> * Haiyang Zhang <haiyangz@microsoft.com>:
> > diff --git a/drivers/staging/hv/netvsc.c
> b/drivers/staging/hv/netvsc.c
> > index 0ae35e7..b6e1fb9 100644
> > --- a/drivers/staging/hv/netvsc.c
> > +++ b/drivers/staging/hv/netvsc.c
> > @@ -525,10 +525,10 @@ int netvsc_send(struct hv_device *device,
> > (unsigned long)packet);
> > } else {
> > ret = vmbus_sendpacket(device->channel, &sendMessage,
> > - sizeof(struct nvsp_message),
> > - (unsigned long)packet,
> > - VM_PKT_DATA_INBAND,
> > -
> VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED);
> > + sizeof(struct nvsp_message),
> > + (unsigned long)packet,
> > + VM_PKT_DATA_INBAND,
> > + VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED);
>
> Why? The arguments were nicely aligned.
Because the last line went beyond 80 chars, and triggered checkpatch warning.
Thanks,
-Haiyang
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 5/5] staging: hv: fix a kernel warning in netvsc_linkstatus_callback()
[not found] ` <1308322688-9796-5-git-send-email-haiyangz@microsoft.com>
@ 2011-07-05 16:10 ` Greg KH
2011-07-05 18:45 ` Haiyang Zhang
0 siblings, 1 reply; 10+ messages in thread
From: Greg KH @ 2011-07-05 16:10 UTC (permalink / raw)
To: Haiyang Zhang
Cc: hjanssen, kys, v-abkane, gregkh, linux-kernel, devel,
virtualization, stable
On Fri, Jun 17, 2011 at 07:58:08AM -0700, Haiyang Zhang wrote:
> netif_notify_peers() is not allowed in netvsc_linkstatus_callback() on some
> distros,
"distros"? Huh? You mean kernel versions right?
And this doesn't matter for the current kernel, right? If not, then it
doesn't need to be applied. If so, then it should. Which is it?
> 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.
What happens if you don't have this patch applied? What breaks? Is it
just a warning? Something else?
Please resend this with more information.
greg k-h
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/5] staging: hv: fix some white spaces in netvsc driver
[not found] <1308322688-9796-1-git-send-email-haiyangz@microsoft.com>
` (5 preceding siblings ...)
[not found] ` <1308322688-9796-5-git-send-email-haiyangz@microsoft.com>
@ 2011-07-05 16:11 ` Greg KH
6 siblings, 0 replies; 10+ messages in thread
From: Greg KH @ 2011-07-05 16:11 UTC (permalink / raw)
To: Haiyang Zhang
Cc: hjanssen, kys, v-abkane, gregkh, linux-kernel, devel,
virtualization
On Fri, Jun 17, 2011 at 07:58:04AM -0700, Haiyang Zhang wrote:
> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
> Signed-off-by: Abhishek Kane <v-abkane@microsoft.com>
> Signed-off-by: Hank Janssen <hjanssen@microsoft.com>
> Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
> ---
> drivers/staging/hv/netvsc.c | 8 ++++----
> drivers/staging/hv/netvsc_drv.c | 2 +-
> 2 files changed, 5 insertions(+), 5 deletions(-)
This is the only patch in the series that would apply (well, I didn't
try the 5/5 patch for the reasons stated there.)
Please redo these against the latest staging-next branch if you want
them applied.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 10+ messages in thread
* RE: [PATCH 5/5] staging: hv: fix a kernel warning in netvsc_linkstatus_callback()
2011-07-05 16:10 ` [PATCH 5/5] staging: hv: fix a kernel warning in netvsc_linkstatus_callback() Greg KH
@ 2011-07-05 18:45 ` Haiyang Zhang
0 siblings, 0 replies; 10+ messages in thread
From: Haiyang Zhang @ 2011-07-05 18:45 UTC (permalink / raw)
To: Greg KH
Cc: Hank Janssen, KY Srinivasan,
Abhishek Kane (Mindtree Consulting PVT LTD), gregkh@suse.de,
linux-kernel@vger.kernel.org, devel@linuxdriverproject.org,
virtualization@lists.osdl.org, stable
> -----Original Message-----
> From: Greg KH [mailto:greg@kroah.com]
> Sent: Tuesday, July 05, 2011 12:10 PM
> To: Haiyang Zhang
> Cc: Hank Janssen; KY Srinivasan; Abhishek Kane (Mindtree Consulting PVT
> LTD); gregkh@suse.de; linux-kernel@vger.kernel.org;
> devel@linuxdriverproject.org; virtualization@lists.osdl.org; stable
> Subject: Re: [PATCH 5/5] staging: hv: fix a kernel warning in
> netvsc_linkstatus_callback()
>
> On Fri, Jun 17, 2011 at 07:58:08AM -0700, Haiyang Zhang wrote:
> > netif_notify_peers() is not allowed in netvsc_linkstatus_callback() on
> some
> > distros,
>
> "distros"? Huh? You mean kernel versions right?
>
> And this doesn't matter for the current kernel, right? If not, then it
> doesn't need to be applied. If so, then it should. Which is it?
It should be applied to both current kernel and stable kernels 2.6.32 and later.
> > 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.
>
> What happens if you don't have this patch applied? What breaks? Is it
> just a warning? Something else?
Without the patch, it will have this warning:
[ 232.102605] WARNING: at kernel/mutex.c:198 __mutex_lock_slowpath+0x28d/0x2c0(
)
[ 232.102605] Hardware name: Virtual Machine
[ 232.272436] Modules linked in: hv_netvsc(C) hv_vmbus(C) lockd sunrpc nf_connt
rack_netbios_ns nf_conntrack_broadcast ipt_REJECT nf_conntrack_ipv4 nf_defrag_ip
v4 xt_state nf_conntrack iptable_filter ip_tables ip6t_REJECT xt_tcpudp ip6table
_filter ip6_tables x_tables ipv6 loop dm_mirror dm_multipath scsi_dh video therm
al sbs sbshc pci_slot hed fan container battery acpi_memhotplug ac power_supply
parport nvram sg sr_mod cdrom evdev processor button serio_raw floppy tpm_tis tp
m tpm_bios tulip i2c_piix4 i2c_core dm_region_hash dm_log dm_mod ide_gd_mod piix
pata_acpi ide_pci_generic ide_core ata_piix ata_generic libata sd_mod scsi_mod
ext3 jbd mbcache [last unloaded: microcode]
[ 232.935109] Pid: 0, comm: swapper Tainted: G C 3.0.0-rc2-stable-0019
6-g06e8684 #4
[ 232.939905] Call Trace:
[ 232.942238] [<c13008fd>] ? __mutex_lock_slowpath+0x28d/0x2c0
[ 232.974990] [<c1041a9c>] warn_slowpath_common+0x7c/0xa0
[ 232.977701] [<c13008fd>] ? __mutex_lock_slowpath+0x28d/0x2c0
[ 232.980431] [<c1041add>] warn_slowpath_null+0x1d/0x20
[ 232.983403] [<c13008fd>] __mutex_lock_slowpath+0x28d/0x2c0
[ 232.995597] [<c130093b>] mutex_lock+0xb/0x20
[ 233.020191] [<c127347d>] rtnl_lock+0xd/0x10
[ 233.023275] [<c127cf7b>] netif_notify_peers+0xb/0x20
[ 233.026424] [<e0e581d2>] netvsc_linkstatus_callback+0x142/0x230 [hv_netvsc]
[ 233.051372] [<e0e5c0df>] rndis_filter_receive+0x83f/0x8e0 [hv_netvsc]
[ 233.062010] [<e0e3c82e>] ? hv_ringbuffer_read+0x15e/0x200 [hv_vmbus]
[ 233.065632] [<e0e5a936>] netvsc_channel_cb+0x8e6/0xb10 [hv_netvsc]
[ 233.069444] [<e0e38743>] vmbus_onchannel_event+0x33/0x80 [hv_vmbus]
[ 233.092295] [<e0e37bb8>] vmbus_on_event+0xf8/0x180 [hv_vmbus]
[ 233.104314] [<c104850f>] tasklet_action+0x4f/0x100
[ 233.106669] [<c1047876>] __do_softirq+0x86/0x1e0
[ 233.109376] [<c10477f0>] ? local_bh_enable_ip+0xa0/0xa0
[ 233.112031] <IRQ> [<c1047b6c>] ? irq_exit+0x8c/0xa0
[ 233.133300] [<c10040a5>] ? do_IRQ+0x45/0xb0
[ 233.136307] [<c1047b4e>] ? irq_exit+0x6e/0xa0
[ 233.138901] [<c101d149>] ? smp_apic_timer_interrupt+0x59/0x90
[ 233.142796] [<c1302db0>] ? common_interrupt+0x30/0x38
[ 233.146401] [<c1024be5>] ? native_safe_halt+0x5/0x10
[ 233.149765] [<c1009b00>] ? default_idle+0x70/0x130
[ 233.154054] [<c1001dda>] ? cpu_idle+0x8a/0xd0
[ 233.157170] [<c12eb4dd>] ? rest_init+0x7d/0x80
[ 233.168628] [<c14239e5>] ? start_kernel+0x315/0x3d0
[ 233.171518] [<c1423270>] ? parse_early_options+0x30/0x30
[ 233.180398] [<c1423078>] ? i386_start_kernel+0x78/0xc0
[ 233.183514] ---[ end trace 3a5b5bc7486ad570 ]---
> Please resend this with more information.
Will do (after Ky's patch series are resubmitted and applied).
Thanks,
- Haiyang
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2011-07-05 18:45 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1308322688-9796-1-git-send-email-haiyangz@microsoft.com>
2011-06-17 14:58 ` [PATCH 2/5] staging: hv: remove unnecessary includes in netvsc Haiyang Zhang
2011-06-17 14:58 ` [PATCH 3/5] staging: hv: add newline to log messages " Haiyang Zhang
2011-06-17 14:58 ` [PATCH 4/5] staging: hv: convert dev_<loglevel> to netdev_<loglevel> " Haiyang Zhang
2011-06-17 14:58 ` [PATCH 5/5] staging: hv: fix a kernel warning in netvsc_linkstatus_callback() Haiyang Zhang
2011-06-17 16:03 ` [PATCH 1/5] staging: hv: fix some white spaces in netvsc driver Nicolas Kaiser
2011-06-17 16:43 ` Haiyang Zhang
[not found] ` <1308322688-9796-5-git-send-email-haiyangz@microsoft.com>
2011-07-05 16:10 ` [PATCH 5/5] staging: hv: fix a kernel warning in netvsc_linkstatus_callback() Greg KH
2011-07-05 18:45 ` Haiyang Zhang
2011-07-05 16:11 ` [PATCH 1/5] staging: hv: fix some white spaces in netvsc driver Greg KH
2011-06-17 14:58 Haiyang Zhang
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).