Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bf67f3a5 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull smp hotplug cleanups from Thomas Gleixner:
 "This series is merily a cleanup of code copied around in arch/* and
  not changing any of the real cpu hotplug horrors yet.  I wish I'd had
  something more substantial for 3.5, but I underestimated the lurking
  horror..."

Fix up trivial conflicts in arch/{arm,sparc,x86}/Kconfig and
arch/sparc/include/asm/thread_info_32.h

* 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (79 commits)
  um: Remove leftover declaration of alloc_task_struct_node()
  task_allocator: Use config switches instead of magic defines
  sparc: Use common threadinfo allocator
  score: Use common threadinfo allocator
  sh-use-common-threadinfo-allocator
  mn10300: Use common threadinfo allocator
  powerpc: Use common threadinfo allocator
  mips: Use common threadinfo allocator
  hexagon: Use common threadinfo allocator
  m32r: Use common threadinfo allocator
  frv: Use common threadinfo allocator
  cris: Use common threadinfo allocator
  x86: Use common threadinfo allocator
  c6x: Use common threadinfo allocator
  fork: Provide kmemcache based thread_info allocator
  tile: Use common threadinfo allocator
  fork: Provide weak arch_release_[task_struct|thread_info] functions
  fork: Move thread info gfp flags to header
  fork: Remove the weak insanity
  sh: Remove cpu_idle_wait()
  ...
parents 226da0db 203dacbd
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -145,6 +145,21 @@ config HAVE_DMA_ATTRS
config USE_GENERIC_SMP_HELPERS
	bool

config GENERIC_SMP_IDLE_THREAD
       bool

# Select if arch init_task initializer is different to init/init_task.c
config ARCH_INIT_TASK
       bool

# Select if arch has its private alloc_task_struct() function
config ARCH_TASK_STRUCT_ALLOCATOR
	bool

# Select if arch has its private alloc_thread_info() function
config ARCH_THREAD_INFO_ALLOCATOR
	bool

config HAVE_REGS_AND_STACK_ACCESS_API
	bool
	help
+1 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@ config ALPHA
	select GENERIC_IRQ_SHOW
	select ARCH_WANT_OPTIONAL_GPIOLIB
	select ARCH_HAVE_NMI_SAFE_CMPXCHG
	select GENERIC_SMP_IDLE_THREAD
	help
	  The Alpha is a 64-bit general-purpose processor designed and
	  marketed by the Digital Equipment Corporation of blessed memory,
+1 −1
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ extra-y := head.o vmlinux.lds
asflags-y	:= $(KBUILD_CFLAGS)
ccflags-y	:= -Wno-sign-compare

obj-y    := entry.o traps.o process.o init_task.o osf_sys.o irq.o \
obj-y    := entry.o traps.o process.o osf_sys.o irq.o \
	    irq_alpha.o signal.o setup.o ptrace.o time.o \
	    alpha_ksyms.o systbls.o err_common.o io.o

+3 −17
Original line number Diff line number Diff line
@@ -357,24 +357,10 @@ secondary_cpu_start(int cpuid, struct task_struct *idle)
 * Bring one cpu online.
 */
static int __cpuinit
smp_boot_one_cpu(int cpuid)
smp_boot_one_cpu(int cpuid, struct task_struct *idle)
{
	struct task_struct *idle;
	unsigned long timeout;

	/* Cook up an idler for this guy.  Note that the address we
	   give to kernel_thread is irrelevant -- it's going to start
	   where HWRPB.CPU_restart says to start.  But this gets all
	   the other task-y sort of data structures set up like we
	   wish.  We can't use kernel_thread since we must avoid
	   rescheduling the child.  */
	idle = fork_idle(cpuid);
	if (IS_ERR(idle))
		panic("failed fork for CPU %d", cpuid);

	DBGS(("smp_boot_one_cpu: CPU %d state 0x%lx flags 0x%lx\n",
	      cpuid, idle->state, idle->flags));

	/* Signal the secondary to wait a moment.  */
	smp_secondary_alive = -1;

@@ -487,9 +473,9 @@ smp_prepare_boot_cpu(void)
}

int __cpuinit
__cpu_up(unsigned int cpu)
__cpu_up(unsigned int cpu, struct task_struct *tidle)
{
	smp_boot_one_cpu(cpu);
	smp_boot_one_cpu(cpu, tidle);

	return cpu_online(cpu) ? 0 : -ENOSYS;
}
+1 −3
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ config ARM
	select CPU_PM if (SUSPEND || CPU_IDLE)
	select GENERIC_PCI_IOMAP
	select HAVE_BPF_JIT
	select GENERIC_SMP_IDLE_THREAD
	help
	  The ARM series is a line of low-power-consumption RISC chip designs
	  licensed by ARM Ltd and targeted at embedded applications and
@@ -154,9 +155,6 @@ config ARCH_HAS_CPUFREQ
	  and that the relevant menu configurations are displayed for
	  it.

config ARCH_HAS_CPU_IDLE_WAIT
       def_bool y

config GENERIC_HWEIGHT
	bool
	default y
Loading