On 24 July 2014 11:36, Simon Wunderlich <sw@xxxxxxxxxxxxxxxxxx> wrote: >> > @@ -800,8 +800,6 @@ int ath10k_core_start(struct ath10k *ar) >> > >> > else >> > >> > ar->free_vdev_map = (1 << TARGET_NUM_VDEVS) - 1; >> > >> > - INIT_LIST_HEAD(&ar->arvifs); >> > - >> > >> > if (!test_bit(ATH10K_FLAG_FIRST_BOOT_DONE, &ar->dev_flags)) { >> > >> > ath10k_info("%s (0x%08x, 0x%08x) fw %s api %d htt %d.%d\n", >> > >> > ar->hw_params.name, >> > >> > @@ -1084,6 +1082,12 @@ struct ath10k *ath10k_core_create(void *hif_priv, >> > struct device *dev, >> > >> > INIT_WORK(&ar->register_work, ath10k_core_register_work); >> > INIT_WORK(&ar->restart_work, ath10k_core_restart); >> > >> > + INIT_LIST_HEAD(&ar->arvifs); >> >> I'm a bit suspicious about this, why is it needed? > > ath10k_spectral_init() clears the spectral_enabled bit for each vif, and > therefore needs the list to be initialized ... it is also called on firmware > crash by ath10k_halt, where checking the list is more useful. You don't really need to clear arvif->spectral_enabled on crash. arvif's are re-inserted by mac80211 via ath10k_add_interface which uses memset() to clear everything before adding to ar->arvifs. Michał -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html