EEPROM size calculated in 16-bit words, so we should take into account
this fact during buffer allocation.

CC: Jiri Slaby <[email protected]>
CC: Nick Kossifidis <[email protected]>
CC: Luis R. Rodriguez <[email protected]>
Signed-off-by: Sergey Ryazanov <[email protected]>
---
 drivers/net/wireless/ath/ath5k/debug.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/ath/ath5k/debug.c 
b/drivers/net/wireless/ath/ath5k/debug.c
index 929d7cc..4f8d9ed 100644
--- a/drivers/net/wireless/ath/ath5k/debug.c
+++ b/drivers/net/wireless/ath/ath5k/debug.c
@@ -909,7 +909,7 @@ static int open_file_eeprom(struct inode *inode, struct 
file *file)
        struct ath5k_hw *ah = inode->i_private;
        bool res;
        int i, ret;
-       u32 eesize;
+       u32 eesize;     /* NB: in 16-bit words */
        u16 val, *buf;
 
        /* Get eeprom size */
@@ -932,7 +932,7 @@ static int open_file_eeprom(struct inode *inode, struct 
file *file)
 
        /* Create buffer and read in eeprom */
 
-       buf = vmalloc(eesize);
+       buf = vmalloc(eesize * 2);
        if (!buf) {
                ret = -ENOMEM;
                goto err;
@@ -952,7 +952,7 @@ static int open_file_eeprom(struct inode *inode, struct 
file *file)
        }
 
        ep->buf = buf;
-       ep->len = i;
+       ep->len = eesize * 2;
 
        file->private_data = (void *)ep;
 
-- 
2.7.3

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to