diff options
author | Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> | 2009-03-04 19:10:44 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-03-05 08:53:10 -0500 |
commit | dc16ecf7fd1fad7436832121435d4926a81d469e (patch) | |
tree | f33060fc5aec6105c624ad660711f87bc8c074c9 /arch/x86/mm/ioremap.c | |
parent | a964e33c5d7c0ea46376d20c2f02edf01c9db251 (diff) |
x86-32: use specific __vmalloc_start_set flag in __virt_addr_valid
Rather than relying on the ever-unreliable system_state,
add a specific __vmalloc_start_set flag to indicate whether
the vmalloc area has meaningful boundaries yet, and use that
in x86-32's __phys_addr and __virt_addr_valid.
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/mm/ioremap.c')
-rw-r--r-- | arch/x86/mm/ioremap.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c index 433f7bd4648a..a23ca5b5bf24 100644 --- a/arch/x86/mm/ioremap.c +++ b/arch/x86/mm/ioremap.c | |||
@@ -76,10 +76,9 @@ static inline int phys_addr_valid(unsigned long addr) | |||
76 | #ifdef CONFIG_DEBUG_VIRTUAL | 76 | #ifdef CONFIG_DEBUG_VIRTUAL |
77 | unsigned long __phys_addr(unsigned long x) | 77 | unsigned long __phys_addr(unsigned long x) |
78 | { | 78 | { |
79 | /* VMALLOC_* aren't constants; not available at the boot time */ | 79 | /* VMALLOC_* aren't constants */ |
80 | VIRTUAL_BUG_ON(x < PAGE_OFFSET); | 80 | VIRTUAL_BUG_ON(x < PAGE_OFFSET); |
81 | VIRTUAL_BUG_ON(system_state != SYSTEM_BOOTING && | 81 | VIRTUAL_BUG_ON(__vmalloc_start_set && is_vmalloc_addr((void *) x)); |
82 | is_vmalloc_addr((void *) x)); | ||
83 | return x - PAGE_OFFSET; | 82 | return x - PAGE_OFFSET; |
84 | } | 83 | } |
85 | EXPORT_SYMBOL(__phys_addr); | 84 | EXPORT_SYMBOL(__phys_addr); |
@@ -89,7 +88,7 @@ bool __virt_addr_valid(unsigned long x) | |||
89 | { | 88 | { |
90 | if (x < PAGE_OFFSET) | 89 | if (x < PAGE_OFFSET) |
91 | return false; | 90 | return false; |
92 | if (system_state != SYSTEM_BOOTING && is_vmalloc_addr((void *) x)) | 91 | if (__vmalloc_start_set && is_vmalloc_addr((void *) x)) |
93 | return false; | 92 | return false; |
94 | return pfn_valid((x - PAGE_OFFSET) >> PAGE_SHIFT); | 93 | return pfn_valid((x - PAGE_OFFSET) >> PAGE_SHIFT); |
95 | } | 94 | } |