[PATCH 3/5] x86/MTRR: Remove wrong address check in __mtrr_type_lookup()

From: Borislav Petkov
Date: Mon May 11 2015 - 04:18:20 EST

From: Toshi Kani <toshi.kani@xxxxxx>

__mtrr_type_lookup() checks MTRR fixed ranges when mtrr_state.have_fixed
is set and start is less than 0x100000. However, the 'else if (start
< 0x1000000)' in the code checks with a wrong address as it has an
extra-zero in the address. The code still runs correctly as this check
is meaningless, though.

This patch replaces the wrong address check with 'else' with no

Signed-off-by: Toshi Kani <toshi.kani@xxxxxx>
Cc: linux-mm <linux-mm@xxxxxxxxx>
Cc: x86-ml <x86@xxxxxxxxxx>
Cc: dave.hansen@xxxxxxxxx
Cc: Elliott@xxxxxx
Cc: pebolle@xxxxxxxxxx
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: mingo@xxxxxxxxxx
Link: http://lkml.kernel.org/r/1427234921-19737-4-git-send-email-toshi.kani@xxxxxx
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
arch/x86/kernel/cpu/mtrr/generic.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kernel/cpu/mtrr/generic.c b/arch/x86/kernel/cpu/mtrr/generic.c
index 7d74f7b3c6ba..5b239679cfc9 100644
--- a/arch/x86/kernel/cpu/mtrr/generic.c
+++ b/arch/x86/kernel/cpu/mtrr/generic.c
@@ -137,7 +137,7 @@ static u8 __mtrr_type_lookup(u64 start, u64 end, u64 *partial_end, int *repeat)
idx = 1 * 8;
idx += ((start - 0x80000) >> 14);
return mtrr_state.fixed_ranges[idx];
- } else if (start < 0x1000000) {
+ } else {
idx = 3 * 8;
idx += ((start - 0xC0000) >> 12);
return mtrr_state.fixed_ranges[idx];

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/