summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/awi/awi.c2
-rw-r--r--sys/dev/awi/awi_wep.c2
-rw-r--r--sys/dev/en/midway.c2
-rw-r--r--sys/dev/hifn/hifn7751.c7
-rw-r--r--sys/dev/ubsec/ubsec.c6
5 files changed, 11 insertions, 8 deletions
diff --git a/sys/dev/awi/awi.c b/sys/dev/awi/awi.c
index 3718198..e77fae6 100644
--- a/sys/dev/awi/awi.c
+++ b/sys/dev/awi/awi.c
@@ -1326,7 +1326,7 @@ awi_fix_rxhdr(sc, m0)
m_freem(m0);
return NULL;
}
- M_COPY_PKTHDR(n, m0);
+ M_MOVE_PKTHDR(n, m0);
n->m_len = MHLEN;
} else {
MGET(n, M_DONTWAIT, MT_DATA);
diff --git a/sys/dev/awi/awi_wep.c b/sys/dev/awi/awi_wep.c
index b24bd9f..ecaf548 100644
--- a/sys/dev/awi/awi_wep.c
+++ b/sys/dev/awi/awi_wep.c
@@ -323,7 +323,7 @@ awi_wep_encrypt(sc, m0, txflag)
n0 = n;
if (n == NULL)
goto fail;
- M_COPY_PKTHDR(n, m);
+ M_MOVE_PKTHDR(n, m);
len = IEEE80211_WEP_IVLEN + IEEE80211_WEP_KIDLEN + IEEE80211_WEP_CRCLEN;
if (txflag) {
n->m_pkthdr.len += len;
diff --git a/sys/dev/en/midway.c b/sys/dev/en/midway.c
index 915fd14..ffcc6c9 100644
--- a/sys/dev/en/midway.c
+++ b/sys/dev/en/midway.c
@@ -1843,7 +1843,7 @@ STATIC int en_makeexclusive(sc, mm, prev)
return(0);
}
if (m->m_flags & M_PKTHDR)
- M_COPY_PKTHDR(new, m);
+ M_MOVE_PKTHDR(new, m);
MCLGET(new, M_DONTWAIT);
if ((new->m_flags & M_EXT) == 0) {
m_free(new);
diff --git a/sys/dev/hifn/hifn7751.c b/sys/dev/hifn/hifn7751.c
index ea87bd6..accb531 100644
--- a/sys/dev/hifn/hifn7751.c
+++ b/sys/dev/hifn/hifn7751.c
@@ -1668,6 +1668,10 @@ hifn_crypto(
if (cmd->src_m->m_flags & M_PKTHDR) {
len = MHLEN;
MGETHDR(m0, M_DONTWAIT, MT_DATA);
+ if (m0 && !m_dup_pkthdr(m0, cmd->src_m, M_DONTWAIT)) {
+ m_free(m0);
+ m0 = NULL;
+ }
} else {
len = MLEN;
MGET(m0, M_DONTWAIT, MT_DATA);
@@ -1677,9 +1681,6 @@ hifn_crypto(
err = dma->cmdu ? ERESTART : ENOMEM;
goto err_srcmap;
}
- if (len == MHLEN) {
- M_COPY_PKTHDR(m0, cmd->src_m);
- }
if (totlen >= MINCLSIZE) {
MCLGET(m0, M_DONTWAIT);
if ((m0->m_flags & M_EXT) == 0) {
diff --git a/sys/dev/ubsec/ubsec.c b/sys/dev/ubsec/ubsec.c
index 37cb37e..b62a425 100644
--- a/sys/dev/ubsec/ubsec.c
+++ b/sys/dev/ubsec/ubsec.c
@@ -1269,6 +1269,10 @@ ubsec_process(void *arg, struct cryptop *crp, int hint)
if (q->q_src_m->m_flags & M_PKTHDR) {
len = MHLEN;
MGETHDR(m, M_DONTWAIT, MT_DATA);
+ if (m && !m_dup_pkthdr(m, q->q_src_m, M_DONTWAIT)) {
+ m_free(m);
+ m = NULL;
+ }
} else {
len = MLEN;
MGET(m, M_DONTWAIT, MT_DATA);
@@ -1278,8 +1282,6 @@ ubsec_process(void *arg, struct cryptop *crp, int hint)
err = sc->sc_nqueue ? ERESTART : ENOMEM;
goto errout;
}
- if (len == MHLEN)
- M_COPY_PKTHDR(m, q->q_src_m);
if (totlen >= MINCLSIZE) {
MCLGET(m, M_DONTWAIT);
if ((m->m_flags & M_EXT) == 0) {
OpenPOWER on IntegriCloud