On 4/21/22 22:34, Stefan Sperling wrote:
On Thu, Apr 21, 2022 at 10:31:46PM +0200, Stefan Sperling wrote:
On Thu, Apr 21, 2022 at 09:15:57PM +0200, Stefan Sperling wrote:
On Thu, Apr 21, 2022 at 08:58:48PM +0200, Sven Wolf wrote:
But when I build a new kernel with the sources from 2022-03-15 everything is
fine.

Maybe this commit causes this behaviour/bug
https://marc.info/?l=openbsd-cvs&m=164777772610775&w=2

Looks like a bug in ral(4) (uninitialized variable) which has been
exposed by the above commit. Does the patch below help?

If it does then I will do a sweep of all wifi drivers for similar problems.
Sorry for not catching this earlier. This could have been caught had it
occurred to me to check for any uninitialized use of this struct when
I added a new field...

I did take a look already just in case, and it's not looking good...
This fixes the places I've found so far:

Sorry, the previous diff missed the ral(4) fix I sent earlier.
A better version of this fix is included here (thanks to miod for off-list
feedback).

Hi Stefan,

thanks for your fast patch.
I also can confirm that the problem is solved.

Thanks,
Sven

diff b3dff8d102fea35ec827f7e82565722dc4185589 d5aaa0e75d191916f6c8da91b842079511d38fd3
blob - 9c70f4dc5e96467bb4100e022ba59e918797e85f
blob + c0c96f2f5614858df29f49680d8349832af8d55a
--- sys/dev/ic/acx.c
+++ sys/dev/ic/acx.c
@@ -1354,7 +1354,7 @@ acx_rxeof(struct acx_softc *sc)
                            sc->chip_rxbuf_exhdr);
                        wh = mtod(m, struct ieee80211_frame *);
