I have an atheros cardbus card made by ubiquiti. Every once in a while wpa_supplicant gets in a loop where it negotiates the key, I very briefly see "completed" with the wpa-psk, CCMP, etc displayed in wpa_gui. Before I can blink the wpa_gui says DISCONNECTED and all the vitals are cleared. It then repeats the above forever. The fix is usually to do a "service wpa_supplicant restart". Sometimes I need to take down the ath0 interface and bring it up too. It feels like a timing problem where wpa_supplicant just isn't waiting long enough for something. BTW. I just spent an hour trying to get the network working with wpa_supplicant started before the network code. If I put an "exit 0" at the start of ifup-wireless then the dhclient never got started, even though wpa_gui shows the association exists. Ipv6 is also up, so the network is usable for that. I have no idea why dhclient didn't get started. The only thing I can guess is timing also. I've returned to starting wpa_supplicant from the bottom of ifup-wireless and things are back to normal.
Forgot to mention 2 things: 1) "exit 0" is not good since the file is included in another script (I think), so you end up skipping the rest of its parent (where dhcp is started). You should add something like if WPA .... fi around all the settings via "iwconfig" 2) I had to disable ipv6 completely, otherwise my interfaces (both wireless and cable) were not able to go up and down. They were up once and then if-down hanged. cheers