summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjmatthew <jmatthew@openbsd.org>2020-06-02 02:26:36 +0000
committerjmatthew <jmatthew@openbsd.org>2020-06-02 02:26:36 +0000
commit2ef15e104c045a1170e38c482ee20946fc3c4282 (patch)
tree9a900f0381cc1f03a52ceeb2217e896fbeb90b3c
parentWhen the set of ports in an aggr changes, set the aggr capabilities to (diff)
downloadwireguard-openbsd-2ef15e104c045a1170e38c482ee20946fc3c4282.tar.xz
wireguard-openbsd-2ef15e104c045a1170e38c482ee20946fc3c4282.zip
Add missing ieee80211_release_node() calls in cases where hardware
decryption failed. The node here is always ic_bss, for which the reference count isn't actually used (it's always freed when the interface detaches), so missing these calls wasn't really a problem. ok stsp@
-rw-r--r--sys/dev/pci/if_iwm.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/pci/if_iwm.c b/sys/dev/pci/if_iwm.c
index 25849cb2464..69c252f4e8a 100644
--- a/sys/dev/pci/if_iwm.c
+++ b/sys/dev/pci/if_iwm.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_iwm.c,v 1.310 2020/05/23 08:42:51 stsp Exp $ */
+/* $OpenBSD: if_iwm.c,v 1.311 2020/06/02 02:26:36 jmatthew Exp $ */
/*
* Copyright (c) 2014, 2016 genua gmbh <info@genua.de>
@@ -3992,6 +3992,7 @@ iwm_rx_frame(struct iwm_softc *sc, struct mbuf *m, int chanidx,
ic->ic_stats.is_ccmp_dec_errs++;
ifp->if_ierrors++;
m_freem(m);
+ ieee80211_release_node(ic, ni);
return;
}
/* Check whether decryption was successful or not. */
@@ -4003,11 +4004,13 @@ iwm_rx_frame(struct iwm_softc *sc, struct mbuf *m, int chanidx,
ic->ic_stats.is_ccmp_dec_errs++;
ifp->if_ierrors++;
m_freem(m);
+ ieee80211_release_node(ic, ni);
return;
}
if (iwm_ccmp_decap(sc, m, ni) != 0) {
ifp->if_ierrors++;
m_freem(m);
+ ieee80211_release_node(ic, ni);
return;
}
rxi->rxi_flags |= IEEE80211_RXI_HWDEC;