svn commit: r304206 - head/sys/dev/hyperv/netvsc

Sepherosa Ziehau sephe at FreeBSD.org
Tue Aug 16 07:45:36 UTC 2016


Author: sephe
Date: Tue Aug 16 07:45:35 2016
New Revision: 304206
URL: https://svnweb.freebsd.org/changeset/base/304206

Log:
  hyperv/hn: Simplify RNDIS message checks on RX path.
  
  MFC after:	1 week
  Sponsored by:	Microsoft
  Differential Revision:	https://reviews.freebsd.org/D7502

Modified:
  head/sys/dev/hyperv/netvsc/hv_net_vsc.c
  head/sys/dev/hyperv/netvsc/if_hnreg.h

Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.c
==============================================================================
--- head/sys/dev/hyperv/netvsc/hv_net_vsc.c	Tue Aug 16 07:37:02 2016	(r304205)
+++ head/sys/dev/hyperv/netvsc/hv_net_vsc.c	Tue Aug 16 07:45:35 2016	(r304206)
@@ -847,19 +847,18 @@ hv_nv_on_receive(netvsc_dev *net_dev, st
     struct vmbus_channel *chan, const struct vmbus_chanpkt_hdr *pkthdr)
 {
 	const struct vmbus_chanpkt_rxbuf *pkt;
-	const nvsp_msg *nvsp_msg_pkt;
+	const struct hn_nvs_hdr *nvs_hdr;
 	netvsc_packet vsc_pkt;
 	netvsc_packet *net_vsc_pkt = &vsc_pkt;
 	int count = 0;
 	int i = 0;
 	int status = nvsp_status_success;
 
-	nvsp_msg_pkt = VMBUS_CHANPKT_CONST_DATA(pkthdr);
-
-	/* Make sure this is a valid nvsp packet */
-	if (nvsp_msg_pkt->hdr.msg_type != nvsp_msg_1_type_send_rndis_pkt) {
-		if_printf(rxr->hn_ifp, "packet hdr type %u is invalid!\n",
-		    nvsp_msg_pkt->hdr.msg_type);
+	/* Make sure that this is a RNDIS message. */
+	nvs_hdr = VMBUS_CHANPKT_CONST_DATA(pkthdr);
+	if (__predict_false(nvs_hdr->nvs_type != HN_NVS_TYPE_RNDIS)) {
+		if_printf(rxr->hn_ifp, "nvs type %u, not RNDIS\n",
+		    nvs_hdr->nvs_type);
 		return;
 	}
 	

Modified: head/sys/dev/hyperv/netvsc/if_hnreg.h
==============================================================================
--- head/sys/dev/hyperv/netvsc/if_hnreg.h	Tue Aug 16 07:37:02 2016	(r304205)
+++ head/sys/dev/hyperv/netvsc/if_hnreg.h	Tue Aug 16 07:45:35 2016	(r304206)
@@ -69,6 +69,11 @@
  */
 #define HN_NVS_REQSIZE_MIN		32
 
+/* NVS message common header */
+struct hn_nvs_hdr {
+	uint32_t	nvs_type;
+} __packed;
+
 struct hn_nvs_init {
 	uint32_t	nvs_type;	/* HN_NVS_TYPE_INIT */
 	uint32_t	nvs_ver_min;


More information about the svn-src-head mailing list