]>
Commit | Line | Data |
---|---|---|
2cb7cef9 BS |
1 | Subject: Bug 431380 – UPT-LTE: mem dlpar remove generates oops(.pseries_remove_lmb+0x28/0xb8) |
2 | From: Nathan Fontenot <nfont@austin.ibm.com> | |
3 | References: 431380 - LTC48430 | |
4 | ||
5 | ||
6 | Testing hotplug memory remove has revealed that we can oops in | |
7 | pseries_lmb_remove(). The incorrect shift causes a NULL pointer | |
8 | dereference in the page_zone() inline routine. | |
9 | ||
10 | I have only been able to reproduce the oops on kernels with large pages | |
11 | enabled. | |
12 | ||
13 | Tested on Power5 and Power6 with and without large pages enabled. | |
14 | ||
15 | ||
16 | Signed-off-by: Olaf Hering <olh@suse.de> | |
17 | ||
18 | --- | |
19 | arch/powerpc/platforms/pseries/hotplug-memory.c | 2 +- | |
20 | 1 file changed, 1 insertion(+), 1 deletion(-) | |
21 | ||
22 | --- a/arch/powerpc/platforms/pseries/hotplug-memory.c | |
23 | +++ b/arch/powerpc/platforms/pseries/hotplug-memory.c | |
24 | @@ -21,7 +21,7 @@ static int pseries_remove_lmb(unsigned l | |
25 | struct zone *zone; | |
26 | int ret; | |
27 | ||
28 | - start_pfn = base >> PFN_SECTION_SHIFT; | |
29 | + start_pfn = base >> PAGE_SHIFT; | |
30 | zone = page_zone(pfn_to_page(start_pfn)); | |
31 | ||
32 | /* |