Module Name: src
Committed By: christos
Date: Thu Jun 16 12:56:49 UTC 2016
Modified Files:
src/sys/dev/ic: rt2860.c
Log Message:
fix mbuf handling; we don't crash anymore.
To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/sys/dev/ic/rt2860.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/ic/rt2860.c
diff -u src/sys/dev/ic/rt2860.c:1.10 src/sys/dev/ic/rt2860.c:1.11
--- src/sys/dev/ic/rt2860.c:1.10 Thu May 26 01:04:46 2016
+++ src/sys/dev/ic/rt2860.c Thu Jun 16 08:56:49 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: rt2860.c,v 1.10 2016/05/26 05:04:46 ozaki-r Exp $ */
+/* $NetBSD: rt2860.c,v 1.11 2016/06/16 12:56:49 christos Exp $ */
/* $OpenBSD: rt2860.c,v 1.90 2016/04/13 10:49:26 mpi Exp $ */
/*-
@@ -23,7 +23,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rt2860.c,v 1.10 2016/05/26 05:04:46 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rt2860.c,v 1.11 2016/06/16 12:56:49 christos Exp $");
#include <sys/param.h>
#include <sys/sockio.h>
@@ -700,7 +700,7 @@ rt2860_alloc_rx_ring(struct rt2860_softc
goto fail;
}
- MGET(data->m, M_DONTWAIT, MT_DATA);
+ MGETHDR(data->m, M_DONTWAIT, MT_DATA);
if (data->m == NULL) {
msg = "allocate Rx mbuf";
goto fail1;
@@ -1273,7 +1273,7 @@ rt2860_rx_intr(struct rt2860_softc *sc)
goto skip;
}
- MGET(m1, M_DONTWAIT, MT_DATA);
+ MGETHDR(m1, M_DONTWAIT, MT_DATA);
if (__predict_false(m1 == NULL)) {
ifp->if_ierrors++;
goto skip;
@@ -1321,6 +1321,7 @@ rt2860_rx_intr(struct rt2860_softc *sc)
/* finalize mbuf */
m->m_data = (void *)(rxwi + 1);
+ m->m_pkthdr.rcvif = ifp;
m->m_pkthdr.len = m->m_len = le16toh(rxwi->len) & 0xfff;
wh = mtod(m, struct ieee80211_frame *);