1. 17 11月, 2007 2 次提交
    • R
      x86: fix smp init sections · 8f818210
      Randy Dunlap 提交于
      Fix Voyager section mismatch due to using __devinit instead of __cpuinit.
      
      WARNING: vmlinux.o(.text+0xd943): Section mismatch: reference to .init.text:init_gdt (between 'voyager_smp_prepare_boot_cpu' and 'smp_vic_cmn_interrupt')
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      8f818210
    • R
      x86: fix voyager_cat_init section · e5ef67ef
      Randy Dunlap 提交于
      Fix Voyager section mismatches:  voyager_cat_init() should be __init.
      
      WARNING: vmlinux.o(.text+0xee83): Section mismatch: reference to .init.data:eprom_buf (between 'voyager_cat_init' and 'aes_enc_blk')
      WARNING: vmlinux.o(.text+0xeea6): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'aes_enc_blk')
      WARNING: vmlinux.o(.text+0xeeac): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'aes_enc_blk')
      WARNING: vmlinux.o(.text+0xeeb2): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'aes_enc_blk')
      WARNING: vmlinux.o(.text+0xef4c): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'aes_enc_blk')
      WARNING: vmlinux.o(.text+0xef56): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'aes_enc_blk')
      WARNING: vmlinux.o(.text+0xf10f): Section mismatch: reference to .init.data:eprom_buf (between 'voyager_cat_init' and 'aes_enc_blk')
      WARNING: vmlinux.o(.text+0xf13b): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'aes_enc_blk')
      WARNING: vmlinux.o(.text+0xf14b): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'aes_enc_blk')
      WARNING: vmlinux.o(.text+0xf159): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'aes_enc_blk')
      WARNING: vmlinux.o(.text+0xf1b1): Section mismatch: reference to .init.data:eprom_buf (between 'voyager_cat_init' and 'aes_enc_blk')
      WARNING: vmlinux.o(.text+0xf1bb): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'aes_enc_blk')
      WARNING: vmlinux.o(.text+0xf1c1): Section mismatch: reference to .init.data:eprom_buf (between 'voyager_cat_init' and 'aes_enc_blk')
      WARNING: vmlinux.o(.text+0xf1c7): Section mismatch: reference to .init.data:eprom_buf (between 'voyager_cat_init' and 'aes_enc_blk')
      WARNING: vmlinux.o(.text+0xf1e6): Section mismatch: reference to .init.data: (between 'voyager_cat_init' and 'aes_enc_blk')
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      e5ef67ef
  2. 15 11月, 2007 2 次提交
    • A
      x86: don't call mce_create_device on CPU_UP_PREPARE · bae19fe0
      Andreas Herrmann 提交于
      Fix regression introduced with d435d862
      ("cpu hotplug: mce: fix cpu hotplug error handling").
      
      A CPU which was not brought up during boot (using maxcpus and
      additional_cpus parameters) couldn't be onlined anymore.  For such a CPU it
      seemed that MCE was not supported during CPU_UP_PREPARE-time which caused
      mce_cpu_callback to return NOTIFY_BAD to notifier_call_chain.  To fix this
      we:
      
       - call mce_create_device for CPU_ONLINE event (instead of CPU_UP_PREPARE),
       - avoid mce_remove_device() for the CPU that is not correctly initialized
         by mce_create_device() failure,
       - make mce_cpu_callback always return NOTIFY_OK for CPU_ONLINE event.
         Because CPU_ONLINE callback return value is always ignored.
      
      [akinobu.mita@gmail.com: avoid mce_remove_device() for not initialized device]
      [akinobu.mita@gmail.com: make mce_cpu_callback always return NOTIFY_OK]
      Signed-off-by: NAkinobu Mita <akinobu.mita@gmail.com>
      Signed-off-by: NAndreas Herrmann <andreas.herrmann3@amd.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      bae19fe0
    • A
      x86: disable preemption in delay_tsc() · 35d5d08a
      Andrew Morton 提交于
      Marin Mitov points out that delay_tsc() can misbehave if it is preempted and
      rescheduled on a different CPU which has a skewed TSC.  Fix it by disabling
      preemption.
      
      (I assume that the worst-case behaviour here is a stall of 2^32 cycles)
      
      Cc: Andi Kleen <ak@suse.de>
      Cc: Marin Mitov <mitov@issp.bas.bg>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      35d5d08a
  3. 13 11月, 2007 11 次提交
    • S
      x86: enable "make ARCH=x86" · daa93fab
      Sam Ravnborg 提交于
      After unification of the Kconfig files and
      introducing K64BIT support in kconfig
      it required only trivial changes to enable
      "make ARCH=x86".
      
      With this patch you can build for x86_64 in several ways:
      1) make ARCH=x86_64
      2) make ARCH=x86 K64BIT=y
      3) make ARCH=x86 menuconfig
         => select 64-bit
      
      Likewise for i386 with the addition that
      i386 is default is you say ARCH=x86.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      daa93fab
    • S
      x86: do not use $(ARCH) when not needed · d746d647
      Sam Ravnborg 提交于
      For x86 ARCH may say i386 or x86_64 and soon x86.
      Rely on CONFIG_X64_32 to select between 32/64 or just
      hardcode the value as appropriate.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      d746d647
    • S
      x86: move the rest of the menu's to Kconfig · 506f1d07
      Sam Ravnborg 提交于
      With this patch we have all the Kconfig file shared
      between i386 and x86_64.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      506f1d07
    • S
      x86: move all simple arch settings to Kconfig · 8d5fffb9
      Sam Ravnborg 提交于
      Most of the arch settings were equal so combine them
      in the first part of Kconfig.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      8d5fffb9
    • S
      x86: copy x86_64 specific Kconfig symbols to Kconfig.i386 · bc0120fd
      Sam Ravnborg 提交于
      No functional changes.
      A prepatory step towards full unification.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      bc0120fd
    • S
      x86: add X86_64 dependency to x86_64 specific symbols in Kconfig.x86_64 · d2cacbcf
      Sam Ravnborg 提交于
      To ease unification of Kconfig.i386 and Kconfig.x86_64
      add X86_64 dependencies to all x86_64 specific symbols.
      
      This patch introduce no functional changes but is one step
      towards unification. This smaller step is used to ease
      review of the patch set.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      d2cacbcf
    • S
      x86: add X86_32 dependency to i386 specific symbols in Kconfig.i386 · 012c6c72
      Sam Ravnborg 提交于
      To ease unification of Kconfig.i386 and Kconfig.x86_64
      add X86_32 dependencies to all i386 specific symbols.
      
      This patch introduce no functional changes but is one step
      towards unification. This smaller step is used to ease
      review of the patch set.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      012c6c72
    • S
      x86: arch/x86/Kconfig.cpu unification · 1032c0ba
      Sam Ravnborg 提交于
      Move all CPU definitions to Kconfig.cpu
      Always define X86_MINIMUM_CPU_FAMILY and do the
      obvious code cleanup in boot/cpucheck.c
      
      Comments from: Adrian Bunk <bunk@kernel.org> incorporated.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Cc: Adrian Bunk <bunk@kernel.org>
      Cc: Brian Gerst <bgerst@didntduck.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      1032c0ba
    • S
      x86: start unification of arch/x86/Kconfig.* · e279b6c1
      Sam Ravnborg 提交于
      This step introduces the file arch/x86/Kconfig
      which contains all the menu's from "Power Management"
      and below.
      
      The main part of the new Kconfig file is shared
      and the remaining i386/x86_64 specific symbols
      are covered by dependencies.
      
      A x86_64 allmodconfig build did not show any differences.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      e279b6c1
    • S
      x86: unification of cfufreq/Kconfig · e8ef9522
      Sam Ravnborg 提交于
      Merge the two Kconfig files to a single file.
      
      Checked using make allmodconfig for x86_64.
      No changes in build.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Cc: Adrian Bunk <bunk@kernel.org>
      Cc: Dave Jones <davej@codemonkey.org.uk>
      e8ef9522
    • S
      x86: fix taking DNA during 64bit sigreturn · 92d140e2
      Siddha, Suresh B 提交于
      restore sigcontext is taking a DNA exception while restoring FP context
      from the user stack, during the sigreturn.  Appended patch fixes it by
      doing clts() if the app doesn't touch FP during the signal handler
      execution.  This will stop generating a DNA, during the fxrstor in the
      sigreturn.
      
      This improves 64-bit lat_sig numbers by ~30% on my core2 platform.
      Signed-off-by: NSuresh Siddha <suresh.b.siddha@intel.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      92d140e2
  4. 10 11月, 2007 4 次提交
    • C
      x86 - 32-bit ptrace emulation mishandles 6th arg · ecd744ee
      Chuck Ebbert 提交于
      [ jdike - Pushing Chuck's patch - see
      http://lkml.org/lkml/2005/9/16/261 for some history and a test
      program.  UML is also broken without this patch - its processes get
      SIGBUS from the corrupt 6th argument to mmap being interpretted as a
      file offset ]
      
      When the 32-bit vDSO is used to make a system call, the %ebp register for
      the 6th syscall arg has to be loaded from the user stack (where it's pushed
      by the vDSO user code).  The native i386 kernel always does this before
      stopping for syscall tracing, so %ebp can be seen and modified via ptrace
      to access the 6th syscall argument.  The x86-64 kernel fails to do this,
      presenting the stack address to ptrace instead.  This makes the %rbp value
      seen by 64-bit ptrace of a 32-bit process, and the %ebp value seen by a
      32-bit caller of ptrace, both differ from the native i386 behavior.
      
      This patch fixes the problem by putting the word loaded from the user stack
      into %rbp before calling syscall_trace_enter, and reloading the 6th syscall
      argument from there afterwards (so ptrace can change it).  This makes the
      behavior match that of i386 kernels.
      Original-Patch-By: NRoland McGrath <roland@redhat.com>
      Signed-off-by: NChuck Ebbert <76306.1226@compuserve.com>
      Signed-off-by: NJeff Dike <jdike@linux.intel.com>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      ecd744ee
    • R
      x86_64: ia32 ptrace THREAD_AREA fix · fd181c72
      Roland McGrath 提交于
      The addr argument to PTRACE_GET_THREAD_AREA and PTRACE_SET_THREAD_AREA is
      not a magic constant.  It's derived from the segment register values being
      used, which are computed originally from the index used with set_thread_area.
      The value does not need to match what a native i386 kernel would accept.
      It needs to match the segment selectors that can actually be in use in this
      32-bit process.  The 64-bit ptrace support for PTRACE_GET_THREAD_AREA
      (normally used only on 32-bit processes) is correct, but the 32-bit emulation
      of ptrace is broken.
      Signed-off-by: NRoland McGrath <roland@redhat.com>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      fd181c72
    • I
      x86: make nmi_cpu_busy() always defined · 0492007e
      Ingo Molnar 提交于
      nmi_cpu_busy() must be available on !SMP too.
      
      this is in preparation to a smp_call_function_mask() fix.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      0492007e
    • I
      x86: make ipi_handler() always defined · 4e2947f1
      Ingo Molnar 提交于
      prepare for up_smp_call_function() to ensure that the 'func'
      pointer is unused. (which is related to a KVM build fix)
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      4e2947f1
  5. 05 11月, 2007 4 次提交
  6. 30 10月, 2007 11 次提交
  7. 29 10月, 2007 1 次提交
  8. 28 10月, 2007 5 次提交