Page MenuHomeFreeBSD

D7602.diff
No OneTemporary

D7602.diff

Index: head/sys/dev/hyperv/netvsc/hv_rndis_filter.c
===================================================================
--- head/sys/dev/hyperv/netvsc/hv_rndis_filter.c
+++ head/sys/dev/hyperv/netvsc/hv_rndis_filter.c
@@ -324,16 +324,9 @@
memcpy(&request->response_msg, response,
response->msg_len);
} else {
- if (response->ndis_msg_type == REMOTE_NDIS_RESET_CMPLT) {
- /* Does not have a request id field */
- request->response_msg.msg.reset_complete.status =
- STATUS_BUFFER_OVERFLOW;
- } else {
- request->response_msg.msg.init_complete.status =
- STATUS_BUFFER_OVERFLOW;
- }
+ request->response_msg.msg.init_complete.status =
+ STATUS_BUFFER_OVERFLOW;
}
-
sema_post(&request->wait_sema);
}
}
@@ -566,29 +559,40 @@
rndis_hdr = data;
switch (rndis_hdr->ndis_msg_type) {
-
/* data message */
case REMOTE_NDIS_PACKET_MSG:
hv_rf_receive_data(rxr, data, dlen);
break;
+
/* completion messages */
case REMOTE_NDIS_INITIALIZE_CMPLT:
case REMOTE_NDIS_QUERY_CMPLT:
case REMOTE_NDIS_SET_CMPLT:
- case REMOTE_NDIS_RESET_CMPLT:
case REMOTE_NDIS_KEEPALIVE_CMPLT:
hv_rf_receive_response(rndis_dev, rndis_hdr);
break;
+
/* notification message */
case REMOTE_NDIS_INDICATE_STATUS_MSG:
hv_rf_receive_indicate_status(rndis_dev, rndis_hdr);
break;
+
+ case REMOTE_NDIS_RESET_CMPLT:
+ /*
+ * Reset completed, no rid.
+ *
+ * NOTE:
+ * RESET is not issued by hn(4), so this message should
+ * _not_ be observed.
+ */
+ if_printf(sc->hn_ifp, "RESET CMPLT received\n");
+ break;
+
default:
- printf("hv_rf_on_receive(): Unknown msg_type 0x%x\n",
+ if_printf(sc->hn_ifp, "unknown RNDIS message 0x%x\n",
rndis_hdr->ndis_msg_type);
break;
}
-
return (0);
}

File Metadata

Mime Type
text/plain
Expires
Mon, Oct 28, 4:26 AM (5 h, 54 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14364991
Default Alt Text
D7602.diff (1 KB)

Event Timeline