diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-09 15:56:01 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-09 15:56:01 -0400 |
commit | aabded9c3aab5160ae2ca3dd1fa0fa37f3d510e4 (patch) | |
tree | 8544d546735bcb975b8dec296eb9b6dc6531fb2a /kernel/power/snapshot.c | |
parent | 9a9136e270af14da506f66bcafcc506b86a86498 (diff) | |
parent | f1a1eb299a8422c3e8d41753095bec44b2493398 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
* 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
[POWERPC] Further fixes for the removal of 4level-fixup hack from ppc32
[POWERPC] EEH: log all PCI-X and PCI-E AER registers
[POWERPC] EEH: capture and log pci state on error
[POWERPC] EEH: Split up long error msg
[POWERPC] EEH: log error only after driver notification.
[POWERPC] fsl_soc: Make mac_addr const in fs_enet_of_init().
[POWERPC] Don't use SLAB/SLUB for PTE pages
[POWERPC] Spufs support for 64K LS mappings on 4K kernels
[POWERPC] Add ability to 4K kernel to hash in 64K pages
[POWERPC] Introduce address space "slices"
[POWERPC] Small fixes & cleanups in segment page size demotion
[POWERPC] iSeries: Make HVC_ISERIES the default
[POWERPC] iSeries: suppress build warning in lparmap.c
[POWERPC] Mark pages that don't exist as nosave
[POWERPC] swsusp: Introduce register_nosave_region_late
Diffstat (limited to 'kernel/power/snapshot.c')
-rw-r--r-- | kernel/power/snapshot.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/kernel/power/snapshot.c b/kernel/power/snapshot.c index 48383ea72290..a3b7854b8f7c 100644 --- a/kernel/power/snapshot.c +++ b/kernel/power/snapshot.c | |||
@@ -607,7 +607,8 @@ static LIST_HEAD(nosave_regions); | |||
607 | */ | 607 | */ |
608 | 608 | ||
609 | void __init | 609 | void __init |
610 | register_nosave_region(unsigned long start_pfn, unsigned long end_pfn) | 610 | __register_nosave_region(unsigned long start_pfn, unsigned long end_pfn, |
611 | int use_kmalloc) | ||
611 | { | 612 | { |
612 | struct nosave_region *region; | 613 | struct nosave_region *region; |
613 | 614 | ||
@@ -623,8 +624,13 @@ register_nosave_region(unsigned long start_pfn, unsigned long end_pfn) | |||
623 | goto Report; | 624 | goto Report; |
624 | } | 625 | } |
625 | } | 626 | } |
626 | /* This allocation cannot fail */ | 627 | if (use_kmalloc) { |
627 | region = alloc_bootmem_low(sizeof(struct nosave_region)); | 628 | /* during init, this shouldn't fail */ |
629 | region = kmalloc(sizeof(struct nosave_region), GFP_KERNEL); | ||
630 | BUG_ON(!region); | ||
631 | } else | ||
632 | /* This allocation cannot fail */ | ||
633 | region = alloc_bootmem_low(sizeof(struct nosave_region)); | ||
628 | region->start_pfn = start_pfn; | 634 | region->start_pfn = start_pfn; |
629 | region->end_pfn = end_pfn; | 635 | region->end_pfn = end_pfn; |
630 | list_add_tail(®ion->list, &nosave_regions); | 636 | list_add_tail(®ion->list, &nosave_regions); |