Merge branch 'x86/urgent' into x86/core
authorIngo Molnar <mingo@elte.hu>
Thu, 5 Mar 2009 20:48:31 +0000 (21:48 +0100)
committerIngo Molnar <mingo@elte.hu>
Thu, 5 Mar 2009 20:48:50 +0000 (21:48 +0100)
Conflicts:
arch/x86/include/asm/fixmap_64.h
Semantic merge:
arch/x86/include/asm/fixmap.h

Signed-off-by: Ingo Molnar <mingo@elte.hu>
1  2 
Makefile
arch/x86/include/asm/fixmap.h
arch/x86/kernel/efi.c
arch/x86/kernel/efi_64.c
arch/x86/kernel/reboot.c
arch/x86/kernel/setup.c
include/linux/sched.h
init/main.c
kernel/sched.c

diff --cc Makefile
Simple merge
index dca8f03da5b29574af570717c435ea3a5320f22e,23696d44a0af85fb2d3bf407d8b44def4874bf81..63a79c77d220058f74eb81a70e70e3f3721be76d
  #ifndef _ASM_X86_FIXMAP_H
  #define _ASM_X86_FIXMAP_H
  
- #ifdef CONFIG_EFI
- #include <asm/efi.h>
- #endif
 +#ifndef __ASSEMBLY__
 +#include <linux/kernel.h>
 +#include <asm/acpi.h>
 +#include <asm/apicdef.h>
 +#include <asm/page.h>
 +#ifdef CONFIG_X86_32
 +#include <linux/threads.h>
 +#include <asm/kmap_types.h>
 +#else
 +#include <asm/vsyscall.h>
 +#endif
 +
 +/*
 + * We can't declare FIXADDR_TOP as variable for x86_64 because vsyscall
 + * uses fixmaps that relies on FIXADDR_TOP for proper address calculation.
 + * Because of this, FIXADDR_TOP x86 integration was left as later work.
 + */
 +#ifdef CONFIG_X86_32
 +/* used by vmalloc.c, vsyscall.lds.S.
 + *
 + * Leave one empty page between vmalloc'ed areas and
 + * the start of the fixmap.
 + */
 +extern unsigned long __FIXADDR_TOP;
 +#define FIXADDR_TOP   ((unsigned long)__FIXADDR_TOP)
 +
 +#define FIXADDR_USER_START     __fix_to_virt(FIX_VDSO)
 +#define FIXADDR_USER_END       __fix_to_virt(FIX_VDSO - 1)
 +#else
 +#define FIXADDR_TOP   (VSYSCALL_END-PAGE_SIZE)
 +
 +/* Only covers 32bit vsyscalls currently. Need another set for 64bit. */
 +#define FIXADDR_USER_START    ((unsigned long)VSYSCALL32_VSYSCALL)
 +#define FIXADDR_USER_END      (FIXADDR_USER_START + PAGE_SIZE)
 +#endif
 +
 +
 +/*
 + * Here we define all the compile-time 'special' virtual
 + * addresses. The point is to have a constant address at
 + * compile time, but to set the physical address only
 + * in the boot process.
 + * for x86_32: We allocate these special addresses
 + * from the end of virtual memory (0xfffff000) backwards.
 + * Also this lets us do fail-safe vmalloc(), we
 + * can guarantee that these special addresses and
 + * vmalloc()-ed addresses never overlap.
 + *
 + * These 'compile-time allocated' memory buffers are
 + * fixed-size 4k pages (or larger if used with an increment
 + * higher than 1). Use set_fixmap(idx,phys) to associate
 + * physical memory with fixmap indices.
 + *
 + * TLB entries of such buffers will not be flushed across
 + * task switches.
 + */
 +enum fixed_addresses {
  #ifdef CONFIG_X86_32
 -# include "fixmap_32.h"
 +      FIX_HOLE,
 +      FIX_VDSO,
  #else
 -# include "fixmap_64.h"
 +      VSYSCALL_LAST_PAGE,
 +      VSYSCALL_FIRST_PAGE = VSYSCALL_LAST_PAGE
 +                          + ((VSYSCALL_END-VSYSCALL_START) >> PAGE_SHIFT) - 1,
 +      VSYSCALL_HPET,
  #endif
- #ifdef CONFIG_X86_64
- #ifdef CONFIG_EFI
-       FIX_EFI_IO_MAP_LAST_PAGE,
-       FIX_EFI_IO_MAP_FIRST_PAGE = FIX_EFI_IO_MAP_LAST_PAGE
-                                 + MAX_EFI_IO_PAGES - 1,
- #endif
- #endif
 +      FIX_DBGP_BASE,
 +      FIX_EARLYCON_MEM_BASE,
 +#ifdef CONFIG_X86_LOCAL_APIC
 +      FIX_APIC_BASE,  /* local (CPU) APIC) -- required for SMP or not */
 +#endif
 +#ifdef CONFIG_X86_IO_APIC
 +      FIX_IO_APIC_BASE_0,
 +      FIX_IO_APIC_BASE_END = FIX_IO_APIC_BASE_0 + MAX_IO_APICS - 1,
 +#endif
 +#ifdef CONFIG_X86_VISWS_APIC
 +      FIX_CO_CPU,     /* Cobalt timer */
 +      FIX_CO_APIC,    /* Cobalt APIC Redirection Table */
 +      FIX_LI_PCIA,    /* Lithium PCI Bridge A */
 +      FIX_LI_PCIB,    /* Lithium PCI Bridge B */
 +#endif
 +#ifdef CONFIG_X86_F00F_BUG
 +      FIX_F00F_IDT,   /* Virtual mapping for IDT */
 +#endif
 +#ifdef CONFIG_X86_CYCLONE_TIMER
 +      FIX_CYCLONE_TIMER, /*cyclone timer register*/
 +#endif
 +#ifdef CONFIG_X86_32
 +      FIX_KMAP_BEGIN, /* reserved pte's for temporary kernel mappings */
 +      FIX_KMAP_END = FIX_KMAP_BEGIN+(KM_TYPE_NR*NR_CPUS)-1,
 +#ifdef CONFIG_PCI_MMCONFIG
 +      FIX_PCIE_MCFG,
 +#endif
 +#endif
 +#ifdef CONFIG_PARAVIRT
 +      FIX_PARAVIRT_BOOTMAP,
 +#endif
 +      __end_of_permanent_fixed_addresses,
 +#ifdef CONFIG_PROVIDE_OHCI1394_DMA_INIT
 +      FIX_OHCI1394_BASE,
 +#endif
 +      /*
 +       * 256 temporary boot-time mappings, used by early_ioremap(),
 +       * before ioremap() is functional.
 +       *
 +       * We round it up to the next 256 pages boundary so that we
 +       * can have a single pgd entry and a single pte table:
 +       */
 +#define NR_FIX_BTMAPS         64
 +#define FIX_BTMAPS_SLOTS      4
 +      FIX_BTMAP_END = __end_of_permanent_fixed_addresses + 256 -
 +                      (__end_of_permanent_fixed_addresses & 255),
 +      FIX_BTMAP_BEGIN = FIX_BTMAP_END + NR_FIX_BTMAPS*FIX_BTMAPS_SLOTS - 1,
 +#ifdef CONFIG_X86_32
 +      FIX_WP_TEST,
 +#endif
 +      __end_of_fixed_addresses
 +};
 +
 +
 +extern void reserve_top_address(unsigned long reserve);
 +
 +#define FIXADDR_SIZE  (__end_of_permanent_fixed_addresses << PAGE_SHIFT)
 +#define FIXADDR_BOOT_SIZE     (__end_of_fixed_addresses << PAGE_SHIFT)
 +#define FIXADDR_START         (FIXADDR_TOP - FIXADDR_SIZE)
 +#define FIXADDR_BOOT_START    (FIXADDR_TOP - FIXADDR_BOOT_SIZE)
  
  extern int fixmaps_set;
  
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc init/main.c
Simple merge
diff --cc kernel/sched.c
Simple merge