Skip to contentSkip to conversation

x86: remove wrong -1 in calling init_memory_mapping

PATCH Applied Yinghai Lu 2 participants 2 messages Oct 27, 2008 – Oct 28, 2008

Subsystems (2)
lore
Share & tools
lore

Yinghai Lu

author
#0 lore raw

PATCH 1/1 x86: remove wrong -1 in calling init_memory_mapping

From: Shaohua Li <[email protected]>

impact: make memory hot plug got last page mapped.

Shuahua Li found:
Round up address to a page, otherwise the last page isn't mapped.

No, I just did some experiments on a desktop for memory hotplug and this bug
triggered a crash in my test.
Yinghai's suggestion also fixed the bug. I just want to have safer method. Anyway, either approach is ok to me.

So acctually we don't need to round it.
just remove that extra -1

arch/x86/mm/init_64.c +1 -1
index d59e4c9..2884b17 100644
@@ -837,7 +837,7 @@ int arch_add_memory(int nid, u64 start, u64 size)
 	unsigned long nr_pages = size >> PAGE_SHIFT;
 	int ret;
 
-	last_mapped_pfn = init_memory_mapping(start, start + size-1);
+	last_mapped_pfn = init_memory_mapping(start, start + size);
 	if (last_mapped_pfn > max_pfn_mapped)
 		max_pfn_mapped = last_mapped_pfn;
 
Applied
#1 lore raw
Quoted 7 lines · Yinghai Lu

From: Shaohua Li <[email protected]>

impact: make memory hot plug got last page mapped.

Shuahua Li found:
Round up address to a page, otherwise the last page isn't mapped.

Quoted 8 lines

No, I just did some experiments on a desktop for memory hotplug and this bug
triggered a crash in my test.
Yinghai's suggestion also fixed the bug. I just want to have safer method. Anyway, either approach is ok to me.

So acctually we don't need to round it.
just remove that extra -1

applied to tip/x86/urgent, thanks guys!

Note, i changed the "Impact:" line. We try to use it to provide a single-line description of what practical impact a patch has. For example if it's a bugfix, we try to describe what type of bug effect it fixes. If it's a cleanup, we mark it as a cleanup. If it introduces a new feature or changes existing behavior to improve the code, we describe that.

There's no hard rules, so here are a few common examples:

Impact: fix crash with memory hotplug
Impact: cleanup
Impact: fix bootup crash on certain types of hardware
Impact: improve printk output
Impact: add (default-off) debug feature
Impact: make the implementation faster
Impact: cleanup (no object code changed)
Impact: change the implementation to be more robust
Impact: fix bootup hang on certain systems
Impact: add new system call
Impact: enable hardware feature and make use of it
Impact: fix rare crash under high DB load

etc. etc.

"Wrong" impact lines are the ones which just describe the change itself, not the general impact:

Impact: add +1 to condition
Impact: change foo() to call bar() as well
Impact: flush the TLB when tearing down a mapping
Impact: check for NULL

these are less useful because they just duplicate the information already available in the patch itself.

Ingo

----------------->

Quoted 1 line

From 60817c9b31ef7897d60bca2f384cbc316a3fdd8b Mon Sep 17 00:00:00 2001

From: Shaohua Li <[email protected]>
Date: Mon, 27 Oct 2008 13:03:18 -0700
Subject: [PATCH] x86, memory hotplug: remove wrong -1 in calling init_memory_mapping()

Impact: fix crash with memory hotplug

Shuahua Li found:

| I just did some experiments on a desktop for memory hotplug and this bug
| triggered a crash in my test.
|
| Yinghai's suggestion also fixed the bug.

We don't need to round it, just remove that extra -1

---
 arch/x86/mm/init_64.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
arch/x86/mm/init_64.c +1 -1
index c7a4c5a..f79a02f 100644
@@ -837,7 +837,7 @@ int arch_add_memory(int nid, u64 start, u64 size)
 	unsigned long nr_pages = size >> PAGE_SHIFT;
 	int ret;
 
-	last_mapped_pfn = init_memory_mapping(start, start + size-1);
+	last_mapped_pfn = init_memory_mapping(start, start + size);
 	if (last_mapped_pfn > max_pfn_mapped)
 		max_pfn_mapped = last_mapped_pfn;