As stated in short summary. I have TPlink wireless card, which is based on Atheros chipset.
03:06.0 Ethernet controller: Atheros Communications Inc. AR2413 802.11bg NIC (rev 01)
Subsystem: Atheros Communications Inc. TP-Link TL-WN510G Wireless CardBus Adapter
Control: I/O- Mem+ BusMaster?+ SpecCycle?- MemWINV- VGASnoop- ParErr?- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr?- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 168 (2500ns min, 7000ns max), Cache Line Size: 4 bytes
Interrupt: pin A routed to IRQ 20
Region 0: Memory at fdee0000 (32-bit, non-prefetchable) [size=64K]
Capabilities: [44] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent?=375mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst?- PME-Enable- DSel=0 DScale=2 PME-
Kernel driver in use: ath_pci
Kernel modules: ath_pci
Problem occurs on Gentoo Base System release 2.0.1, affected packages is all versions of Madwifi (atm it's 0.9.4.4133.2010062). Module loaded without any parameters is working perfectly in Managed mode, switching by Gentoo's initscript or iwconfig to other modes is impossible, due to Error for wireless request "Set Mode" (8B06) :
SET failed on device ath0 ; Invalid argument.
There's a little workaround by destroying ath0 device and creating new in AP mode, but i wanted to use autocreate option from module.
So, when interface is created, everything goes just fine, till i try to iwconfig ath0 channel. Kernel just hangs, no oopses or other blinking capslock and scrolllock keys; what i've found only disk operations are dead and cursor stops blinking, commands which are running; untill they want to swap a memory page with swap memory runs unaltered.
Issuing command athdebug 0xffffffff results in spamming my kernel log, which i am attaching here. After switching channel i can see what's in log's tail, and also (sometimes, but rarely) text, which haven't reached log on disk ath_calibrate channel 2422/0c or similiar.
Attached 366KB of my kernel log is just 13 seconds of my computer life: i did in this time commands: athdebug 0xffffffff ifconfig ath0 up iwconfig ath0 channel 7.
Kernel version is 2.6.37, but it's not so important information i think, because all kernel numbers acts same. Compiler: gcc (Gentoo 4.4.4-r2 p1.3, pie-0.4.5) 4.4.4, eariler tried a hardened version, and to exclude compiler's failure, i've changed it to standard.
I do not know which else i can write here. Feel free to ask detailed questions, i'll be happy to cooperate.
PS: Same situation on similiar system (same configuration options), but laptop equipped with AR5212 WiFi is unproblematic. Channel switching, setting up Access point with hostapd works flawlessly.