2 Tips, especially for ath9k users:
Tip 1 – Unload and Reload your driver
Have you tried turning it off and turning it on again? No, seriously. Unload and reload the driver. I had an ath9k card that would work again for hours after doing this:
$ modprobe -r ath9k $ modprobe ath9k
Eventually it stopped working and I replaced it with a D-Link DWA-131. I could have tried tip 2 first:
Tip 2 – Turn off hardware encryption
The parameter name varies between drivers, but the method is largely the same:
Create/Edit driver options file:
$ sudo nano /etc/modprobe.d/ath9k.conf
Put contents:
options ath9k nohwcrypt=1
Then reboot.