- rxi.rxi_flags = 0;
+                       memset(&rxi, 0, sizeof(rxi));
                        if ((wh->i_fc[1] & IEEE80211_FC1_WEP) &&
                            sc->chip_hw_crypt) {
                                /* Short circuit software WEP */
blob - 6208492c94c2af3d15e158e8329f881565efd232
blob + 28db8e32130a83eeb9e057cfaed6eb9d8d625428
--- sys/dev/ic/an.c
+++ sys/dev/ic/an.c
@@ -462,7 +462,7 @@ an_rxeof(struct an_softc *sc)
  #endif /* NBPFILTER > 0 */
wh = mtod(m, struct ieee80211_frame *);
-       rxi.rxi_flags = 0;
+       memset(&rxi, 0, sizeof(rxi));
        if (wh->i_fc[1] & IEEE80211_FC1_WEP) {
                /*
                 * WEP is decrypted by hardware. Clear WEP bit
blob - e9ff551127c7e937b52f99577ade8bc5dde91763
blob + aafd14161600420dfd90ff3f2ecc093e11f5c33f
--- sys/dev/ic/ar5008.c
+++ sys/dev/ic/ar5008.c
@@ -1039,7 +1039,7 @@ ar5008_rx_process(struct athn_softc *sc, struct mbuf_l
        m_adj(m, -IEEE80211_CRC_LEN);
/* Send the frame to the 802.11 layer. */
-       rxi.rxi_flags = 0;      /* XXX */
+       memset(&rxi, 0, sizeof(rxi));
        rxi.rxi_rssi = MS(ds->ds_status4, AR_RXS4_RSSI_COMBINED);
        rxi.rxi_rssi += AR_DEFAULT_NOISE_FLOOR;
        rxi.rxi_tstamp = ds->ds_status2;
blob - 5aa99be1508ee4b893a50adf89f8c83eaad9e94b
blob + e45a4441a62255fb4ef4a386112a477a2f5b58ed
--- sys/dev/ic/ar9003.c
+++ sys/dev/ic/ar9003.c
@@ -1026,7 +1026,7 @@ ar9003_rx_process(struct athn_softc *sc, int qid, stru
        m_adj(m, -IEEE80211_CRC_LEN);
/* Send the frame to the 802.11 layer. */
-       rxi.rxi_flags = 0;      /* XXX */
+       memset(&rxi, 0, sizeof(rxi));
        rxi.rxi_rssi = MS(ds->ds_status5, AR_RXS5_RSSI_COMBINED);
        rxi.rxi_tstamp = ds->ds_status3;
        ieee80211_inputm(ifp, m, ni, &rxi, ml);
blob - 9a640630ecdd5e55125bae10cbd31665bf7ce9e6
blob + a43ad3f9706addf3886a8ce74c63adb50c58589a
--- sys/dev/ic/ath.c
+++ sys/dev/ic/ath.c
@@ -1936,7 +1936,7 @@ ath_rx_proc(void *arg, int npending)
  #endif
                m_adj(m, -IEEE80211_CRC_LEN);
                wh = mtod(m, struct ieee80211_frame *);
-               rxi.rxi_flags = 0;
+               memset(&rxi, 0, sizeof(rxi));
                if (!ath_softcrypto && (wh->i_fc[1] & IEEE80211_FC1_WEP)) {
                        /*
                         * WEP is decrypted by hardware. Clear WEP bit
blob - 49b4089c69fe17b0215d514d0b3b1215a87b69b8
blob + 04b4f0d393e7eb142d707c76090668df556bf845
--- sys/dev/ic/atw.c
+++ sys/dev/ic/atw.c
@@ -3175,7 +3175,7 @@ atw_rxintr(struct atw_softc *sc)
wh = mtod(m, struct ieee80211_frame *);
                ni = ieee80211_find_rxnode(ic, wh);
-               rxi.rxi_flags = 0;
+               memset(&rxi, 0, sizeof(rxi));
  #if 0
                if (atw_hw_decrypted(sc, wh)) {
                        wh->i_fc[1] &= ~IEEE80211_FC1_WEP;
@@ -3183,7 +3183,6 @@ atw_rxintr(struct atw_softc *sc)
                }
  #endif
                rxi.rxi_rssi = (int)rssi;
-               rxi.rxi_tstamp = 0;
                ieee80211_inputm(ifp, m, ni, &rxi, &ml);
                /*
                 * The frame may have caused the node to be marked for
blob - c245bcdac6953e6e88059fb1fccdc319b412ccfa
blob + d4db3d9384097401f7b48072949c432ead0a4ceb
--- sys/dev/ic/bwfm.c
+++ sys/dev/ic/bwfm.c
@@ -2439,9 +2439,7 @@ bwfm_rx_auth_ind(struct bwfm_softc *sc, struct bwfm_ev
/* Finalize mbuf. */
        m->m_pkthdr.len = m->m_len = pktlen;
-       rxi.rxi_flags = 0;
-       rxi.rxi_rssi = 0;
-       rxi.rxi_tstamp = 0;
+       memset(&rxi, 0, sizeof(rxi));
        ieee80211_input(ifp, m, ic->ic_bss, &rxi);
  }
@@ -2495,9 +2493,7 @@ bwfm_rx_assoc_ind(struct bwfm_softc *sc, struct bwfm_e
                m_freem(m);
                return;
        }
-       rxi.rxi_flags = 0;
-       rxi.rxi_rssi = 0;
-       rxi.rxi_tstamp = 0;
+       memset(&rxi, 0, sizeof(rxi));
        ieee80211_input(ifp, m, ni, &rxi);
  }
@@ -2550,9 +2546,7 @@ bwfm_rx_leave_ind(struct bwfm_softc *sc, struct bwfm_e
                m_freem(m);
                return;
        }
-       rxi.rxi_flags = 0;
-       rxi.rxi_rssi = 0;
-       rxi.rxi_tstamp = 0;
+       memset(&rxi, 0, sizeof(rxi));
        ieee80211_input(ifp, m, ni, &rxi);
  }
  #endif
@@ -2740,9 +2734,8 @@ bwfm_scan_node(struct bwfm_softc *sc, struct bwfm_bss_
        /* Channel mask equals IEEE80211_CHAN_MAX */
        chanidx = bwfm_spec2chan(sc, letoh32(bss->chanspec));
        /* Supply RSSI */
-       rxi.rxi_flags = 0;
+       memset(&rxi, 0, sizeof(rxi));
        rxi.rxi_rssi = (int16_t)letoh16(bss->rssi);
-       rxi.rxi_tstamp = 0;
        rxi.rxi_chan = chanidx;
        ieee80211_input(ifp, m, ni, &rxi);
        /* Node is no longer needed. */
blob - 56fd355377e5293f5a59214cc539465f5b711ecf
blob + 139dc7234e3d838d27c80f2b92e9d7db60a40ff0
--- sys/dev/ic/bwi.c
+++ sys/dev/ic/bwi.c
@@ -8454,6 +8454,7 @@ bwi_rxeof(struct bwi_softc *sc, int end_idx)
                ni = ieee80211_find_rxnode(ic, wh);
                type = wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK;
+ memset(&rxi, 0, sizeof(rxi));
                rxi.rxi_rssi = hdr->rxh_rssi;
                rxi.rxi_tstamp = letoh16(hdr->rxh_tsf);
                ieee80211_inputm(ifp, m, ni, &rxi, &ml);
blob - 6e7efb3f1cc435798fb5c0b7637eef46e30dd218
blob + bea8d6a5199dd0a5871481862f67636c8c2266a9
--- sys/dev/ic/malo.c
+++ sys/dev/ic/malo.c
@@ -1709,9 +1709,8 @@ malo_rx_intr(struct malo_softc *sc)
                ni = ieee80211_find_rxnode(ic, wh);
/* send the frame to the 802.11 layer */
-               rxi.rxi_flags = 0;
+               memset(&rxi, 0, sizeof(rxi));
                rxi.rxi_rssi = desc->rssi;
-               rxi.rxi_tstamp = 0;     /* unused */
                ieee80211_inputm(ifp, m, ni, &rxi, &ml);
/* node is no longer needed */
blob - e5c8495569fe5a13d0a547403cc96d660c3e6e10
blob + 70632dc21bb2d8bfcb8b52b1c461a8f3bdca2750
--- sys/dev/ic/pgt.c
+++ sys/dev/ic/pgt.c
@@ -1019,7 +1019,7 @@ input:
                                bpf_mtap(sc->sc_drvbpf, &mb, BPF_DIRECTION_IN);
                        }
  #endif
-                       rxi.rxi_flags = 0;
+                       memset(&rxi, 0, sizeof(rxi));
                        ni->ni_rssi = rxi.rxi_rssi = rssi;
                        ni->ni_rstamp = rxi.rxi_tstamp = rstamp;
                        ieee80211_inputm(ifp, m, ni, &rxi, &ml);
blob - 08771b87b5bb3b050065b601384a8fcc58a23c02
blob + cb9118ada30bd70de74ab12f6682d02c3a5d5f41
--- sys/dev/ic/rt2560.c
+++ sys/dev/ic/rt2560.c
@@ -1196,7 +1196,7 @@ rt2560_decryption_intr(struct rt2560_softc *sc)
                ni = ieee80211_find_rxnode(ic, wh);
/* send the frame to the 802.11 layer */
-               rxi.rxi_flags = 0;
+               memset(&rxi, 0, sizeof(rxi));
                rxi.rxi_rssi = desc->rssi;
                rxi.rxi_tstamp = 0;     /* unused */
                ieee80211_inputm(ifp, m, ni, &rxi, &ml);
blob - bdb7f15e5dbcfffd45e2df47a6f457a9030eb820
blob + de303e475f7ac8318b436d9f70bfdc65a6ec3ff1
--- sys/dev/ic/rt2661.c
+++ sys/dev/ic/rt2661.c
@@ -1271,9 +1271,8 @@ rt2661_rx_intr(struct rt2661_softc *sc)
                ni = ieee80211_find_rxnode(ic, wh);
/* send the frame to the 802.11 layer */
-               rxi.rxi_flags = 0;
+               memset(&rxi, 0, sizeof(rxi));
                rxi.rxi_rssi = desc->rssi;
-               rxi.rxi_tstamp = 0;     /* unused */
                ieee80211_inputm(ifp, m, ni, &rxi, &ml);
/*-
blob - 3178226c0b633534b065088e426e80b5a26853c9
blob + cdd351370f01df055c1c2a354aac4456899d4ded
--- sys/dev/ic/rt2860.c
+++ sys/dev/ic/rt2860.c
@@ -1349,7 +1349,7 @@ rt2860_rx_intr(struct rt2860_softc *sc)
                m->m_pkthdr.len = m->m_len = letoh16(rxwi->len) & 0xfff;
wh = mtod(m, struct ieee80211_frame *);
-               rxi.rxi_flags = 0;
+               memset(&rxi, 0, sizeof(rxi));
                if (wh->i_fc[1] & IEEE80211_FC1_PROTECTED) {
                        /* frame is decrypted by hardware */
                        wh->i_fc[1] &= ~IEEE80211_FC1_PROTECTED;
@@ -1413,7 +1413,6 @@ skipbpf:
/* send the frame to the 802.11 layer */
                rxi.rxi_rssi = rssi;
-               rxi.rxi_tstamp = 0;     /* unused */
                ieee80211_inputm(ifp, m, ni, &rxi, &ml);
/* node is no longer needed */
blob - 43bc271ba13666dc36e2f119d3805f5897a229c1
blob + 807af1100286f9fa649fb4b1aab73f20cd29855f
--- sys/dev/ic/rtw.c
+++ sys/dev/ic/rtw.c
@@ -1287,7 +1287,7 @@ rtw_intr_rx(struct rtw_softc *sc, u_int16_t isr)
                }
  #endif /* NBPFILTER > 0 */
