Print this page
7154 arn(7D) walks out of bounds when byteswapping the 4K eeprom
7152 weird condition in arn(7D) needs clarification
7153 delete unused code in arn(7D)
7155 arn(7D) should include the mac fields in the eeprom enumeration

*** 500,555 **** #endif return (DDI_SUCCESS); } - static struct ath_rate_table * - /* LINTED E_STATIC_UNUSED */ - arn_get_ratetable(struct arn_softc *sc, uint32_t mode) - { - struct ath_rate_table *rate_table = NULL; - - switch (mode) { - case IEEE80211_MODE_11A: - rate_table = sc->hw_rate_table[ATH9K_MODE_11A]; - break; - case IEEE80211_MODE_11B: - rate_table = sc->hw_rate_table[ATH9K_MODE_11B]; - break; - case IEEE80211_MODE_11G: - rate_table = sc->hw_rate_table[ATH9K_MODE_11G]; - break; - #ifdef ARB_11N - case IEEE80211_MODE_11NA_HT20: - rate_table = sc->hw_rate_table[ATH9K_MODE_11NA_HT20]; - break; - case IEEE80211_MODE_11NG_HT20: - rate_table = sc->hw_rate_table[ATH9K_MODE_11NG_HT20]; - break; - case IEEE80211_MODE_11NA_HT40PLUS: - rate_table = sc->hw_rate_table[ATH9K_MODE_11NA_HT40PLUS]; - break; - case IEEE80211_MODE_11NA_HT40MINUS: - rate_table = sc->hw_rate_table[ATH9K_MODE_11NA_HT40MINUS]; - break; - case IEEE80211_MODE_11NG_HT40PLUS: - rate_table = sc->hw_rate_table[ATH9K_MODE_11NG_HT40PLUS]; - break; - case IEEE80211_MODE_11NG_HT40MINUS: - rate_table = sc->hw_rate_table[ATH9K_MODE_11NG_HT40MINUS]; - break; - #endif - default: - ARN_DBG((ARN_DBG_FATAL, "arn: arn_get_ratetable(): " - "invalid mode %u\n", mode)); - return (NULL); - } - - return (rate_table); - - } - static void arn_setcurmode(struct arn_softc *sc, enum wireless_mode mode) { struct ath_rate_table *rt; int i; --- 500,509 ----
*** 974,984 **** * When the task is complete, it reschedules itself depending on the * appropriate interval that was calculated. */ static void arn_ani_calibrate(void *arg) - { ieee80211com_t *ic = (ieee80211com_t *)arg; struct arn_softc *sc = (struct arn_softc *)ic; struct ath_hal *ah = sc->sc_ah; boolean_t longcal = B_FALSE; --- 928,937 ----
*** 2626,2637 **** arn_setup_ht_cap(struct arn_softc *sc) { #define ATH9K_HT_CAP_MAXRXAMPDU_65536 0x3 /* 2 ^ 16 */ #define ATH9K_HT_CAP_MPDUDENSITY_8 0x6 /* 8 usec */ - /* LINTED E_FUNC_SET_NOT_USED */ - uint8_t tx_streams; uint8_t rx_streams; arn_ht_conf *ht_info = &sc->sc_ht_conf; ht_info->ht_supported = B_TRUE; --- 2579,2588 ----
*** 2644,2654 **** ht_info->ampdu_factor = ATH9K_HT_CAP_MAXRXAMPDU_65536; ht_info->ampdu_density = ATH9K_HT_CAP_MPDUDENSITY_8; /* set up supported mcs set */ (void) memset(&ht_info->rx_mcs_mask, 0, sizeof (ht_info->rx_mcs_mask)); - tx_streams = ISP2(sc->sc_ah->ah_caps.tx_chainmask) ? 1 : 2; rx_streams = ISP2(sc->sc_ah->ah_caps.rx_chainmask) ? 1 : 2; ht_info->rx_mcs_mask[0] = 0xff; if (rx_streams >= 2) ht_info->rx_mcs_mask[1] = 0xff; --- 2595,2604 ----
*** 3499,3509 **** DDI_DEFINE_STREAM_OPS(arn_dev_ops, nulldev, nulldev, arn_attach, arn_detach, nodev, NULL, D_MP, NULL, arn_quiesce); static struct modldrv arn_modldrv = { &mod_driverops, /* Type of module. This one is a driver */ ! "arn-Atheros 9000 series driver:2.0", /* short description */ &arn_dev_ops /* driver specific ops */ }; static struct modlinkage modlinkage = { MODREV_1, (void *)&arn_modldrv, NULL --- 3449,3459 ---- DDI_DEFINE_STREAM_OPS(arn_dev_ops, nulldev, nulldev, arn_attach, arn_detach, nodev, NULL, D_MP, NULL, arn_quiesce); static struct modldrv arn_modldrv = { &mod_driverops, /* Type of module. This one is a driver */ ! "Atheros 9000 series driver", /* short description */ &arn_dev_ops /* driver specific ops */ }; static struct modlinkage modlinkage = { MODREV_1, (void *)&arn_modldrv, NULL