b94177e10f
The radio would stop communicating completely. This issue was easiest to trigger on AR913x devices, e.g. the TP-Link TL-WR1043ND, but other hardware was occasionally affected as well. The most critical issue was a race condition in disabling/enabling IRQs between the IRQ handler and the IRQ processing tasklet Signed-off-by: Felix Fietkau <nbd@nbd.name>
32 lines
650 B
Diff
32 lines
650 B
Diff
--- a/drivers/net/wireless/ath/ath9k/init.c
|
|
+++ b/drivers/net/wireless/ath/ath9k/init.c
|
|
@@ -1080,23 +1080,23 @@ static int __init ath9k_init(void)
|
|
{
|
|
int error;
|
|
|
|
- error = ath_pci_init();
|
|
+ error = ath_ahb_init();
|
|
if (error < 0) {
|
|
- pr_err("No PCI devices found, driver not installed\n");
|
|
error = -ENODEV;
|
|
goto err_out;
|
|
}
|
|
|
|
- error = ath_ahb_init();
|
|
+ error = ath_pci_init();
|
|
if (error < 0) {
|
|
+ pr_err("No PCI devices found, driver not installed\n");
|
|
error = -ENODEV;
|
|
- goto err_pci_exit;
|
|
+ goto err_ahb_exit;
|
|
}
|
|
|
|
return 0;
|
|
|
|
- err_pci_exit:
|
|
- ath_pci_exit();
|
|
+ err_ahb_exit:
|
|
+ ath_ahb_exit();
|
|
err_out:
|
|
return error;
|
|
}
|