From: Yinghai Lu <yhlu.kernel@gmail.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: [PATCH] x86: move fix mapping page table range early
Date: Wed, 25 Jun 2008 21:51:28 -0700 [thread overview]
Message-ID: <200806252151.29028.yhlu.kernel@gmail.com> (raw)
In-Reply-To: <200806251748.06743.yhlu.kernel@gmail.com>
do that in init_memory_mapping
also remove one init_ohci1394_dma_on_all_controllers
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
---
arch/x86/kernel/setup.c | 23 +++++++++--------------
arch/x86/mm/init_32.c | 15 +++++++++++----
2 files changed, 20 insertions(+), 18 deletions(-)
Index: linux-2.6/arch/x86/kernel/setup.c
===================================================================
--- linux-2.6.orig/arch/x86/kernel/setup.c
+++ linux-2.6/arch/x86/kernel/setup.c
@@ -615,11 +615,6 @@ void __init setup_arch(char **cmdline_p)
#ifdef CONFIG_X86_32
probe_roms();
-#else
-# ifdef CONFIG_PROVIDE_OHCI1394_DMA_INIT
- if (init_ohci1394_dma_early)
- init_ohci1394_dma_on_all_controllers();
-# endif
#endif
/* after parse_early_param, so could debug it */
@@ -679,6 +674,15 @@ void __init setup_arch(char **cmdline_p)
#endif
init_memory_mapping(0, (max_low_pfn << PAGE_SHIFT));
+ /*
+ * NOTE: On x86-32, only from this point on, fixmaps are ready for use.
+ */
+
+#ifdef CONFIG_PROVIDE_OHCI1394_DMA_INIT
+ if (init_ohci1394_dma_early)
+ init_ohci1394_dma_on_all_controllers();
+#endif
+
reserve_initrd();
#ifdef CONFIG_X86_64
@@ -746,15 +750,6 @@ void __init setup_arch(char **cmdline_p)
map_vsyscall();
#endif
- /*
- * NOTE: On x86-32, only from this point on, fixmaps are ready for use.
- */
-
-#if defined(CONFIG_PROVIDE_OHCI1394_DMA_INIT) && defined(CONFIG_X86_32)
- if (init_ohci1394_dma_early)
- init_ohci1394_dma_on_all_controllers();
-#endif
-
#ifdef CONFIG_X86_GENERICARCH
generic_apic_probe();
#endif
Index: linux-2.6/arch/x86/mm/init_32.c
===================================================================
--- linux-2.6.orig/arch/x86/mm/init_32.c
+++ linux-2.6/arch/x86/mm/init_32.c
@@ -442,13 +442,10 @@ void __init native_pagetable_setup_done(
* be partially populated, and so it avoids stomping on any existing
* mappings.
*/
-static void __init pagetable_init(void)
+static void __init early_ioremap_page_table_range_init(pgd_t *pgd_base)
{
- pgd_t *pgd_base = swapper_pg_dir;
unsigned long vaddr, end;
- paravirt_pagetable_setup_start(pgd_base);
-
/*
* Fixed mappings, only the page table structure has to be
* created - mappings will be set by set_fixmap():
@@ -458,6 +455,13 @@ static void __init pagetable_init(void)
end = (FIXADDR_TOP + PMD_SIZE - 1) & PMD_MASK;
page_table_range_init(vaddr, end, pgd_base);
early_ioremap_reset();
+}
+
+static void __init pagetable_init(void)
+{
+ pgd_t *pgd_base = swapper_pg_dir;
+
+ paravirt_pagetable_setup_start(pgd_base);
permanent_kmaps_init(pgd_base);
@@ -783,6 +787,8 @@ unsigned long __init_refok init_memory_m
kernel_physical_mapping_init(pgd_base, start, end);
+ early_ioremap_page_table_range_init(pgd_base);
+
load_cr3(swapper_pg_dir);
__flush_tlb_all();
@@ -794,6 +800,7 @@ unsigned long __init_refok init_memory_m
return end >> PAGE_SHIFT;
}
+
/*
* paging_init() sets up the page tables - note that the first 8MB are
* already mapped by head.S.
next prev parent reply other threads:[~2008-06-26 4:50 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-26 0:48 [PATCH 00/16] x86: merge setup_32/64.c Yinghai Lu
2008-06-26 0:49 ` [PATCH 03/16] x86: update reserve_initrd to support 64bit Yinghai Lu
2008-06-26 0:50 ` [PATCH 04/16] x86: put global variable for 32bit all together Yinghai Lu
2008-06-26 0:51 ` [PATCH 05/16] x86: add extra includes for 64bit support Yinghai Lu
2008-06-26 0:52 ` [PATCH 06/16] x86: merge 64bit setup_arch into setup_32 Yinghai Lu
2008-06-26 0:53 ` [PATCH 07/16] x86: space to tab in setup_arch Yinghai Lu
2008-06-26 0:54 ` [PATCH 08/16] x86: rename setup_32.c to setup.c Yinghai Lu
2008-06-26 0:55 ` [PATCH 09/16] x86: move boot_params back " Yinghai Lu
2008-06-26 0:56 ` [PATCH 10/16] x86: move parse_setup_data " Yinghai Lu
2008-06-26 0:57 ` [PATCH 11/16] x86: move back crashkernel " Yinghai Lu
2008-06-26 0:58 ` [PATCH 12/16] x86: move reserve_standard_io_resources " Yinghai Lu
2008-06-26 0:58 ` [PATCH 13/16] x86: move parse elfvorehdr " Yinghai Lu
2008-06-26 0:59 ` [PATCH 14/16] x86: make x86_find_smp_config depends on 64 bit too Yinghai Lu
2008-06-26 1:00 ` [PATCH 15/16] x86: change some functions in setup.c to static Yinghai Lu
2008-06-26 1:02 ` [PATCH 16/16] x86: we only have init_pg_tables_end for 32bit Yinghai Lu
2008-06-26 2:52 ` [PATCH] x86: clean up ARCH_SETUP Yinghai Lu
2008-06-26 13:26 ` Ingo Molnar
2008-06-26 4:51 ` Yinghai Lu [this message]
2008-06-26 13:27 ` [PATCH] x86: move fix mapping page table range early Ingo Molnar
2008-06-27 6:17 ` [PATCH] x86: early res print out alignment Yinghai Lu
2008-06-27 8:41 ` [PATCH] x86: let setup_arch call init_apic_mappings for 32bit Yinghai Lu
2008-06-28 6:37 ` Ingo Molnar
2008-06-27 22:36 ` [PATCH] x86: early res print out alignment v2 Yinghai Lu
2008-06-28 6:36 ` Ingo Molnar
2008-06-29 4:42 ` Yinghai Lu
2008-06-27 22:38 ` [PATCH] x86: fix init_memory_mapping over boundary Yinghai Lu
2008-06-28 5:47 ` [PATCH] x86: fix init_memory_mapping over boundary v2 Yinghai Lu
2008-06-28 6:35 ` Ingo Molnar
2008-06-28 7:01 ` Yinghai Lu
2008-06-28 7:02 ` Ingo Molnar
2008-06-28 7:19 ` Yinghai Lu
2008-06-28 7:21 ` Ingo Molnar
2008-06-28 7:42 ` Yinghai Lu
2008-06-28 7:22 ` Yinghai Lu
2008-06-28 7:47 ` Ingo Molnar
2008-06-28 10:30 ` Yinghai Lu
2008-06-28 11:07 ` Ingo Molnar
2008-06-28 17:38 ` Jeremy Fitzhardinge
2008-06-28 20:33 ` Yinghai Lu
2008-06-29 0:49 ` [PATCH] x86: fix init_memory_mapping over boundary v4 Yinghai Lu
2008-06-29 2:22 ` Jeremy Fitzhardinge
2008-06-29 4:40 ` Yinghai Lu
2008-06-29 5:18 ` Jeremy Fitzhardinge
2008-06-29 7:08 ` Ingo Molnar
2008-06-29 7:30 ` Yinghai Lu
2008-06-30 8:33 ` Ingo Molnar
2008-06-29 7:39 ` [PATCH] x86: fix init_memory_mapping over boundary v4 - diff to v3 Yinghai Lu
2008-06-29 9:48 ` Ingo Molnar
2008-06-29 0:49 ` [PATCH] x86: fix warning in e820_reserve_resources with 32bit Yinghai Lu
2008-06-29 9:49 ` Ingo Molnar
2008-06-26 9:47 ` [PATCH 00/16] x86: merge setup_32/64.c Ingo Molnar
2008-06-26 10:02 ` Ingo Molnar
2008-06-26 10:06 ` Yinghai Lu
2008-06-26 11:01 ` Ingo Molnar
2008-06-27 2:51 ` Huang, Ying
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200806252151.29028.yhlu.kernel@gmail.com \
--to=yhlu.kernel@gmail.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.