[PATCH 09/15] staging: brcm80211: fix off-by-one error in swap functions
Arend van Spriel
arend at broadcom.com
Mon Aug 15 13:34:21 UTC 2011
From: Henry Ptasinski <henryp at broadcom.com>
The original implementation iterated over the data in buf+1 through buf+size,
whereas it should have been over the data in buf through buf+size-1.
Tested on Mac G5 PPC and BCM63281.
Signed-off-by: Henry Ptasinski <henryp at broadcom.com>
Reviewed-by: Arend van Spriel <arend at broadcom.com>
Reviewed-by: Roland Vossen <rvossen at broadcom.com>
Tested-by: Jonas Gorski <jonas.gorski at gmail.com>
Signed-off-by: Arend van Spriel <arend at broadcom.com>
---
drivers/staging/brcm80211/brcmsmac/srom.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/staging/brcm80211/brcmsmac/srom.c b/drivers/staging/brcm80211/brcmsmac/srom.c
index 060f06f..7a17f59 100644
--- a/drivers/staging/brcm80211/brcmsmac/srom.c
+++ b/drivers/staging/brcm80211/brcmsmac/srom.c
@@ -880,13 +880,15 @@ int srom_var_init(struct si_pub *sih, void *curmap, char **vars, uint *count)
static inline void ltoh16_buf(u16 *buf, unsigned int size)
{
- for (size /= 2; size; size--)
+ size /= 2;
+ while (size--)
*(buf + size) = le16_to_cpu(*(buf + size));
}
static inline void htol16_buf(u16 *buf, unsigned int size)
{
- for (size /= 2; size; size--)
+ size /= 2;
+ while (size--)
*(buf + size) = cpu_to_le16(*(buf + size));
}
--
1.7.4.1
More information about the devel
mailing list