From: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Date: Fri, 13 Nov 2009 09:02:39 +0000 (+0530)
Subject: ath9k_hw: Fix possible OOB array indexing in gen_timer_index[] on 64-bit
X-Git-Tag: firefly_0821_release~11625^2~433
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=a6d8cc616a9058b2e08776f971febf5c84534551;p=firefly-linux-kernel-4.4.55.git

ath9k_hw: Fix possible OOB array indexing in gen_timer_index[] on 64-bit

commit c90017dd43f0cdb42134b9229761e8be02bcd524 upstream.

debruijn32 (0x077CB531) is used to index gen_timer_index[]
which is an array of 32 u32. Having debruijn32 as unsigned
long on a 64-bit platform  will result in indexing more than 32
in gen_timer_index[] and there by causing a crash. Make it
unsigned to fix this issue.

Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---

diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
index 57f14630e2a1..ff4383bb3ac3 100644
--- a/drivers/net/wireless/ath/ath9k/hw.h
+++ b/drivers/net/wireless/ath/ath9k/hw.h
@@ -408,7 +408,7 @@ struct ath9k_hw_version {
  * Using de Bruijin sequence to to look up 1's index in a 32 bit number
  * debruijn32 = 0000 0111 0111 1100 1011 0101 0011 0001
  */
-#define debruijn32 0x077CB531UL
+#define debruijn32 0x077CB531U
 
 struct ath_gen_timer_configuration {
 	u32 next_addr;