]> xenbits.xensource.com Git - people/julieng/freebsd.git/commitdiff
urtwn(4): fix sequence numbering for QoS frames
authoradrian <adrian@FreeBSD.org>
Sat, 3 Oct 2015 06:07:01 +0000 (06:07 +0000)
committeradrian <adrian@FreeBSD.org>
Sat, 3 Oct 2015 06:07:01 +0000 (06:07 +0000)
Tested:

* urtwn0: MAC/BB RTL8188EU, RF 6052 1T1R, STA mode

Submitted by: <s3erios@gmail.com>
Differential Revision: https://reviews.freebsd.org/D3684

sys/dev/usb/wlan/if_urtwn.c

index b1e3804ea889ce0ccaa448b95a2ef2c3f39c1900..eb11f7b245009dc254d755e480a90b2f060852ca 100644 (file)
@@ -1775,7 +1775,7 @@ urtwn_tx_start(struct urtwn_softc *sc, struct ieee80211_node *ni,
        struct r92c_tx_desc *txd;
        uint8_t raid, type;
        uint16_t sum;
-       int i, hasqos, xferlen;
+       int i, xferlen;
        struct usb_xfer *urtwn_pipes[4] = {
                sc->sc_xfer[URTWN_BULK_TX_BE],
                sc->sc_xfer[URTWN_BULK_TX_BK],
@@ -1816,8 +1816,6 @@ urtwn_tx_start(struct urtwn_softc *sc, struct ieee80211_node *ni,
                break;
        }
 
-       hasqos = 0;
-
        /* Fill Tx descriptor. */
        txd = (struct r92c_tx_desc *)data->buf;
        memset(txd, 0, sizeof(*txd));
@@ -1873,7 +1871,7 @@ urtwn_tx_start(struct urtwn_softc *sc, struct ieee80211_node *ni,
        /* Set sequence number (already little endian). */
        txd->txdseq |= *(uint16_t *)wh->i_seq;
 
-       if (!hasqos) {
+       if (!IEEE80211_QOS_HAS_SEQ(wh)) {
                /* Use HW sequence numbering for non-QoS frames. */
                txd->txdw4  |= htole32(R92C_TXDW4_HWSEQ);
                txd->txdseq |= htole16(0x8000);