Re: [patch] Fix BIOS-e820 end address

Previous thread: [RFC][Intel-IOMMU] Fix for IOMMU early crash by Keshavamurthy, Anil S on Saturday, September 8, 2007 - 1:05 pm. (23 messages)

Next thread: [PATCH] crypto: blkcipher_get_spot() handling of buffer at end of page by Bob Gilligan on Friday, September 7, 2007 - 5:09 pm. (7 messages)
From: Keshavamurthy, Anil S
Date: Saturday, September 8, 2007 - 1:50 pm

Subject: [patch] Fix BIOS-e820 end address

--snip of boot message--
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)
 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000007fe8cc00 (usable)
----end snip---

As you see from above the address 0000000000100000 is both
shown as reserved and usable which is confusing.

This patch fixes the BIOS-e820 end address.

Signed-off-by: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>

---
 arch/i386/kernel/e820.c   |    2 +-
 arch/x86_64/kernel/e820.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Index: work/arch/i386/kernel/e820.c
===================================================================
--- work.orig/arch/i386/kernel/e820.c	2007-09-08 12:00:33.000000000 -0700
+++ work/arch/i386/kernel/e820.c	2007-09-08 13:39:12.000000000 -0700
@@ -753,7 +753,7 @@
 	for (i = 0; i < e820.nr_map; i++) {
 		printk(" %s: %016Lx - %016Lx ", who,
 			e820.map[i].addr,
-			e820.map[i].addr + e820.map[i].size);
+			e820.map[i].addr + e820.map[i].size - 1);
 		switch (e820.map[i].type) {
 		case E820_RAM:	printk("(usable)\n");
 				break;
Index: work/arch/x86_64/kernel/e820.c
===================================================================
--- work.orig/arch/x86_64/kernel/e820.c	2007-09-08 12:00:46.000000000 -0700
+++ work/arch/x86_64/kernel/e820.c	2007-09-08 13:38:57.000000000 -0700
@@ -368,7 +368,7 @@
 	for (i = 0; i < e820.nr_map; i++) {
 		printk(KERN_INFO " %s: %016Lx - %016Lx ", who,
 			(unsigned long long) e820.map[i].addr,
-			(unsigned long long) (e820.map[i].addr + e820.map[i].size));
+			(unsigned long long) (e820.map[i].addr + e820.map[i].size - 1));
 		switch (e820.map[i].type) {
 		case E820_RAM:	printk("(usable)\n");
 				break;
-

From: Jan Engelhardt
Date: Saturday, September 8, 2007 - 12:05 am

If a segment should have size 0 (even possible?), your
patch makes it even more confusing.


	Jan
-- 
-

From: Jeremy Fitzhardinge
Date: Friday, September 14, 2007 - 2:00 pm

I think this is consistent with many other kernel interfaces (such as
/proc/X/maps) where the end address is taken to be exclusive: [0xf0000,
0x100000).

    J
-

From: Siddha, Suresh B
Date: Friday, September 14, 2007 - 2:31 pm

Andrew, Please disregard this patch. As Jermy, Jan pointed out, this
will cause more confusions. Thanks. 
-

From: Keshavamurthy, Anil S
Date: Friday, September 14, 2007 - 2:31 pm

I agree, we can discard my patch.

-Anil
-

Previous thread: [RFC][Intel-IOMMU] Fix for IOMMU early crash by Keshavamurthy, Anil S on Saturday, September 8, 2007 - 1:05 pm. (23 messages)

Next thread: [PATCH] crypto: blkcipher_get_spot() handling of buffer at end of page by Bob Gilligan on Friday, September 7, 2007 - 5:09 pm. (7 messages)