diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-02-26 06:30:42 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-02-26 06:30:42 +0100 |
commit | 13b2eda64d14d0a0c15c092664c7351ea58ea851 (patch) | |
tree | e0c82eb79a20f515f37ab3ffb9e5039b531eaa8c /arch/x86 | |
parent | a852cbfaaf8122827602027b1614971cfd832304 (diff) | |
parent | 55d8085671863fe4ee6a17b7814bd38180a44e1d (diff) |
Merge branch 'x86/urgent' into x86/core
Conflicts:
arch/x86/mach-voyager/voyager_smp.c
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/include/asm/iomap.h | 3 | ||||
-rw-r--r-- | arch/x86/mm/iomap_32.c | 18 | ||||
-rw-r--r-- | arch/x86/xen/enlighten.c | 3 |
3 files changed, 24 insertions, 0 deletions
diff --git a/arch/x86/include/asm/iomap.h b/arch/x86/include/asm/iomap.h index c1f06289b14..86af26091d6 100644 --- a/arch/x86/include/asm/iomap.h +++ b/arch/x86/include/asm/iomap.h @@ -23,6 +23,9 @@ #include <asm/pgtable.h> #include <asm/tlbflush.h> +int +is_io_mapping_possible(resource_size_t base, unsigned long size); + void * iomap_atomic_prot_pfn(unsigned long pfn, enum km_type type, pgprot_t prot); diff --git a/arch/x86/mm/iomap_32.c b/arch/x86/mm/iomap_32.c index ca53224fc56..6c2b1af1692 100644 --- a/arch/x86/mm/iomap_32.c +++ b/arch/x86/mm/iomap_32.c @@ -20,6 +20,24 @@ #include <asm/pat.h> #include <linux/module.h> +#ifdef CONFIG_X86_PAE +int +is_io_mapping_possible(resource_size_t base, unsigned long size) +{ + return 1; +} +#else +int +is_io_mapping_possible(resource_size_t base, unsigned long size) +{ + /* There is no way to map greater than 1 << 32 address without PAE */ + if (base + size > 0x100000000ULL) + return 0; + + return 1; +} +#endif + /* Map 'pfn' using fixed map 'type' and protections 'prot' */ void * diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c index 86497d5f44c..c52f4034c7f 100644 --- a/arch/x86/xen/enlighten.c +++ b/arch/x86/xen/enlighten.c @@ -940,6 +940,9 @@ asmlinkage void __init xen_start_kernel(void) possible map and a non-dummy shared_info. */ per_cpu(xen_vcpu, 0) = &HYPERVISOR_shared_info->vcpu_info[0]; + local_irq_disable(); + early_boot_irqs_off(); + xen_raw_console_write("mapping kernel into physical memory\n"); pgd = xen_setup_kernel_pagetable(pgd, xen_start_info->nr_pages); |