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:

diff 78339108684c9eff64beceb07db3a4411c4e9aee /usr/src
blob - 9c70f4dc5e96467bb4100e022ba59e918797e85f
file + sys/dev/ic/acx.c
--- 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
file + sys/dev/ic/an.c
--- 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
file + sys/dev/ic/ar5008.c
--- 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
file + sys/dev/ic/ar9003.c
--- 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
file + sys/dev/ic/ath.c
--- 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
file + sys/dev/ic/atw.c
--- 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
file + sys/dev/ic/bwfm.c
--- 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
file + sys/dev/ic/bwi.c
--- 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
file + sys/dev/ic/malo.c
--- 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
file + sys/dev/ic/pgt.c
--- 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
file + sys/dev/ic/rt2560.c
--- 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
file + sys/dev/ic/rt2661.c
--- 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 - 32b0ce42b41b1afaf39031e13db1fdb9b48bba9a
file + sys/dev/ic/rt2860.c
--- sys/dev/ic/rt2860.c
+++ sys/dev/ic/rt2860.c
@@ -1275,8 +1275,6 @@ rt2860_rx_intr(struct rt2860_softc *sc)
        uint16_t phy;
 #endif
 
-       memset(&rxi, 0, sizeof(rxi));
-
        hw = RAL_READ(sc, RT2860_FS_DRX_IDX) & 0xfff;
        while (sc->rxq.cur != hw) {
                struct rt2860_rx_data *data = &sc->rxq.data[sc->rxq.cur];
@@ -1351,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;
@@ -1415,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
file + sys/dev/ic/rtw.c
--- 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
file + sys/dev/pci/if_ipw.c
--- 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
file + sys/dev/pci/if_iwi.c
--- 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
file + sys/dev/pci/if_iwn.c
--- 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
file + sys/dev/pci/if_rtwn.c
--- 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
file + sys/dev/pci/if_wpi.c
--- 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
file + sys/dev/usb/if_athn_usb.c
--- 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
file + sys/dev/usb/if_atu.c
--- 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
file + sys/dev/usb/if_mtw.c
--- 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
file + sys/dev/usb/if_otus.c
--- 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
file + sys/dev/usb/if_ral.c
--- 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
file + sys/dev/usb/if_rsu.c
--- 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
file + sys/dev/usb/if_rum.c
--- 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
file + sys/dev/usb/if_run.c
--- 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
file + sys/dev/usb/if_uath.c
--- 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
file + sys/dev/usb/if_upgt.c
--- 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
file + sys/dev/usb/if_urtw.c
--- 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
file + sys/dev/usb/if_urtwn.c
--- 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
file + sys/dev/usb/if_zyd.c
--- 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