diff options
author | Sepherosa Ziehau <sephe@FreeBSD.org> | 2017-03-01 08:24:17 +0000 |
---|---|---|
committer | Sepherosa Ziehau <sephe@FreeBSD.org> | 2017-03-01 08:24:17 +0000 |
commit | 8fe90f73aea3ed40d91d1b569447f3295d93f428 (patch) | |
tree | 84fb2215e99e3d43b694e1fe90696b693ca02f43 /sys/dev/hyperv/netvsc | |
parent | 1d3e57669e1ecc2401fd72f59620904a245e80c8 (diff) | |
download | src-8fe90f73aea3ed40d91d1b569447f3295d93f428.tar.gz src-8fe90f73aea3ed40d91d1b569447f3295d93f428.zip |
hyperv/hn: Simplify RNDIS packet total length calculation.
MFC after: 1 week
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D9712
Notes
Notes:
svn path=/head/; revision=314483
Diffstat (limited to 'sys/dev/hyperv/netvsc')
-rw-r--r-- | sys/dev/hyperv/netvsc/if_hn.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/dev/hyperv/netvsc/if_hn.c b/sys/dev/hyperv/netvsc/if_hn.c index 7b402d3ebbe7..0fdd29fe8bf6 100644 --- a/sys/dev/hyperv/netvsc/if_hn.c +++ b/sys/dev/hyperv/netvsc/if_hn.c @@ -1784,9 +1784,6 @@ hn_rndis_pktinfo_append(struct rndis_packet_msg *pkt, size_t pktsize, pi->rm_type = pi_type; pi->rm_pktinfooffset = RNDIS_PKTINFO_OFFSET; - /* Update RNDIS packet msg length */ - pkt->rm_len += pi_size; - return (pi->rm_data); } @@ -1928,7 +1925,7 @@ hn_encap(struct ifnet *ifp, struct hn_tx_ring *txr, struct hn_txdesc *txd, } pkt->rm_type = REMOTE_NDIS_PACKET_MSG; - pkt->rm_len = sizeof(*pkt) + m_head->m_pkthdr.len; + pkt->rm_len = m_head->m_pkthdr.len; pkt->rm_dataoffset = 0; pkt->rm_datalen = m_head->m_pkthdr.len; pkt->rm_oobdataoffset = 0; @@ -1999,6 +1996,8 @@ hn_encap(struct ifnet *ifp, struct hn_tx_ring *txr, struct hn_txdesc *txd, } pkt_hlen = pkt->rm_pktinfooffset + pkt->rm_pktinfolen; + /* Fixup RNDIS packet message total length */ + pkt->rm_len += pkt_hlen; /* Convert RNDIS packet message offsets */ pkt->rm_dataoffset = hn_rndis_pktmsg_offset(pkt_hlen); pkt->rm_pktinfooffset = hn_rndis_pktmsg_offset(pkt->rm_pktinfooffset); |