Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 291377
b: refs/heads/master
c: ef31bef
h: refs/heads/master
i:
  291375: 6e84b0e
v: v3
  • Loading branch information
Haiyang Zhang authored and David S. Miller committed Mar 13, 2012
1 parent 9251d36 commit 2fec99b
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 25 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: afd465030acb4098abcb6b965a5aebc7ea2209e0
refs/heads/master: ef31bef6216db76950c38f1993b45953402f4c63
33 changes: 9 additions & 24 deletions trunk/drivers/net/hyperv/rndis_filter.c
Original file line number Diff line number Diff line change
Expand Up @@ -352,8 +352,7 @@ int rndis_filter_receive(struct hv_device *dev,
{
struct netvsc_device *net_dev = hv_get_drvdata(dev);
struct rndis_device *rndis_dev;
struct rndis_message rndis_msg;
struct rndis_message *rndis_hdr;
struct rndis_message *rndis_msg;
struct net_device *ndev;

if (!net_dev)
Expand All @@ -375,46 +374,32 @@ int rndis_filter_receive(struct hv_device *dev,
return -ENODEV;
}

rndis_hdr = pkt->data;

/* 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))) {
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));
}
rndis_msg = pkt->data;

memcpy(&rndis_msg, rndis_hdr,
(rndis_hdr->msg_len > sizeof(struct rndis_message)) ?
sizeof(struct rndis_message) :
rndis_hdr->msg_len);
dump_rndis_message(dev, rndis_msg);

dump_rndis_message(dev, &rndis_msg);

switch (rndis_msg.ndis_msg_type) {
switch (rndis_msg->ndis_msg_type) {
case REMOTE_NDIS_PACKET_MSG:
/* data msg */
rndis_filter_receive_data(rndis_dev, &rndis_msg, pkt);
rndis_filter_receive_data(rndis_dev, rndis_msg, pkt);
break;

case REMOTE_NDIS_INITIALIZE_CMPLT:
case REMOTE_NDIS_QUERY_CMPLT:
case REMOTE_NDIS_SET_CMPLT:
/* completion msgs */
rndis_filter_receive_response(rndis_dev, &rndis_msg);
rndis_filter_receive_response(rndis_dev, rndis_msg);
break;

case REMOTE_NDIS_INDICATE_STATUS_MSG:
/* notification msgs */
rndis_filter_receive_indicate_status(rndis_dev, &rndis_msg);
rndis_filter_receive_indicate_status(rndis_dev, rndis_msg);
break;
default:
netdev_err(ndev,
"unhandled rndis message (type %u len %u)\n",
rndis_msg.ndis_msg_type,
rndis_msg.msg_len);
rndis_msg->ndis_msg_type,
rndis_msg->msg_len);
break;
}

Expand Down

0 comments on commit 2fec99b

Please sign in to comment.