svn commit: r282369 - head/sys/dev/wpi
Adrian Chadd
adrian at FreeBSD.org
Sun May 3 20:56:34 UTC 2015
Author: adrian
Date: Sun May 3 20:56:33 2015
New Revision: 282369
URL: https://svnweb.freebsd.org/changeset/base/282369
Log:
Retry twice at the same rate.
Submitted by: Andriy Voskoboinyk <s3erios at gmail.com>
Modified:
head/sys/dev/wpi/if_wpi.c
head/sys/dev/wpi/if_wpireg.h
Modified: head/sys/dev/wpi/if_wpi.c
==============================================================================
--- head/sys/dev/wpi/if_wpi.c Sun May 3 19:30:11 2015 (r282368)
+++ head/sys/dev/wpi/if_wpi.c Sun May 3 20:56:33 2015 (r282369)
@@ -1957,7 +1957,7 @@ wpi_tx_done(struct wpi_softc *sc, struct
struct ieee80211vap *vap;
struct ieee80211com *ic;
uint32_t status = le32toh(stat->status);
- int ackfailcnt = stat->ackfailcnt / 2; /* wpi_mrr_setup() */
+ int ackfailcnt = stat->ackfailcnt / WPI_NTRIES_DEFAULT;
KASSERT(data->ni != NULL, ("no node"));
KASSERT(data->m != NULL, ("no mbuf"));
@@ -1966,7 +1966,7 @@ wpi_tx_done(struct wpi_softc *sc, struct
DPRINTF(sc, WPI_DEBUG_XMIT, "%s: "
"qid %d idx %d retries %d btkillcnt %d rate %x duration %d "
- "status %x\n", __func__, desc->qid, desc->idx, ackfailcnt,
+ "status %x\n", __func__, desc->qid, desc->idx, stat->ackfailcnt,
stat->btkillcnt, stat->rate, le32toh(stat->duration), status);
/* Unmap and free mbuf. */
@@ -3125,8 +3125,8 @@ wpi_mrr_setup(struct wpi_softc *sc)
/* Fallback to the immediate lower CCK rate (if any.) */
mrr.rates[i].next =
(i == WPI_RIDX_CCK1) ? WPI_RIDX_CCK1 : i - 1;
- /* Try one time at this rate before falling back to "next". */
- mrr.rates[i].ntries = 1;
+ /* Try twice at this rate before falling back to "next". */
+ mrr.rates[i].ntries = WPI_NTRIES_DEFAULT;
}
/* OFDM rates (not used with 802.11b). */
for (i = WPI_RIDX_OFDM6; i <= WPI_RIDX_OFDM54; i++) {
@@ -3138,8 +3138,8 @@ wpi_mrr_setup(struct wpi_softc *sc)
((ic->ic_curmode == IEEE80211_MODE_11A) ?
WPI_RIDX_OFDM6 : WPI_RIDX_CCK2) :
i - 1;
- /* Try one time at this rate before falling back to "next". */
- mrr.rates[i].ntries = 1;
+ /* Try twice at this rate before falling back to "next". */
+ mrr.rates[i].ntries = WPI_NTRIES_DEFAULT;
}
/* Setup MRR for control frames. */
mrr.which = htole32(WPI_MRR_CTL);
Modified: head/sys/dev/wpi/if_wpireg.h
==============================================================================
--- head/sys/dev/wpi/if_wpireg.h Sun May 3 19:30:11 2015 (r282368)
+++ head/sys/dev/wpi/if_wpireg.h Sun May 3 20:56:33 2015 (r282369)
@@ -547,6 +547,8 @@ struct wpi_mrr_setup {
uint8_t plcp;
uint8_t flags;
uint8_t ntries;
+#define WPI_NTRIES_DEFAULT 2
+
uint8_t next;
} __packed rates[WPI_RIDX_MAX + 1];
} __packed;
More information about the svn-src-head
mailing list