- rxi.rxi_flags = 0;
+               memset(&rxi, 0, sizeof(rxi));
                rxi.rxi_rssi = rssi;
                rxi.rxi_tstamp = htsftl;
                ieee80211_inputm(&sc->sc_if, m, ni, &rxi, &ml);
blob - 99c00d56d60256d289a6b5ad646c8caa634b927e
blob + 3b19899c80f63f43fa865043f95558223ddeefd4
--- sys/dev/pci/if_ipw.c
+++ sys/dev/pci/if_ipw.c
@@ -907,9 +907,8 @@ ipw_data_intr(struct ipw_softc *sc, struct ipw_status
        ni = ieee80211_find_rxnode(ic, wh);
/* send the frame to the upper layer */
-       rxi.rxi_flags = 0;
+       memset(&rxi, 0, sizeof(rxi));
        rxi.rxi_rssi = status->rssi;
-       rxi.rxi_tstamp = 0;     /* unused */
        ieee80211_inputm(ifp, m, ni, &rxi, ml);
ieee80211_release_node(ic, ni);
blob - d7e3f163d855603ab1a23acb86217b7b0b7f43c1
blob + ddf69c227de10b521ae318dc9b2bdc4ed002120f
--- sys/dev/pci/if_iwi.c
+++ sys/dev/pci/if_iwi.c
@@ -960,9 +960,8 @@ iwi_frame_intr(struct iwi_softc *sc, struct iwi_rx_dat
        ni = ieee80211_find_rxnode(ic, wh);
/* send the frame to the upper layer */
-       rxi.rxi_flags = 0;
+       memset(&rxi, 0, sizeof(rxi));
        rxi.rxi_rssi = frame->rssi_dbm;
-       rxi.rxi_tstamp = 0;     /* unused */
        ieee80211_inputm(ifp, m, ni, &rxi, ml);
/* node is no longer needed */
blob - e940010efa04b96ae8f68d1bf8bfff3153ffc797
blob + b4fe97d0bfb32f354cdc43ac93950dd07352a219
--- sys/dev/pci/if_iwn.c
+++ sys/dev/pci/if_iwn.c
@@ -2131,7 +2131,7 @@ iwn_rx_done(struct iwn_softc *sc, struct iwn_rx_desc *
        }
        ni = ieee80211_find_rxnode(ic, wh);
- rxi.rxi_flags = 0;
+       memset(&rxi, 0, sizeof(rxi));
        if (((wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK) != IEEE80211_FC0_TYPE_CTL)
            && (wh->i_fc[1] & IEEE80211_FC1_PROTECTED) &&
            !IEEE80211_IS_MULTICAST(wh->i_addr1) &&
@@ -2218,7 +2218,6 @@ iwn_rx_done(struct iwn_softc *sc, struct iwn_rx_desc *
/* Send the frame to the 802.11 layer. */
        rxi.rxi_rssi = rssi;
-       rxi.rxi_tstamp = 0;     /* unused */
        rxi.rxi_chan = chan;
        ieee80211_inputm(ifp, m, ni, &rxi, ml);
blob - ffd1dbe539f50e0c7df21f312751b0889d8f6674
blob + 5646d88e480aaefc501bf11bffb2ea2520024679
--- sys/dev/pci/if_rtwn.c
+++ sys/dev/pci/if_rtwn.c
@@ -972,9 +972,8 @@ rtwn_rx_frame(struct rtwn_pci_softc *sc, struct r92c_r
  #endif
ni = ieee80211_find_rxnode(ic, wh);
-       rxi.rxi_flags = 0;
+       memset(&rxi, 0, sizeof(rxi));
        rxi.rxi_rssi = rssi;
-       rxi.rxi_tstamp = 0;     /* Unused. */
        ieee80211_inputm(ifp, m, ni, &rxi, ml);
        /* Node is no longer needed. */
        ieee80211_release_node(ic, ni);
blob - 16ebb12527ec9137ea4053f8cfbaa15b03c66454
blob + f233b050c0e56f8c0003037faecfafc616f28e0b
--- sys/dev/pci/if_wpi.c
+++ sys/dev/pci/if_wpi.c
@@ -1262,7 +1262,7 @@ wpi_rx_done(struct wpi_softc *sc, struct wpi_rx_desc *
        wh = mtod(m, struct ieee80211_frame *);
        ni = ieee80211_find_rxnode(ic, wh);
- rxi.rxi_flags = 0;
+       memset(&rxi, 0, sizeof(rxi));
        if ((wh->i_fc[1] & IEEE80211_FC1_PROTECTED) &&
            !IEEE80211_IS_MULTICAST(wh->i_addr1) &&
            (ni->ni_flags & IEEE80211_NODE_RXPROT) &&
@@ -1333,7 +1333,6 @@ wpi_rx_done(struct wpi_softc *sc, struct wpi_rx_desc *
/* Send the frame to the 802.11 layer. */
        rxi.rxi_rssi = stat->rssi;
-       rxi.rxi_tstamp = 0;     /* unused */
        ieee80211_inputm(ifp, m, ni, &rxi, ml);
/* Node is no longer needed. */
blob - fb0e72a1288b9d76f37a59fd0d51779a56c32e5f
blob + 757baa9acc498b8f20e7e00610ef1c0668abe1e2
--- sys/dev/usb/if_athn_usb.c
+++ sys/dev/usb/if_athn_usb.c
@@ -2087,7 +2087,7 @@ athn_usb_rx_frame(struct athn_usb_softc *usc, struct m
        m_adj(m, -IEEE80211_CRC_LEN);
/* Send the frame to the 802.11 layer. */
-       rxi.rxi_flags = 0;
+       memset(&rxi, 0, sizeof(rxi));
        rxi.rxi_rssi = rs->rs_rssi + AR_USB_DEFAULT_NF;
        rxi.rxi_tstamp = betoh64(rs->rs_tstamp);
        if (!(wh->i_fc[0] & IEEE80211_FC0_TYPE_CTL) &&
blob - 38246930c43a2c32a5ca859a92a80b94682634b0
blob + 71877f8c647c4d093660cfe1e3849b92ff7c266b
--- sys/dev/usb/if_atu.c
+++ sys/dev/usb/if_atu.c
@@ -1728,7 +1728,7 @@ atu_rxeof(struct usbd_xfer *xfer, void *priv, usbd_sta
        }
  #endif /* NBPFILTER > 0 */
- rxi.rxi_flags = 0;
+       memset(&rxi, 0, sizeof(rxi));
        if (wh->i_fc[1] & IEEE80211_FC1_WEP) {
                /*
                 * WEP is decrypted by hardware. Clear WEP bit
blob - 3ecc7a033c1624da63c8f7243005fa258601c682
blob + 832fec9c52492ca0ad0241fb5df0271916d3791b
--- sys/dev/usb/if_mtw.c
+++ sys/dev/usb/if_mtw.c
@@ -2046,7 +2046,7 @@ mtw_rx_frame(struct mtw_softc *sc, uint8_t *buf, int d
        }
wh = (struct ieee80211_frame *)(buf + rxwisize);
-       rxi.rxi_flags = 0;
+       memset(&rxi, 0, sizeof(rxi));
        if (wh->i_fc[1] & IEEE80211_FC1_PROTECTED) {
                wh->i_fc[1] &= ~IEEE80211_FC1_PROTECTED;
                rxi.rxi_flags |= IEEE80211_RXI_HWDEC;
@@ -2129,7 +2129,6 @@ mtw_rx_frame(struct mtw_softc *sc, uint8_t *buf, int d
        s = splnet();
        ni = ieee80211_find_rxnode(ic, wh);
        rxi.rxi_rssi = rssi;
-       rxi.rxi_tstamp = 0;     /* unused */
        ieee80211_inputm(ifp, m, ni, &rxi, ml);
/* node is no longer needed */
blob - dbe3a9cadde3638f4942c91879f073f41e62b8d3
blob + 8ccfc906ebaf1ecfb616deee1032f86efc3d2c5e
--- sys/dev/usb/if_otus.c
+++ sys/dev/usb/if_otus.c
@@ -1192,9 +1192,8 @@ otus_sub_rxeof(struct otus_softc *sc, uint8_t *buf, in
s = splnet();
        ni = ieee80211_find_rxnode(ic, wh);
-       rxi.rxi_flags = 0;
+       memset(&rxi, 0, sizeof(rxi));
        rxi.rxi_rssi = tail->rssi;
-       rxi.rxi_tstamp = 0;     /* unused */
        ieee80211_inputm(ifp, m, ni, &rxi, ml);
/* Node is no longer needed. */
blob - fc000d55ad2eb93b96c0c7eaf5e81547c7ab05b1
blob + d53462a9c3ba6dbd4e7d59c23f8c625b50a93e36
--- sys/dev/usb/if_ral.c
+++ sys/dev/usb/if_ral.c
@@ -774,9 +774,8 @@ ural_rxeof(struct usbd_xfer *xfer, void *priv, usbd_st
        ni = ieee80211_find_rxnode(ic, wh);
/* send the frame to the 802.11 layer */
-       rxi.rxi_flags = 0;
+       memset(&rxi, 0, sizeof(rxi));
        rxi.rxi_rssi = desc->rssi;
-       rxi.rxi_tstamp = 0;     /* unused */
        ieee80211_input(ifp, m, ni, &rxi);
/* node is no longer needed */
blob - 5f5f6d498c1cda4cfe19f6e2b47a5cdf860edb9e
blob + b2e1b7fd5211230da7b6c786062ed391d3960f4c
--- sys/dev/usb/if_rsu.c
+++ sys/dev/usb/if_rsu.c
@@ -1131,9 +1131,8 @@ rsu_event_survey(struct rsu_softc *sc, uint8_t *buf, i
        m->m_pkthdr.len = m->m_len = pktlen;
ni = ieee80211_find_rxnode(ic, wh);
-       rxi.rxi_flags = 0;
+       memset(&rxi, 0, sizeof(rxi));
        rxi.rxi_rssi = letoh32(bss->rssi);
-       rxi.rxi_tstamp = 0;
        ieee80211_input(ifp, m, ni, &rxi);
        /* Node is no longer needed. */
        ieee80211_release_node(ic, ni);
@@ -1384,9 +1383,8 @@ rsu_rx_frame(struct rsu_softc *sc, uint8_t *buf, int p
  #endif
ni = ieee80211_find_rxnode(ic, wh);
-       rxi.rxi_flags = 0;
+       memset(&rxi, 0, sizeof(rxi));
        rxi.rxi_rssi = rssi;
-       rxi.rxi_tstamp = 0;     /* Unused. */
        ieee80211_inputm(ifp, m, ni, &rxi, ml);
        /* Node is no longer needed. */
        ieee80211_release_node(ic, ni);
blob - 1a0152a80f1abde39c21a992042e8c1a6006a0f7
blob + 4e69906c58677f4501191ada58ff1233de612376
--- sys/dev/usb/if_rum.c
+++ sys/dev/usb/if_rum.c
@@ -843,9 +843,8 @@ rum_rxeof(struct usbd_xfer *xfer, void *priv, usbd_sta
        ni = ieee80211_find_rxnode(ic, wh);
/* send the frame to the 802.11 layer */
-       rxi.rxi_flags = 0;
+       memset(&rxi, 0, sizeof(rxi));
        rxi.rxi_rssi = desc->rssi;
-       rxi.rxi_tstamp = 0;     /* unused */
        ieee80211_input(ifp, m, ni, &rxi);
/* node is no longer needed */
blob - 8d58b4170d4d038d584135de5076ddcb364cf545
blob + 05a3fc5653c8e4f853ea66d7fbb8bc01b0b247fc
--- sys/dev/usb/if_run.c
+++ sys/dev/usb/if_run.c
@@ -2227,7 +2227,7 @@ run_rx_frame(struct run_softc *sc, uint8_t *buf, int d
        }
wh = (struct ieee80211_frame *)(buf + rxwisize);
-       rxi.rxi_flags = 0;
+       memset(&rxi, 0, sizeof(rxi));
        if (wh->i_fc[1] & IEEE80211_FC1_PROTECTED) {
                wh->i_fc[1] &= ~IEEE80211_FC1_PROTECTED;
                rxi.rxi_flags |= IEEE80211_RXI_HWDEC;
@@ -2310,7 +2310,6 @@ run_rx_frame(struct run_softc *sc, uint8_t *buf, int d
        s = splnet();
        ni = ieee80211_find_rxnode(ic, wh);
        rxi.rxi_rssi = rssi;
-       rxi.rxi_tstamp = 0;     /* unused */
        ieee80211_inputm(ifp, m, ni, &rxi, ml);
/* node is no longer needed */
blob - ae8ccb49c7643f41fba320d50c9750647388ed95
blob + c0c9dab4fe4fad1291f677e104c422dfc0ce06c8
--- sys/dev/usb/if_uath.c
+++ sys/dev/usb/if_uath.c
@@ -1221,7 +1221,7 @@ uath_data_rxeof(struct usbd_xfer *xfer, void *priv,
        data->buf = mtod(data->m, uint8_t *);
wh = mtod(m, struct ieee80211_frame *);
-       rxi.rxi_flags = 0;
+       memset(&rxi, 0, sizeof(rxi));
        if ((wh->i_fc[1] & IEEE80211_FC1_WEP) &&
            ic->ic_opmode != IEEE80211_M_MONITOR) {
                /*
@@ -1263,7 +1263,6 @@ uath_data_rxeof(struct usbd_xfer *xfer, void *priv,
        s = splnet();
        ni = ieee80211_find_rxnode(ic, wh);
        rxi.rxi_rssi = (int)betoh32(desc->rssi);
-       rxi.rxi_tstamp = 0;     /* unused */
        ieee80211_input(ifp, m, ni, &rxi);
/* node is no longer needed */
blob - dc1362d04276ff85f99fde157cdb7e1cfe6f11b1
blob + 6d3cfc2d6567f1a9fde4874a781bf6f10741d700
--- sys/dev/usb/if_upgt.c
+++ sys/dev/usb/if_upgt.c
@@ -1741,9 +1741,9 @@ upgt_rx(struct upgt_softc *sc, uint8_t *data, int pkgl
        ni = ieee80211_find_rxnode(ic, wh);
/* push the frame up to the 802.11 stack */
+       memset(&rxi, 0, sizeof(rxi));
        rxi.rxi_flags = 0;
        rxi.rxi_rssi = rxdesc->rssi;
-       rxi.rxi_tstamp = 0;     /* unused */
        ieee80211_input(ifp, m, ni, &rxi);
/* node is no longer needed */
blob - cd85d9e008ee74aade1252aa7faa7ce93ffb42fe
blob + 3da9b4a5c7b144e3692a8425fc69c9c1dabada03
--- sys/dev/usb/if_urtw.c
+++ sys/dev/usb/if_urtw.c
@@ -3157,9 +3157,8 @@ urtw_rxeof(struct usbd_xfer *xfer, void *priv, usbd_st
        nf = quality;
/* send the frame to the 802.11 layer */
-       rxi.rxi_flags = 0;
+       memset(&rxi, 0, sizeof(rxi));
        rxi.rxi_rssi = rssi;
-       rxi.rxi_tstamp = 0;
        ieee80211_input(ifp, m, ni, &rxi);
/* node is no longer needed */
blob - 8601bf45e727196ded133369fb12d3cf13c3ea17
blob + 5179210146b02c84945416a8d32346ee9c9b0d8c
--- sys/dev/usb/if_urtwn.c
+++ sys/dev/usb/if_urtwn.c
@@ -1265,9 +1265,8 @@ urtwn_rx_frame(struct urtwn_softc *sc, uint8_t *buf, i
  #endif
ni = ieee80211_find_rxnode(ic, wh);
-       rxi.rxi_flags = 0;
+       memset(&rxi, 0, sizeof(rxi));
        rxi.rxi_rssi = rssi;
-       rxi.rxi_tstamp = 0;     /* Unused. */
/* Handle hardware decryption. */
        if (((wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK) != IEEE80211_FC0_TYPE_CTL)
blob - 7b2ee73c6ca33a0a642496a246a437916433eaf1
blob + 4df0f79827fa1e5a1a7519731f61bf3b6fb33598
--- sys/dev/usb/if_zyd.c
+++ sys/dev/usb/if_zyd.c
@@ -1979,9 +1979,8 @@ zyd_rx_data(struct zyd_softc *sc, const uint8_t *buf,
        s = splnet();
        wh = mtod(m, struct ieee80211_frame *);
        ni = ieee80211_find_rxnode(ic, wh);
-       rxi.rxi_flags = 0;
+       memset(&rxi, 0, sizeof(rxi));
        rxi.rxi_rssi = stat->rssi;
-       rxi.rxi_tstamp = 0;     /* unused */
        ieee80211_inputm(ifp, m, ni, &rxi, ml);
/* node is no longer needed */


Reply via email to