aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/power
diff options
context:
space:
mode:
authorVivek Goyal <vgoyal@in.ibm.com>2007-05-02 13:27:07 -0400
committerAndi Kleen <andi@basil.nowhere.org>2007-05-02 13:27:07 -0400
commit49c3df6aaa6a51071fc135273d1a2515d019099f (patch)
treecbd2fb611d14c9c859f7f417dfafae36ebebe29b /kernel/power
parentcfd243d4af7c7f8f52f5cb99d3932d9074b039ff (diff)
[PATCH] x86: Move swsusp __pa() dependent code to arch portion
o __pa() should be used only on kernel linearly mapped virtual addresses and not on kernel text and data addresses. o Hibernation code needs to determine the physical address associated with kernel symbol to mark a section boundary which contains pages which don't have to be saved and restored during hibernate/resume operation. o Move this piece of code in arch dependent section. So that architectures which don't have kernel text/data mapped into kernel linearly mapped region can come up with their own ways of determining physical addresses associated with a kernel text. Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com> Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'kernel/power')
-rw-r--r--kernel/power/power.h5
-rw-r--r--kernel/power/snapshot.c11
2 files changed, 2 insertions, 14 deletions
diff --git a/kernel/power/power.h b/kernel/power/power.h
index eb461b816bf4..1c6eef8df4ad 100644
--- a/kernel/power/power.h
+++ b/kernel/power/power.h
@@ -23,6 +23,8 @@ static inline int pm_suspend_disk(void)
23} 23}
24#endif 24#endif
25 25
26extern int pfn_is_nosave(unsigned long);
27
26extern struct mutex pm_mutex; 28extern struct mutex pm_mutex;
27 29
28#define power_attr(_name) \ 30#define power_attr(_name) \
@@ -37,9 +39,6 @@ static struct subsys_attribute _name##_attr = { \
37 39
38extern struct subsystem power_subsys; 40extern struct subsystem power_subsys;
39 41
40/* References to section boundaries */
41extern const void __nosave_begin, __nosave_end;
42
43/* Preferred image size in bytes (default 500 MB) */ 42/* Preferred image size in bytes (default 500 MB) */
44extern unsigned long image_size; 43extern unsigned long image_size;
45extern int in_suspend; 44extern int in_suspend;
diff --git a/kernel/power/snapshot.c b/kernel/power/snapshot.c
index fc53ad068128..704c25a3ffec 100644
--- a/kernel/power/snapshot.c
+++ b/kernel/power/snapshot.c
@@ -651,17 +651,6 @@ static inline unsigned int count_highmem_pages(void) { return 0; }
651#endif /* CONFIG_HIGHMEM */ 651#endif /* CONFIG_HIGHMEM */
652 652
653/** 653/**
654 * pfn_is_nosave - check if given pfn is in the 'nosave' section
655 */
656
657static inline int pfn_is_nosave(unsigned long pfn)
658{
659 unsigned long nosave_begin_pfn = __pa(&__nosave_begin) >> PAGE_SHIFT;
660 unsigned long nosave_end_pfn = PAGE_ALIGN(__pa(&__nosave_end)) >> PAGE_SHIFT;
661 return (pfn >= nosave_begin_pfn) && (pfn < nosave_end_pfn);
662}
663
664/**
665 * saveable - Determine whether a non-highmem page should be included in 654 * saveable - Determine whether a non-highmem page should be included in
666 * the suspend image. 655 * the suspend image.
667 * 656 *