diff options
author | avos <avos@FreeBSD.org> | 2016-05-28 19:13:39 +0000 |
---|---|---|
committer | avos <avos@FreeBSD.org> | 2016-05-28 19:13:39 +0000 |
commit | 44d180031b193473764c698daa8eb537ef928d1e (patch) | |
tree | 7858dd065ed13d874a8e026a9c596dfd90d3245b | |
parent | ce3bc9d25892aa4dd07a917bbfd1e9b8267e3996 (diff) | |
download | FreeBSD-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.c | 12 |
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 */ |