summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoravos <avos@FreeBSD.org>2016-05-28 19:13:39 +0000
committeravos <avos@FreeBSD.org>2016-05-28 19:13:39 +0000
commit44d180031b193473764c698daa8eb537ef928d1e (patch)
tree7858dd065ed13d874a8e026a9c596dfd90d3245b
parentce3bc9d25892aa4dd07a917bbfd1e9b8267e3996 (diff)
downloadFreeBSD-src-44d180031b193473764c698daa8eb537ef928d1e.zip
FreeBSD-src-44d180031b193473764c698daa8eb537ef928d1e.tar.gz
net80211: replace m_getcl/m_gethdr pair with m_get2 in ieee80211_fragment()
- Switch to m_get2() for mbuf allocation instead of manual mbuf size determination. - Reuse MIN() macro for mbuf size selection.
-rw-r--r--sys/net80211/ieee80211_output.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/sys/net80211/ieee80211_output.c b/sys/net80211/ieee80211_output.c
index dfde06a..1f49237 100644
--- a/sys/net80211/ieee80211_output.c
+++ b/sys/net80211/ieee80211_output.c
@@ -1679,16 +1679,8 @@ ieee80211_fragment(struct ieee80211vap *vap, struct mbuf *m0,
remainder = m0->m_pkthdr.len - off;
prev = m0;
do {
- fragsize = totalhdrsize + remainder;
- if (fragsize > mtu)
- fragsize = mtu;
- /* XXX fragsize can be >2048! */
- KASSERT(fragsize < MCLBYTES,
- ("fragment size %u too big!", fragsize));
- if (fragsize > MHLEN)
- m = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR);
- else
- m = m_gethdr(M_NOWAIT, MT_DATA);
+ fragsize = MIN(totalhdrsize + remainder, mtu);
+ m = m_get2(fragsize, M_NOWAIT, MT_DATA, M_PKTHDR);
if (m == NULL)
goto bad;
/* leave room to prepend any cipher header */
OpenPOWER on IntegriCloud