1. 26 4月, 2012 4 次提交
    • T
      x86: Add task_struct argument to smp_ops.cpu_up · 5cdaf183
      Thomas Gleixner 提交于
      Preparatory patch to use the generic idle thread allocation.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
      Cc: Jeremy Fitzhardinge <jeremy@goop.org>
      Cc: x86@kernel.org
      Link: http://lkml.kernel.org/r/20120420124557.176604405@linutronix.de
      5cdaf183
    • T
      smp: Provide generic idle thread allocation · 29d5e047
      Thomas Gleixner 提交于
      All SMP architectures have magic to fork the idle task and to store it
      for reusage when cpu hotplug is enabled. Provide a generic
      infrastructure for it.
      
      Create/reinit the idle thread for the cpu which is brought up in the
      generic code and hand the thread pointer to the architecture code via
      __cpu_up().
      
      Note, that fork_idle() is called via a workqueue, because this
      guarantees that the idle thread does not get a reference to a user
      space VM. This can happen when the boot process did not bring up all
      possible cpus and a later cpu_up() is initiated via the sysfs
      interface. In that case fork_idle() would be called in the context of
      the user space task and take a reference on the user space VM.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Mike Frysinger <vapier@gentoo.org>
      Cc: Jesper Nilsson <jesper.nilsson@axis.com>
      Cc: Richard Kuo <rkuo@codeaurora.org>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Hirokazu Takata <takata@linux-m32r.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: David Howells <dhowells@redhat.com>
      Cc: James E.J. Bottomley <jejb@parisc-linux.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Chris Metcalf <cmetcalf@tilera.com>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: x86@kernel.org
      Acked-by: NVenkatesh Pallipadi <venki@google.com>
      Link: http://lkml.kernel.org/r/20120420124557.102478630@linutronix.de
      29d5e047
    • T
      smp: Add task_struct argument to __cpu_up() · 8239c25f
      Thomas Gleixner 提交于
      Preparatory patch to make the idle thread allocation for secondary
      cpus generic.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Mike Frysinger <vapier@gentoo.org>
      Cc: Jesper Nilsson <jesper.nilsson@axis.com>
      Cc: Richard Kuo <rkuo@codeaurora.org>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Hirokazu Takata <takata@linux-m32r.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: David Howells <dhowells@redhat.com>
      Cc: James E.J. Bottomley <jejb@parisc-linux.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Chris Metcalf <cmetcalf@tilera.com>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: x86@kernel.org
      Link: http://lkml.kernel.org/r/20120420124556.964170564@linutronix.de
      8239c25f
    • T
      m32r: Remove pointless function prototypes · bda3bdc9
      Thomas Gleixner 提交于
      Already declared in include/linux/smp.h
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
      Cc: Hirokazu Takata <takata@linux-m32r.org>
      Link: http://lkml.kernel.org/r/20120420124556.899547554@linutronix.de
      bda3bdc9
  2. 24 4月, 2012 8 次提交
  3. 23 4月, 2012 4 次提交
    • B
      powerpc/mpic: Properly set default triggers · 446f6d06
      Benjamin Herrenschmidt 提交于
      This gets rid of the unused default senses array, and replaces the
      incorrect use of IRQ_TYPE_NONE with the new IRQ_TYPE_DEFAULT for
      the initial set_trigger() call when mapping an interrupt.
      
      This in turn makes us read the HW state and update the irq desc
      accordingly.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      446f6d06
    • B
      powerpc/mpic: Fix confusion between hw_irq and virq · 3a2b4f7c
      Benjamin Herrenschmidt 提交于
      mpic_is_ipi() takes a virq and immediately converts it to a hw_irq.
      
      However, one of the two call sites calls it with a ... hw_irq. The
      other call site also happens to have the hw_irq at hand, so let's
      change it to just take that as an argument. Also change mpic_is_tm()
      for consistency.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      3a2b4f7c
    • B
      powerpc/pmac: Don't add_timer() twice · 3027691e
      Benjamin Herrenschmidt 提交于
      If the interrupt and the timeout happen roughly at the same
      time, we can get into a situation where the timer function
      is run while the interrupt has already been processed. In
      this case, the timer function might end up doing an add_timer
      on an already pending timer, causing a BUG_ON() to trigger.
      
      Instead, just skip the whole timeout operation if we see that
      the timer is pending. The spinlock ensures that the only way
      that happens is if we already started a new operation and thus
      the timeout can be ignored.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      3027691e
    • G
      powerpc/eeh: Fix crash caused by null eeh_dev · 2ef822c5
      Gavin Shan 提交于
      The problem was reported by Anton Blanchard. While EEH error
      happened to the PCI device without the corresponding device
      driver, kernel crash was seen. Eventually, I successfully
      reproduced the problem on Firebird-L machine with utility
      "errinjct". Initially, the device driver for Emulex ethernet
      MAC has been disabled from .config and force data parity on
      the Emulex ethernet MAC with help of "errinjct". Eventually,
      I saw the kernel crash after issueing couple of "lspci -v"
      command.
      
      The root cause behind is that the PCI device, including the
      reference to the corresponding eeh device, will be removed
      from the system while EEH does recovery. Afterwards, the
      PCI device will be probed again and added into the system
      accordingly. So it's not safe to retrieve the eeh device from
      the corresponding PCI device after the PCI device has been removed
      and not added again.
      
      The patch fixes the issue and retrieve the eeh device from OF node
      instead of PCI device after the PCI device has been removed.
      Signed-off-by: NGavin Shan <shangw@linux.vnet.ibm.com>
      Tested-by: NAnton Blanchard <anton@samba.org>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      2ef822c5
  4. 22 4月, 2012 1 次提交
  5. 21 4月, 2012 5 次提交
  6. 20 4月, 2012 8 次提交
  7. 19 4月, 2012 3 次提交
    • P
      ARM: bcmring: fix UART declarations · 888073d4
      Paul Gortmaker 提交于
      This error appeared in the bcmring_defconfig build:
      
        CC      arch/arm/mach-bcmring/core.o
      arch/arm/mach-bcmring/core.c:55: error: macro "AMBA_APB_DEVICE" requires 6 arguments, but only 5 given
      arch/arm/mach-bcmring/core.c:55: warning: type defaults to 'int' in declaration of 'AMBA_APB_DEVICE'
      arch/arm/mach-bcmring/core.c:56: error: macro "AMBA_APB_DEVICE" requires 6 arguments, but only 5 given
      arch/arm/mach-bcmring/core.c:56: warning: type defaults to 'int' in declaration of 'AMBA_APB_DEVICE'
      arch/arm/mach-bcmring/core.c:134: error: 'uartA_device' undeclared here (not in a function)
      arch/arm/mach-bcmring/core.c:135: error: 'uartB_device' undeclared here (not in a function)
      make[2]: *** [arch/arm/mach-bcmring/core.o] Error 1
      
      It appeared as of commit 8ede1ae6
      
          "ARM: amba: bcmring: use common amba device initializers"
      
      Note that in include/linux/amba/bus.h we have:
         #define AMBA_APB_DEVICE(name, busid, id, base, irqs, data) ...
      
      There is an a --> A case error in the busid and a missing zero
      placeholder for the id field.
      
      Cc: Russell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      [olof: reworded patch subject]
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      888073d4
    • A
      KVM: VMX: Fix kvm_set_shared_msr() called in preemptible context · 2225fd56
      Avi Kivity 提交于
      kvm_set_shared_msr() may not be called in preemptible context,
      but vmx_set_msr() does so:
      
        BUG: using smp_processor_id() in preemptible [00000000] code: qemu-kvm/22713
        caller is kvm_set_shared_msr+0x32/0xa0 [kvm]
        Pid: 22713, comm: qemu-kvm Not tainted 3.4.0-rc3+ #39
        Call Trace:
         [<ffffffff8131fa82>] debug_smp_processor_id+0xe2/0x100
         [<ffffffffa0328ae2>] kvm_set_shared_msr+0x32/0xa0 [kvm]
         [<ffffffffa03a103b>] vmx_set_msr+0x28b/0x2d0 [kvm_intel]
         ...
      
      Making kvm_set_shared_msr() work in preemptible is cleaner, but
      it's used in the fast path.  Making two variants is overkill, so
      this patch just disables preemption around the call.
      Reported-by: NDave Jones <davej@redhat.com>
      Signed-off-by: NAvi Kivity <avi@redhat.com>
      Signed-off-by: NMarcelo Tosatti <mtosatti@redhat.com>
      2225fd56
    • B
      x86, apic: APIC code touches invalid MSR on P5 class machines · cbf2829b
      Bryan O'Donoghue 提交于
      Current APIC code assumes MSR_IA32_APICBASE is present for all systems.
      Pentium Classic P5 and friends didn't have this MSR. MSR_IA32_APICBASE
      was introduced as an architectural MSR by Intel @ P6.
      
      Code paths that can touch this MSR invalidly are when vendor == Intel &&
      cpu-family == 5 and APIC bit is set in CPUID - or when you simply pass
      lapic on the kernel command line, on a P5.
      
      The below patch stops Linux incorrectly interfering with the
      MSR_IA32_APICBASE for P5 class machines. Other code paths exist that
      touch the MSR - however those paths are not currently reachable for a
      conformant P5.
      Signed-off-by: NBryan O'Donoghue <bryan.odonoghue@linux.intel.com>
      Link: http://lkml.kernel.org/r/4F8EEDD3.1080404@linux.intel.comSigned-off-by: NH. Peter Anvin <hpa@linux.intel.com>
      Cc: <stable@vger.kernel.org>
      cbf2829b
  8. 18 4月, 2012 7 次提交