06 Mar, 2009

4 commits


05 Mar, 2009

34 commits

  • Impact: cleanup, micro-optimization

    Pre-initialize boot_cpu_data.x86_phys_bits to a reasonable default
    to remove the use of system_state tests in __virt_addr_valid()
    and __phys_addr().

    Signed-off-by: Jeremy Fitzhardinge
    Signed-off-by: Ingo Molnar

    Jeremy Fitzhardinge
     
  • 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
    Signed-off-by: Ingo Molnar

    Jeremy Fitzhardinge
     
  • gcc 3.2.2 reports:

    In file included from /usr/src/all/linux-next/arch/x86/include/asm/page.h:8,
    from /usr/src/all/linux-next/arch/x86/include/asm/processor.h:18,
    from /usr/src/all/linux-next/arch/x86/include/asm/atomic_32.h:6,
    from /usr/src/all/linux-next/arch/x86/include/asm/atomic.h:2,
    from include/linux/crypto.h:20,
    from arch/x86/kernel/asm-offsets_32.c:7,
    from arch/x86/kernel/asm-offsets.c:2:
    /usr/src/all/linux-next/arch/x86/include/asm/page_types.h:54: warning: parameter has incomplete type
    /usr/src/all/linux-next/arch/x86/include/asm/page_types.h:56: warning: parameter has incomplete type
    In file included from /usr/src/all/linux-next/arch/x86/include/asm/page.h:8,
    from /usr/src/all/linux-next/arch/x86/include/asm/processor.h:18,
    from include/linux/prefetch.h:14,
    from include/linux/list.h:6,
    from include/linux/module.h:9,
    from init/main.c:13:
    /usr/src/all/linux-next/arch/x86/include/asm/page_types.h:54: warning: parameter has incomplete type
    /usr/src/all/linux-next/arch/x86/include/asm/page_types.h:56: warning: parameter has incomplete type

    This is a bogus warning, but moving the pat-related functions
    into asm/pat.h and including asm/pgtable_types.h should fix it.

    Signed-off-by: Jeremy Fitzhardinge
    Reported-by: Tetsuo Handa

    Signed-off-by: Ingo Molnar

    Jeremy Fitzhardinge
     
  • Impact: build fix

    Cc: Pekka Enberg
    Cc: Yinghai Lu
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Impact: cleanup

    Signed-off-by: Pekka Enberg
    Cc: Yinghai Lu
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Pekka Enberg
     
  • Impact: cleanup

    In preparation for moving the function declaration to a header file,
    unify 32-bit and 64-bit signatures.

    Signed-off-by: Pekka Enberg
    Cc: Yinghai Lu
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Pekka Enberg
     
  • Impact: cleanup

    The table_start, table_end, and table_top are too generic for global
    namespace so rename them to be more specific.

    Signed-off-by: Pekka Enberg
    Cc: Yinghai Lu
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Pekka Enberg
     
  • Impact: cleanup

    This patch moves the init_memory_mapping() function to common mm/init.c.

    Signed-off-by: Pekka Enberg
    Cc: Yinghai Lu
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Pekka Enberg
     
  • Impact: cleanup

    This patch adds an empty static inline init_gbpages() for the 32-bit
    version of init_memory_mapping() making both versions identical.

    Signed-off-by: Pekka Enberg
    Cc: Yinghai Lu
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Pekka Enberg
     
  • Impact: cleanup

    As a trivial preparation for moving common code to arc/x86/mm/init.c,
    ifdef the 32-bit and 64-bit versions of NR_RANGE_MR.

    Signed-off-by: Pekka Enberg
    Cc: Yinghai Lu
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Pekka Enberg
     
  • Impact: cleanup

    To reduce the diff between the 32-bit and 64-bit versions of
    init_memory_mapping(), ifdef configuration specific pfn setup
    code in the function.

    Signed-off-by: Pekka Enberg
    Cc: Yinghai Lu
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Pekka Enberg
     
  • Impact: cleanup

    To reduce the diff between the 32-bit and 64-bit versions of
    init_memory_mapping(), ifdef configuration specific setup code
    in the function.

    Signed-off-by: Pekka Enberg
    Cc: Yinghai Lu
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Pekka Enberg
     
  • Impact: cleanup

    This patch adds a sanity check to the 32-bit version of
    init_memory_mapping() to reduce the diff to the 64-bit version.

    Signed-off-by: Pekka Enberg
    Cc: Yinghai Lu
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Pekka Enberg
     
  • Impact: cleanup

    The 64-bit version of init_memory_mapping() uses the last mapped
    address returned from kernel_physical_mapping_init() whereas the
    32-bit version doesn't. This patch adds relevant ifdefs to both
    versions of the function to reduce the diff between them.

    Signed-off-by: Pekka Enberg
    Cc: Yinghai Lu
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Pekka Enberg
     
  • Impact: cleanup

    This patch renames after_init_bootmem to after_bootmem in
    mm/init_32.c to reduce the diff to the 64-bit version of of
    init_memory_mapping().

    Signed-off-by: Pekka Enberg
    Cc: Yinghai Lu
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Pekka Enberg
     
  • Impact: cleanup

    The save_mr() function already checks that start_pfn is less than
    end_pfn so we can remove the unnecessary check which reduces the
    diff between the 32-bit and the 64-bit versions of init_memory_mapping().

    Signed-off-by: Pekka Enberg
    Cc: Yinghai Lu
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Pekka Enberg
     
  • Impact: cleanup

    Enabling NX, PSE, and PGE are only required on 32-bit so ifdef them
    in both versions of the function.

    Signed-off-by: Pekka Enberg
    Cc: Yinghai Lu
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Pekka Enberg
     
  • Impact: cleanup

    This patch moves pgd_base out of init_memory_mapping() to reduce
    the diff between the 32-bit version and the 64-bit version of the
    function.

    Signed-off-by: Pekka Enberg
    Cc: Yinghai Lu
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Pekka Enberg
     
  • Impact: cleanup

    There are some minor differences between the 32-bit and 64-bit
    find_early_table_space() functions. This patch wraps those
    differences under CONFIG_X86_32 to make the function identical
    on both configurations.

    Signed-off-by: Pekka Enberg
    Cc: Yinghai Lu
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Pekka Enberg
     
  • Impact: cleanup

    To reduce the diff between the 32-bit and 64-bit versions of
    init_memory_mapping(), add gbpages support to the 32-bit version.

    Signed-off-by: Pekka Enberg
    Cc: Yinghai Lu
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Pekka Enberg
     
  • Impact: cleanup

    To reduce the diff between the 32-bit and 64-bit versions of
    init_memory_mapping(), fix up all trivial issues.

    Signed-off-by: Pekka Enberg
    Cc: Yinghai Lu
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Pekka Enberg
     
  • [ mingo: small edits and extensions. ]

    Signed-off-by: Yinghai Lu
    Cc: "Eric W. Biederman"
    Cc: Greg KH
    Cc: Randy Dunlap
    Cc: Alan Stern
    Cc: Sarah Sharp
    Cc: Andrew Morton
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Yinghai Lu
     
  • Impact: clean up

    Simplify the code, reuse some lines.
    Remove min_low_pfn reference, it is always 0

    Signed-off-by: Yinghai Lu
    Cc: Andrew Morton
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Yinghai Lu
     
  • Impact: cleanup

    The function is identical on 32-bit and 64-bit configurations so move it to the
    common mm/init.c file.

    Signed-off-by: Pekka Enberg
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Pekka Enberg
     
  • Dell XPS710 will hang on reboot. This is resolved by adding a quirk to
    set bios reboot.

    Signed-off-by: Leann Ogasawara
    Signed-off-by: Tim Gardner
    Cc: "manoj.iyer"
    Cc:
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Leann Ogasawara
     
  • Impact: save a bit of RAM

    Get the exact size for the reserve_bootmem() call.

    Signed-off-by: Yinghai Lu
    Cc: Andrew Morton
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Yinghai Lu
     
  • Impact: fix boot with mptable above max_low_mapped

    Try to use early_ioremap() to map MPC to make sure it works even it is
    at the end of ram.

    Signed-off-by: Yinghai Lu
    Cc: Andrew Morton
    LKML-Reference:
    Signed-off-by: Ingo Molnar
    Reported-and-tested-by: Kevin O'Connor

    Yinghai Lu
     
  • Impact: cleanup

    make code more readable and more like 64-bit

    Signed-off-by: Yinghai Lu
    Cc: Andrew Morton
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Yinghai Lu
     
  • Impact: fix panic on system 2g x4 sockets

    Found one system with 4 sockets and every sockets has 2g can not boot
    with numa32 because boot mem is crossing nodes.

    So try to have numa version of setup_bootmem_allocator().

    Signed-off-by: Yinghai Lu
    Cc: Andrew Morton
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Yinghai Lu
     
  • Impact: fix math-emu related crash while using GDB/ptrace

    init_fpu() calls finit to initialize a task's xstate, while finit always
    works on the current task. If we use PTRACE_GETFPREGS on another
    process and both processes did not already use floating point, we get
    a null pointer exception in finit.

    This patch creates a new function finit_task that takes a task_struct
    parameter. finit becomes a wrapper that simply calls finit_task with
    current. On the plus side this avoids many calls to get_current which
    would each resolve to an inline assembler mov instruction.

    An empty finit_task has been added to i387.h to avoid linker errors in
    case the compiler still emits the call in init_fpu when
    CONFIG_MATH_EMULATION is not defined.

    The declaration of finit in i387.h has been removed as the remaining
    code using this function gets its prototype from fpu_proto.h.

    Signed-off-by: Daniel Glöckner
    Cc: Suresh Siddha
    Cc: "Pallipadi Venkatesh"
    Cc: Arjan van de Ven
    Cc: Bill Metzenthen
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Daniel Glöckner
     
  • Conflicts:
    arch/x86/include/asm/fixmap_64.h
    Semantic merge:
    arch/x86/include/asm/fixmap.h

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Impact: Fix boot failure on EFI system with large runtime memory range

    Brian Maly reported that some EFI system with large runtime memory
    range can not boot. Because the FIX_MAP used to map runtime memory
    range is smaller than run time memory range.

    This patch fixes this issue by re-implement efi_ioremap() with
    init_memory_mapping().

    Reported-and-tested-by: Brian Maly
    Signed-off-by: Huang Ying
    Cc: Brian Maly
    Cc: Yinghai Lu
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Huang Ying
     
  • Impact: cleanup

    The zones are set up at this stage so there's a highmem zone
    available even for the UMA case.

    The only difference there is that for machines that have
    CONFIG_HIGHMEM enabled but don't have any highmem available,
    ->zone_start_pfn is zero whereas highstart_pfn is non-zero).

    The field is left zeroed because of the !size test in
    free_area_init_core() but shouldn't be a problem because
    add_highpages_with_active_regions() handles empty ranges just
    fine.

    Signed-off-by: Pekka Enberg
    Cc: Mel Gorman
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Pekka Enberg
     
  • Impact: reactivate DMI quirks on EFI hardware

    DMI tables are loaded by EFI, so the dmi calls must happen after
    efi_init() and not before.

    Currently Apple hardware uses DMI to determine the framebuffer mappings
    for efifb. Without DMI working you also have no video on MacBook Pro.

    This patch resolves the DMI issue for EFI hardware (DMI is now properly
    detected at boot), and additionally efifb now loads on Apple hardware
    (i.e. video works).

    Signed-off-by: Brian Maly
    Acked-by: Yinghai Lu
    Cc: ying.huang@intel.com
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    arch/x86/kernel/setup.c | 5 +++--
    1 file changed, 3 insertions(+), 2 deletions(-)

    Brian Maly
     

04 Mar, 2009

2 commits