diff options
author | sam <sam@FreeBSD.org> | 2007-09-17 05:16:38 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2007-09-17 05:16:38 +0000 |
commit | 74666fdfce0e06484d5f82e8fced0c16c06477d1 (patch) | |
tree | eb5408d03cb1fc35092ac80442ddcaa4704da9d5 | |
parent | 0874cc7a2f96eabcf52d71bbfa4a745f6e6098e6 (diff) | |
download | FreeBSD-src-74666fdfce0e06484d5f82e8fced0c16c06477d1.zip FreeBSD-src-74666fdfce0e06484d5f82e8fced0c16c06477d1.tar.gz |
bandaid Dynamic Turbo A operation with old hal's: HAL_MODE_108A
does not have a rate table in older hal's so if we scan such a
channel the driver will hit an assertion or crash; for old hal's
fallback to using the static turbo rate table for this mode
(not correct but good enough for now given none of the rate
control algorithms understand how to switch between base+boost)
Approved by: re (blanket wireless)
-rw-r--r-- | sys/dev/ath/if_ath.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c index 1f3fc485..5654563 100644 --- a/sys/dev/ath/if_ath.c +++ b/sys/dev/ath/if_ath.c @@ -5605,6 +5605,10 @@ ath_rate_setup(struct ath_softc *sc, u_int mode) break; case IEEE80211_MODE_TURBO_A: rt = ath_hal_getratetable(ah, HAL_MODE_108A); +#if HAL_ABI_VERSION < 0x07013100 + if (rt == NULL) /* XXX bandaid for old hal's */ + rt = ath_hal_getratetable(ah, HAL_MODE_TURBO); +#endif break; case IEEE80211_MODE_TURBO_G: rt = ath_hal_getratetable(ah, HAL_MODE_108G); |