diff options
author | matthieu castet <castet.matthieu@free.fr> | 2010-02-28 09:31:21 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-03-15 15:28:18 -0400 |
commit | 3bc819e8d4dd385e481137b2dbe3b7d23314319e (patch) | |
tree | 0067796200300862474853aa8475b0b46c8cfb89 /drivers/net/wireless/airo.c | |
parent | 85373ee817f95e4b9ad50822ec0c1d8a6f1f7a7f (diff) |
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>
Diffstat (limited to 'drivers/net/wireless/airo.c')
-rw-r--r-- | drivers/net/wireless/airo.c | 35 |
1 files changed, 23 insertions, 12 deletions
diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c index dc5018a6d9ed..2859a355ef99 100644 --- a/drivers/net/wireless/airo.c +++ b/drivers/net/wireless/airo.c | |||
@@ -3193,19 +3193,26 @@ static void airo_print_status(const char *devname, u16 status) | |||
3193 | { | 3193 | { |
3194 | u8 reason = status & 0xFF; | 3194 | u8 reason = status & 0xFF; |
3195 | 3195 | ||
3196 | switch (status) { | 3196 | switch (status & 0xFF00) { |
3197 | case STAT_NOBEACON: | 3197 | case STAT_NOBEACON: |
3198 | airo_print_dbg(devname, "link lost (missed beacons)"); | 3198 | switch (status) { |
3199 | break; | 3199 | case STAT_NOBEACON: |
3200 | case STAT_MAXRETRIES: | 3200 | airo_print_dbg(devname, "link lost (missed beacons)"); |
3201 | case STAT_MAXARL: | 3201 | break; |
3202 | airo_print_dbg(devname, "link lost (max retries)"); | 3202 | case STAT_MAXRETRIES: |
3203 | break; | 3203 | case STAT_MAXARL: |
3204 | case STAT_FORCELOSS: | 3204 | airo_print_dbg(devname, "link lost (max retries)"); |
3205 | airo_print_dbg(devname, "link lost (local choice)"); | 3205 | break; |
3206 | break; | 3206 | case STAT_FORCELOSS: |
3207 | case STAT_TSFSYNC: | 3207 | airo_print_dbg(devname, "link lost (local choice)"); |
3208 | airo_print_dbg(devname, "link lost (TSF sync lost)"); | 3208 | break; |
3209 | case STAT_TSFSYNC: | ||
3210 | airo_print_dbg(devname, "link lost (TSF sync lost)"); | ||
3211 | break; | ||
3212 | default: | ||
3213 | airo_print_dbg(devname, "unknow status %x\n", status); | ||
3214 | break; | ||
3215 | } | ||
3209 | break; | 3216 | break; |
3210 | case STAT_DEAUTH: | 3217 | case STAT_DEAUTH: |
3211 | airo_print_dbg(devname, "deauthenticated (reason: %d)", reason); | 3218 | airo_print_dbg(devname, "deauthenticated (reason: %d)", reason); |
@@ -3221,7 +3228,11 @@ static void airo_print_status(const char *devname, u16 status) | |||
3221 | airo_print_dbg(devname, "authentication failed (reason: %d)", | 3228 | airo_print_dbg(devname, "authentication failed (reason: %d)", |
3222 | reason); | 3229 | reason); |
3223 | break; | 3230 | break; |
3231 | case STAT_ASSOC: | ||
3232 | case STAT_REASSOC: | ||
3233 | break; | ||
3224 | default: | 3234 | default: |
3235 | airo_print_dbg(devname, "unknow status %x\n", status); | ||
3225 | break; | 3236 | break; |
3226 | } | 3237 | } |
3227 | } | 3238 | } |