Commit 79cf1bae authored by Stephen Hemminger's avatar Stephen Hemminger Committed by David S. Miller

hv_netvsc: simplify function args in receive status path

The caller (netvsc_receive) already has the net device pointer,
and should just pass that to functions rather than the hyperv device.
This eliminates several impossible error paths in the process.
Signed-off-by: default avatarStephen Hemminger <sthemmin@microsoft.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f61a9d62
...@@ -199,7 +199,7 @@ int netvsc_send(struct net_device_context *ndc, ...@@ -199,7 +199,7 @@ int netvsc_send(struct net_device_context *ndc,
struct rndis_message *rndis_msg, struct rndis_message *rndis_msg,
struct hv_page_buffer *page_buffer, struct hv_page_buffer *page_buffer,
struct sk_buff *skb); struct sk_buff *skb);
void netvsc_linkstatus_callback(struct hv_device *device_obj, void netvsc_linkstatus_callback(struct net_device *net,
struct rndis_message *resp); struct rndis_message *resp);
int netvsc_recv_callback(struct net_device *net, int netvsc_recv_callback(struct net_device *net,
struct vmbus_channel *channel, struct vmbus_channel *channel,
...@@ -222,7 +222,6 @@ int rndis_filter_set_rss_param(struct rndis_device *rdev, ...@@ -222,7 +222,6 @@ int rndis_filter_set_rss_param(struct rndis_device *rdev,
const u8 *key); const u8 *key);
int rndis_filter_receive(struct net_device *ndev, int rndis_filter_receive(struct net_device *ndev,
struct netvsc_device *net_dev, struct netvsc_device *net_dev,
struct hv_device *dev,
struct vmbus_channel *channel, struct vmbus_channel *channel,
void *data, u32 buflen); void *data, u32 buflen);
......
...@@ -1082,7 +1082,7 @@ static int netvsc_receive(struct net_device *ndev, ...@@ -1082,7 +1082,7 @@ static int netvsc_receive(struct net_device *ndev,
u32 buflen = vmxferpage_packet->ranges[i].byte_count; u32 buflen = vmxferpage_packet->ranges[i].byte_count;
/* Pass it to the upper layer */ /* Pass it to the upper layer */
status = rndis_filter_receive(ndev, net_device, device, status = rndis_filter_receive(ndev, net_device,
channel, data, buflen); channel, data, buflen);
} }
......
...@@ -652,22 +652,14 @@ static int netvsc_start_xmit(struct sk_buff *skb, struct net_device *net) ...@@ -652,22 +652,14 @@ static int netvsc_start_xmit(struct sk_buff *skb, struct net_device *net)
/* /*
* netvsc_linkstatus_callback - Link up/down notification * netvsc_linkstatus_callback - Link up/down notification
*/ */
void netvsc_linkstatus_callback(struct hv_device *device_obj, void netvsc_linkstatus_callback(struct net_device *net,
struct rndis_message *resp) struct rndis_message *resp)
{ {
struct rndis_indicate_status *indicate = &resp->msg.indicate_status; struct rndis_indicate_status *indicate = &resp->msg.indicate_status;
struct net_device *net; struct net_device_context *ndev_ctx = netdev_priv(net);
struct net_device_context *ndev_ctx;
struct netvsc_reconfig *event; struct netvsc_reconfig *event;
unsigned long flags; unsigned long flags;
net = hv_get_drvdata(device_obj);
if (!net)
return;
ndev_ctx = netdev_priv(net);
/* Update the physical link speed when changing to another vSwitch */ /* Update the physical link speed when changing to another vSwitch */
if (indicate->status == RNDIS_STATUS_LINK_SPEED_CHANGE) { if (indicate->status == RNDIS_STATUS_LINK_SPEED_CHANGE) {
u32 speed; u32 speed;
......
...@@ -134,11 +134,9 @@ static void put_rndis_request(struct rndis_device *dev, ...@@ -134,11 +134,9 @@ static void put_rndis_request(struct rndis_device *dev,
kfree(req); kfree(req);
} }
static void dump_rndis_message(struct hv_device *hv_dev, static void dump_rndis_message(struct net_device *netdev,
const struct rndis_message *rndis_msg) const struct rndis_message *rndis_msg)
{ {
struct net_device *netdev = hv_get_drvdata(hv_dev);
switch (rndis_msg->ndis_msg_type) { switch (rndis_msg->ndis_msg_type) {
case RNDIS_MSG_PACKET: case RNDIS_MSG_PACKET:
netdev_dbg(netdev, "RNDIS_MSG_PACKET (len %u, " netdev_dbg(netdev, "RNDIS_MSG_PACKET (len %u, "
...@@ -397,7 +395,6 @@ static int rndis_filter_receive_data(struct net_device *ndev, ...@@ -397,7 +395,6 @@ static int rndis_filter_receive_data(struct net_device *ndev,
int rndis_filter_receive(struct net_device *ndev, int rndis_filter_receive(struct net_device *ndev,
struct netvsc_device *net_dev, struct netvsc_device *net_dev,
struct hv_device *dev,
struct vmbus_channel *channel, struct vmbus_channel *channel,
void *data, u32 buflen) void *data, u32 buflen)
{ {
...@@ -419,7 +416,7 @@ int rndis_filter_receive(struct net_device *ndev, ...@@ -419,7 +416,7 @@ int rndis_filter_receive(struct net_device *ndev,
} }
if (netif_msg_rx_status(net_device_ctx)) if (netif_msg_rx_status(net_device_ctx))
dump_rndis_message(dev, rndis_msg); dump_rndis_message(ndev, rndis_msg);
switch (rndis_msg->ndis_msg_type) { switch (rndis_msg->ndis_msg_type) {
case RNDIS_MSG_PACKET: case RNDIS_MSG_PACKET:
...@@ -434,7 +431,7 @@ int rndis_filter_receive(struct net_device *ndev, ...@@ -434,7 +431,7 @@ int rndis_filter_receive(struct net_device *ndev,
case RNDIS_MSG_INDICATE: case RNDIS_MSG_INDICATE:
/* notification msgs */ /* notification msgs */
netvsc_linkstatus_callback(dev, rndis_msg); netvsc_linkstatus_callback(ndev, rndis_msg);
break; break;
default: default:
netdev_err(ndev, netdev_err(ndev,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment