diff options
author | Jeremy Fitzhardinge <jeremy@goop.org> | 2008-01-30 07:34:11 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:34:11 -0500 |
commit | e3ed910db221768f8fd6192b13373e17d61bcdf0 (patch) | |
tree | 67a5eed4709a4b1b38e952af5bfc0340f78703af /arch/x86/mm/fault.c | |
parent | fa28ba21cec24d3fa1279bcae7e5d5ff6224635a (diff) |
x86: use the same pgd_list for PAE and 64-bit
Use a standard list threaded through page->lru for maintaining the pgd
list on PAE. This is the same as 64-bit, and seems saner than using a
non-standard list via page->index.
Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/mm/fault.c')
-rw-r--r-- | arch/x86/mm/fault.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c index 72547a7e32c6..e28cc5277b16 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c | |||
@@ -907,10 +907,8 @@ do_sigbus: | |||
907 | force_sig_info_fault(SIGBUS, BUS_ADRERR, address, tsk); | 907 | force_sig_info_fault(SIGBUS, BUS_ADRERR, address, tsk); |
908 | } | 908 | } |
909 | 909 | ||
910 | #ifdef CONFIG_X86_64 | ||
911 | DEFINE_SPINLOCK(pgd_lock); | 910 | DEFINE_SPINLOCK(pgd_lock); |
912 | LIST_HEAD(pgd_list); | 911 | LIST_HEAD(pgd_list); |
913 | #endif | ||
914 | 912 | ||
915 | void vmalloc_sync_all(void) | 913 | void vmalloc_sync_all(void) |
916 | { | 914 | { |
@@ -935,13 +933,11 @@ void vmalloc_sync_all(void) | |||
935 | struct page *page; | 933 | struct page *page; |
936 | 934 | ||
937 | spin_lock_irqsave(&pgd_lock, flags); | 935 | spin_lock_irqsave(&pgd_lock, flags); |
938 | for (page = pgd_list; page; page = | 936 | list_for_each_entry(page, &pgd_list, lru) { |
939 | (struct page *)page->index) | ||
940 | if (!vmalloc_sync_one(page_address(page), | 937 | if (!vmalloc_sync_one(page_address(page), |
941 | address)) { | 938 | address)) |
942 | BUG_ON(page != pgd_list); | ||
943 | break; | 939 | break; |
944 | } | 940 | } |
945 | spin_unlock_irqrestore(&pgd_lock, flags); | 941 | spin_unlock_irqrestore(&pgd_lock, flags); |
946 | if (!page) | 942 | if (!page) |
947 | set_bit(pgd_index(address), insync); | 943 | set_bit(pgd_index(address), insync); |