diff --git a/arch/x86/include/asm/e820.h b/arch/x86/include/asm/e820.h
index 68b4e0ec19509410fb5d75d6d00663f259ef0988..761249e396fe46465fbd949d0379d49ce1936369 100644
--- a/arch/x86/include/asm/e820.h
+++ b/arch/x86/include/asm/e820.h
@@ -133,9 +133,13 @@ extern void e820_reserve_resources_late(void);
 extern void setup_memory_map(void);
 extern char *default_machine_specific_memory_setup(void);
 
+/*
+ * Returns true iff the specified range [s,e) is completely contained inside
+ * the ISA region.
+ */
 static inline bool is_ISA_range(u64 s, u64 e)
 {
-	return s >= ISA_START_ADDRESS && e < ISA_END_ADDRESS;
+	return s >= ISA_START_ADDRESS && e <= ISA_END_ADDRESS;
 }
 
 #endif /* __KERNEL__ */
diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c
index 597a47b1cec6b1ad6d90a1247e56b0c3fa5297e6..1e09417c992f61dcf207cf2a774238b1a31aa79a 100644
--- a/arch/x86/kernel/apic/x2apic_uv_x.c
+++ b/arch/x86/kernel/apic/x2apic_uv_x.c
@@ -39,7 +39,7 @@ static u64 gru_start_paddr, gru_end_paddr;
 
 static inline bool is_GRU_range(u64 start, u64 end)
 {
-	return start >= gru_start_paddr && end < gru_end_paddr;
+	return start >= gru_start_paddr && end <= gru_end_paddr;
 }
 
 static bool uv_is_untracked_pat_range(u64 start, u64 end)