ath9k: initialize hw prior to debugfs
debugfs uses the hardware for several debugfs files as such the hardware must be initialized and available prior to its usage. The same applies to when we free the hw structs -- free debufs file entries prior to free'ing the hardware. Reported-by: Vasanthakumar Thiagarajan <vasanth@atheros.com> Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:

committed by
John W. Linville

orang tua
faa27fae7d
melakukan
211f5859af
@@ -999,6 +999,8 @@ int ath9k_hw_init(struct ath_hw *ah)
|
||||
|
||||
ath9k_init_nfcal_hist_buffer(ah);
|
||||
|
||||
common->state = ATH_HW_INITIALIZED;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1239,11 +1241,18 @@ const char *ath9k_hw_probe(u16 vendorid, u16 devid)
|
||||
|
||||
void ath9k_hw_detach(struct ath_hw *ah)
|
||||
{
|
||||
struct ath_common *common = ath9k_hw_common(ah);
|
||||
|
||||
if (common->state <= ATH_HW_INITIALIZED)
|
||||
goto free_hw;
|
||||
|
||||
if (!AR_SREV_9100(ah))
|
||||
ath9k_hw_ani_disable(ah);
|
||||
|
||||
ath9k_hw_rf_free(ah);
|
||||
ath9k_hw_setpower(ah, ATH9K_PM_FULL_SLEEP);
|
||||
|
||||
free_hw:
|
||||
ath9k_hw_rf_free(ah);
|
||||
kfree(ah);
|
||||
ah = NULL;
|
||||
}
|
||||
|
Reference in New Issue
Block a user