Merge branch 'x86-mce-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
Linus Torvalds [Fri, 18 Sep 2009 04:07:08 +0000 (21:07 -0700)]
* 'x86-mce-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (21 commits)
  x86, mce: Fix compilation with !CONFIG_DEBUG_FS in mce-severity.c
  x86, mce: CE in last bank prevents panic by unknown MCE
  x86, mce: Fake panic support for MCE testing
  x86, mce: Move debugfs mce dir creating to mce.c
  x86, mce: Support specifying raise mode for software MCE injection
  x86, mce: Support specifying context for software mce injection
  x86, mce: fix reporting of Thermal Monitoring mechanism enabled
  x86, mce: remove never executed code
  x86, mce: add missing __cpuinit tags
  x86, mce: fix "mce" boot option handling for CONFIG_X86_NEW_MCE
  x86, mce: don't log boot MCEs on Pentium M (model == 13) CPUs
  x86: mce: Lower maximum number of banks to architecture limit
  x86: mce: macros to compute banks MSRs
  x86: mce: Move per bank data in a single datastructure
  x86: mce: Move code in mce.c
  x86: mce: Rename CONFIG_X86_NEW_MCE to CONFIG_X86_MCE
  x86: mce: Remove old i386 machine check code
  x86: mce: Update X86_MCE description in x86/Kconfig
  x86: mce: Make CONFIG_X86_ANCIENT_MCE dependent on CONFIG_X86_MCE
  x86, mce: use atomic_inc_return() instead of add by 1
  ...

Manually fixed up trivial conflicts:
Documentation/feature-removal-schedule.txt
arch/x86/kernel/cpu/mcheck/mce.c

1  2 
Documentation/feature-removal-schedule.txt
arch/x86/Kconfig
arch/x86/include/asm/msr-index.h
arch/x86/kernel/apic/nmi.c
arch/x86/kernel/cpu/mcheck/mce.c
arch/x86/kernel/cpu/mcheck/therm_throt.c
arch/x86/kernel/irqinit.c
arch/x86/kernel/signal.c

@@@ -425,47 -444,3 +425,37 @@@ What:    CONFIG_RFKILL_INPU
  When: 2.6.33
  Why:  Should be implemented in userspace, policy daemon.
  Who:  Johannes Berg <johannes@sipsolutions.net>
 +
 +----------------------------
 +
- What: CONFIG_X86_OLD_MCE
- When: 2.6.32
- Why:  Remove the old legacy 32bit machine check code. This has been
-       superseded by the newer machine check code from the 64bit port,
-       but the old version has been kept around for easier testing. Note this
-       doesn't impact the old P5 and WinChip machine check handlers.
- Who:  Andi Kleen <andi@firstfloor.org>
- ----------------------------
 +What: lock_policy_rwsem_* and unlock_policy_rwsem_* will not be
 +      exported interface anymore.
 +When: 2.6.33
 +Why:  cpu_policy_rwsem has a new cleaner definition making it local to
 +      cpufreq core and contained inside cpufreq.c. Other dependent
 +      drivers should not use it in order to safely avoid lockdep issues.
 +Who:  Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
 +
 +----------------------------
 +
 +What: sound-slot/service-* module aliases and related clutters in
 +      sound/sound_core.c
 +When: August 2010
 +Why:  OSS sound_core grabs all legacy minors (0-255) of SOUND_MAJOR
 +      (14) and requests modules using custom sound-slot/service-*
 +      module aliases.  The only benefit of doing this is allowing
 +      use of custom module aliases which might as well be considered
 +      a bug at this point.  This preemptive claiming prevents
 +      alternative OSS implementations.
 +
 +      Till the feature is removed, the kernel will be requesting
 +      both sound-slot/service-* and the standard char-major-* module
 +      aliases and allow turning off the pre-claiming selectively via
 +      CONFIG_SOUND_OSS_CORE_PRECLAIM and soundcore.preclaim_oss
 +      kernel parameter.
 +
 +      After the transition phase is complete, both the custom module
 +      aliases and switches to disable it will go away.  This removal
 +      will also allow making ALSA OSS emulation independent of
 +      sound_core.  The dependency will be broken then too.
 +Who:  Tejun Heo <tj@kernel.org>
Simple merge
Simple merge
Simple merge
@@@ -1236,13 -1235,8 +1245,13 @@@ static void mce_init(void
  }
  
  /* Add per CPU specific workarounds here */
- static int mce_cpu_quirks(struct cpuinfo_x86 *c)
 -static void __cpuinit mce_cpu_quirks(struct cpuinfo_x86 *c)
++static int __cpuinit mce_cpu_quirks(struct cpuinfo_x86 *c)
  {
 +      if (c->x86_vendor == X86_VENDOR_UNKNOWN) {
 +              pr_info("MCE: unknown CPU type - not enabling MCE support.\n");
 +              return -EOPNOTSUPP;
 +      }
 +
        /* This should be disabled by the BIOS, but isn't always */
        if (c->x86_vendor == X86_VENDOR_AMD) {
                if (c->x86 == 15 && banks > 4) {
@@@ -1345,9 -1334,20 +1354,20 @@@ static void mce_init_timer(void
                return;
        setup_timer(t, mcheck_timer, smp_processor_id());
        t->expires = round_jiffies(jiffies + *n);
 -      add_timer(t);
 +      add_timer_on(t, smp_processor_id());
  }
  
+ /* Handle unconfigured int18 (should never happen) */
+ static void unexpected_machine_check(struct pt_regs *regs, long error_code)
+ {
+       printk(KERN_ERR "CPU#%d: Unexpected int18 (Machine Check).\n",
+              smp_processor_id());
+ }
+ /* Call the installed machine check handler for this CPU setup. */
+ void (*machine_check_vector)(struct pt_regs *, long error_code) =
+                                               unexpected_machine_check;
  /*
   * Called for each booted CPU to set up machine checks.
   * Must be called with preempt off:
@@@ -187,10 -187,10 +187,10 @@@ static void __init apic_intr_init(void
  #ifdef CONFIG_X86_THERMAL_VECTOR
        alloc_intr_gate(THERMAL_APIC_VECTOR, thermal_interrupt);
  #endif
 -#ifdef CONFIG_X86_THRESHOLD
 +#ifdef CONFIG_X86_MCE_THRESHOLD
        alloc_intr_gate(THRESHOLD_APIC_VECTOR, threshold_interrupt);
  #endif
- #if defined(CONFIG_X86_NEW_MCE) && defined(CONFIG_X86_LOCAL_APIC)
+ #if defined(CONFIG_X86_MCE) && defined(CONFIG_X86_LOCAL_APIC)
        alloc_intr_gate(MCE_SELF_VECTOR, mce_self_interrupt);
  #endif
  
Simple merge