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: Stephen Hemminger <sthemmin@microsoft.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
f61a9d62b2
Коммит
79cf1bae38
|
@ -199,7 +199,7 @@ int netvsc_send(struct net_device_context *ndc,
|
|||
struct rndis_message *rndis_msg,
|
||||
struct hv_page_buffer *page_buffer,
|
||||
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);
|
||||
int netvsc_recv_callback(struct net_device *net,
|
||||
struct vmbus_channel *channel,
|
||||
|
@ -222,7 +222,6 @@ int rndis_filter_set_rss_param(struct rndis_device *rdev,
|
|||
const u8 *key);
|
||||
int rndis_filter_receive(struct net_device *ndev,
|
||||
struct netvsc_device *net_dev,
|
||||
struct hv_device *dev,
|
||||
struct vmbus_channel *channel,
|
||||
void *data, u32 buflen);
|
||||
|
||||
|
|
|
@ -1082,7 +1082,7 @@ static int netvsc_receive(struct net_device *ndev,
|
|||
u32 buflen = vmxferpage_packet->ranges[i].byte_count;
|
||||
|
||||
/* Pass it to the upper layer */
|
||||
status = rndis_filter_receive(ndev, net_device, device,
|
||||
status = rndis_filter_receive(ndev, net_device,
|
||||
channel, data, buflen);
|
||||
}
|
||||
|
||||
|
|
|
@ -652,22 +652,14 @@ no_memory:
|
|||
/*
|
||||
* 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_indicate_status *indicate = &resp->msg.indicate_status;
|
||||
struct net_device *net;
|
||||
struct net_device_context *ndev_ctx;
|
||||
struct net_device_context *ndev_ctx = netdev_priv(net);
|
||||
struct netvsc_reconfig *event;
|
||||
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 */
|
||||
if (indicate->status == RNDIS_STATUS_LINK_SPEED_CHANGE) {
|
||||
u32 speed;
|
||||
|
|
|
@ -134,11 +134,9 @@ static void put_rndis_request(struct rndis_device *dev,
|
|||
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)
|
||||
{
|
||||
struct net_device *netdev = hv_get_drvdata(hv_dev);
|
||||
|
||||
switch (rndis_msg->ndis_msg_type) {
|
||||
case RNDIS_MSG_PACKET:
|
||||
netdev_dbg(netdev, "RNDIS_MSG_PACKET (len %u, "
|
||||
|
@ -397,7 +395,6 @@ static int rndis_filter_receive_data(struct net_device *ndev,
|
|||
|
||||
int rndis_filter_receive(struct net_device *ndev,
|
||||
struct netvsc_device *net_dev,
|
||||
struct hv_device *dev,
|
||||
struct vmbus_channel *channel,
|
||||
void *data, u32 buflen)
|
||||
{
|
||||
|
@ -419,7 +416,7 @@ int rndis_filter_receive(struct net_device *ndev,
|
|||
}
|
||||
|
||||
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) {
|
||||
case RNDIS_MSG_PACKET:
|
||||
|
@ -434,7 +431,7 @@ int rndis_filter_receive(struct net_device *ndev,
|
|||
|
||||
case RNDIS_MSG_INDICATE:
|
||||
/* notification msgs */
|
||||
netvsc_linkstatus_callback(dev, rndis_msg);
|
||||
netvsc_linkstatus_callback(ndev, rndis_msg);
|
||||
break;
|
||||
default:
|
||||
netdev_err(ndev,
|
||||
|
|
Загрузка…
Ссылка в новой задаче