From 184a3b2c517531faac80b0d74c423dd26038cfd2 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Fri, 21 Dec 2007 03:40:35 -0500 Subject: hostap: don't mess with mixed-endian even for internal skb queues Just leave hfa384x_info_frame as-is, don't convert in place. Signed-off-by: Al Viro Signed-off-by: John W. Linville --- drivers/net/wireless/hostap/hostap_hw.c | 14 ++++++-------- drivers/net/wireless/hostap/hostap_info.c | 5 +++-- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/drivers/net/wireless/hostap/hostap_hw.c b/drivers/net/wireless/hostap/hostap_hw.c index 77237bb3b2f9..7be68db6f300 100644 --- a/drivers/net/wireless/hostap/hostap_hw.c +++ b/drivers/net/wireless/hostap/hostap_hw.c @@ -2448,18 +2448,16 @@ static void prism2_info(local_info_t *local) goto out; } - le16_to_cpus(&info.len); - le16_to_cpus(&info.type); - left = (info.len - 1) * 2; + left = (le16_to_cpu(info.len) - 1) * 2; - if (info.len & 0x8000 || info.len == 0 || left > 2060) { + if (info.len & cpu_to_le16(0x8000) || info.len == 0 || left > 2060) { /* data register seems to give 0x8000 in some error cases even * though busy bit is not set in offset register; * in addition, length must be at least 1 due to type field */ spin_unlock(&local->baplock); printk(KERN_DEBUG "%s: Received info frame with invalid " - "length 0x%04x (type 0x%04x)\n", dev->name, info.len, - info.type); + "length 0x%04x (type 0x%04x)\n", dev->name, + le16_to_cpu(info.len), le16_to_cpu(info.type)); goto out; } @@ -2476,8 +2474,8 @@ static void prism2_info(local_info_t *local) { spin_unlock(&local->baplock); printk(KERN_WARNING "%s: Info frame read failed (fid=0x%04x, " - "len=0x%04x, type=0x%04x\n", - dev->name, fid, info.len, info.type); + "len=0x%04x, type=0x%04x\n", dev->name, fid, + le16_to_cpu(info.len), le16_to_cpu(info.type)); dev_kfree_skb(skb); goto out; } diff --git a/drivers/net/wireless/hostap/hostap_info.c b/drivers/net/wireless/hostap/hostap_info.c index e559b8d9fca6..7cd3fb79230e 100644 --- a/drivers/net/wireless/hostap/hostap_info.c +++ b/drivers/net/wireless/hostap/hostap_info.c @@ -373,7 +373,7 @@ void hostap_info_process(local_info_t *local, struct sk_buff *skb) buf = skb->data + sizeof(*info); left = skb->len - sizeof(*info); - switch (info->type) { + switch (le16_to_cpu(info->type)) { case HFA384X_INFO_COMMTALLIES: prism2_info_commtallies(local, buf, left); break; @@ -395,7 +395,8 @@ void hostap_info_process(local_info_t *local, struct sk_buff *skb) #ifndef PRISM2_NO_DEBUG default: PDEBUG(DEBUG_EXTRA, "%s: INFO - len=%d type=0x%04x\n", - local->dev->name, info->len, info->type); + local->dev->name, le16_to_cpu(info->len), + le16_to_cpu(info->type)); PDEBUG(DEBUG_EXTRA, "Unknown info frame:"); for (i = 0; i < (left < 100 ? left : 100); i++) PDEBUG2(DEBUG_EXTRA, " %02x", buf[i]); -- cgit v1.2.3