ath9k_hw: Fix EEPROM uncompress block reading on AR9003
authorLuis R. Rodriguez <lrodriguez@atheros.com>
Mon, 30 Aug 2010 23:26:32 +0000 (19:26 -0400)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 31 Aug 2010 18:52:23 +0000 (14:52 -0400)
The EEPROM is compressed on AR9003, upon decompression
the wrong upper limit was being used for the block which
prevented the 5 GHz CTL indexes from being used, which are
stored towards the end of the EEPROM block. This fix allows
the actual intended regulatory limits to be used on AR9003
hardware.

Cc: stable@kernel.org [2.6.36+]
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c

index b883b174385b822e98cb46e0f83b8024159cf18c..057fb69ddf7fbc56e76b010a1cc21833fdc2b078 100644 (file)
@@ -797,7 +797,7 @@ static bool ar9300_uncompress_block(struct ath_hw *ah,
                length = block[it+1];
                length &= 0xff;
 
-               if (length > 0 && spot >= 0 && spot+length < mdataSize) {
+               if (length > 0 && spot >= 0 && spot+length <= mdataSize) {
                        ath_print(common, ATH_DBG_EEPROM,
                                  "Restore at %d: spot=%d "
                                  "offset=%d length=%d\n",