Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/dev/ic disable hardware crypto for now.
details: https://anonhg.NetBSD.org/src/rev/d67341c2535c
branches: trunk
changeset: 345958:d67341c2535c
user: christos <christos%NetBSD.org@localhost>
date: Fri Jun 17 15:38:54 2016 +0000
description:
disable hardware crypto for now.
diffstat:
sys/dev/ic/rt2860.c | 27 ++++++++++++++++++---------
1 files changed, 18 insertions(+), 9 deletions(-)
diffs (93 lines):
diff -r acd881fafcd1 -r d67341c2535c sys/dev/ic/rt2860.c
--- a/sys/dev/ic/rt2860.c Fri Jun 17 14:28:29 2016 +0000
+++ b/sys/dev/ic/rt2860.c Fri Jun 17 15:38:54 2016 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: rt2860.c,v 1.14 2016/06/16 15:51:13 riastradh Exp $ */
+/* $NetBSD: rt2860.c,v 1.15 2016/06/17 15:38:54 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.14 2016/06/16 15:51:13 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rt2860.c,v 1.15 2016/06/17 15:38:54 christos Exp $");
#include <sys/param.h>
#include <sys/sockio.h>
@@ -137,10 +137,12 @@
static void rt2860_updateslot(struct ifnet *);
static void rt2860_updateprot(struct ieee80211com *);
static int rt2860_updateedca(struct ieee80211com *);
+#ifdef HW_CRYPTO
static int rt2860_set_key(struct ieee80211com *,
const struct ieee80211_key *, const uint8_t *);
static int rt2860_delete_key(struct ieee80211com *,
const struct ieee80211_key *);
+#endif
static int8_t rt2860_rssi2dbm(struct rt2860_softc *, uint8_t, uint8_t);
static const char * rt2860_get_rf(uint8_t);
static int rt2860_read_eeprom(struct rt2860_softc *);
@@ -378,8 +380,10 @@
#endif
ic->ic_updateslot = rt2860_updateslot;
ic->ic_wme.wme_update = rt2860_updateedca;
+#ifdef HW_CRYPTO
ic->ic_crypto.cs_key_set = rt2860_set_key;
ic->ic_crypto.cs_key_delete = rt2860_delete_key;
+#endif
/* override state transition machine */
sc->sc_newstate = ic->ic_newstate;
ic->ic_newstate = rt2860_newstate;
@@ -1289,6 +1293,15 @@
goto skip;
}
+#ifdef HW_CRYPTO
+ if (__predict_false(rxd->flags & htole32(RT2860_RX_MICERR))) {
+ /* report MIC failures to net80211 for TKIP */
+ ieee80211_notify_michael_failure(ic, wh, 0/* XXX */);
+ ifp->if_ierrors++;
+ goto skip;
+ }
+#endif
+
MGETHDR(m1, M_DONTWAIT, MT_DATA);
if (__predict_false(m1 == NULL)) {
ifp->if_ierrors++;
@@ -1341,10 +1354,12 @@
m->m_pkthdr.len = m->m_len = le16toh(rxwi->len) & 0xfff;
wh = mtod(m, struct ieee80211_frame *);
+#ifdef HW_CRYPTO
if (wh->i_fc[1] & IEEE80211_FC1_PROTECTED) {
/* frame is decrypted by hardware */
wh->i_fc[1] &= ~IEEE80211_FC1_PROTECTED;
}
+#endif
/* HW may insert 2 padding bytes after 802.11 header */
if (rxd->flags & htole32(RT2860_RX_L2PAD)) {
@@ -1354,13 +1369,6 @@
wh = mtod(m, struct ieee80211_frame *);
}
- if (__predict_false(rxd->flags & htole32(RT2860_RX_MICERR))) {
- /* report MIC failures to net80211 for TKIP */
- ieee80211_notify_michael_failure(ic, wh, 0/* XXX */);
- ifp->if_ierrors++;
- goto skip;
- }
-
ant = rt2860_maxrssi_chain(sc, rxwi);
rssi = rxwi->rssi[ant];
@@ -1402,6 +1410,7 @@
}
bpf_mtap2(sc->sc_drvbpf, tap, sc->sc_rxtap_len, m);
skipbpf:
+ wh = mtod(m, struct ieee80211_frame *);
/* grab a reference to the source node */
ni = ieee80211_find_rxnode(ic,
(struct ieee80211_frame_min *)wh);
Home |
Main Index |
Thread Index |
Old Index