airo : fix printing status info

For some status, reason is encoded in the low byte, but airo_print_status forgot tp mask low byte in status parsing.

This make it only work when reason is 0.

Signed-off-by: Matthieu CASTET <castet.matthieu@free.fr>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
matthieu castet 2010-02-28 15:31:21 +01:00 committed by John W. Linville
parent 85373ee817
commit 3bc819e8d4

View file

@ -3193,19 +3193,26 @@ static void airo_print_status(const char *devname, u16 status)
{ {
u8 reason = status & 0xFF; u8 reason = status & 0xFF;
switch (status) { switch (status & 0xFF00) {
case STAT_NOBEACON: case STAT_NOBEACON:
airo_print_dbg(devname, "link lost (missed beacons)"); switch (status) {
break; case STAT_NOBEACON:
case STAT_MAXRETRIES: airo_print_dbg(devname, "link lost (missed beacons)");
case STAT_MAXARL: break;
airo_print_dbg(devname, "link lost (max retries)"); case STAT_MAXRETRIES:
break; case STAT_MAXARL:
case STAT_FORCELOSS: airo_print_dbg(devname, "link lost (max retries)");
airo_print_dbg(devname, "link lost (local choice)"); break;
break; case STAT_FORCELOSS:
case STAT_TSFSYNC: airo_print_dbg(devname, "link lost (local choice)");
airo_print_dbg(devname, "link lost (TSF sync lost)"); break;
case STAT_TSFSYNC:
airo_print_dbg(devname, "link lost (TSF sync lost)");
break;
default:
airo_print_dbg(devname, "unknow status %x\n", status);
break;
}
break; break;
case STAT_DEAUTH: case STAT_DEAUTH:
airo_print_dbg(devname, "deauthenticated (reason: %d)", reason); airo_print_dbg(devname, "deauthenticated (reason: %d)", reason);
@ -3221,7 +3228,11 @@ static void airo_print_status(const char *devname, u16 status)
airo_print_dbg(devname, "authentication failed (reason: %d)", airo_print_dbg(devname, "authentication failed (reason: %d)",
reason); reason);
break; break;
case STAT_ASSOC:
case STAT_REASSOC:
break;
default: default:
airo_print_dbg(devname, "unknow status %x\n", status);
break; break;
} }
} }