linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch 00/29] init_task: Use a generic init_task variant
@ 2012-04-30 20:15 Thomas Gleixner
  2012-04-30 20:15 ` [patch 02/29] alpha: Use generic init_task Thomas Gleixner
                   ` (28 more replies)
  0 siblings, 29 replies; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:15 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch

All architectures do roughly the same to initialize init_task. The
only architecture which deviates is ia64, but I could not figure out
why it couldn't use the same setup as all other architectures.

The following series converts all archs to a generic version.

Thanks,

	tglx
---
 arch/alpha/kernel/init_task.c       |   17 --------
 arch/arm/kernel/init_task.c         |   37 -------------------
 arch/avr32/kernel/init_task.c       |   31 ---------------
 arch/blackfin/kernel/init_task.c    |   32 ----------------
 arch/frv/kernel/init_task.c         |   32 ----------------
 arch/h8300/kernel/init_task.c       |   36 ------------------
 arch/hexagon/kernel/init_task.c     |   54 ---------------------------
 arch/ia64/kernel/init_task.c        |   42 ---------------------
 arch/m32r/kernel/init_task.c        |   34 -----------------
 arch/m68k/kernel/init_task.c        |   35 ------------------
 arch/microblaze/kernel/init_task.c  |   26 -------------
 arch/mips/kernel/init_task.c        |   35 ------------------
 arch/mn10300/kernel/init_task.c     |   39 --------------------
 arch/openrisc/kernel/init_task.c    |   42 ---------------------
 arch/parisc/kernel/init_task.c      |   70 ------------------------------------
 arch/powerpc/kernel/init_task.c     |   29 --------------
 arch/s390/kernel/init_task.c        |   38 -------------------
 arch/sh/kernel/init_task.c          |   30 ---------------
 arch/sparc/kernel/init_task.c       |   22 -----------
 arch/tile/kernel/init_task.c        |   59 ------------------------------
 arch/um/kernel/init_task.c          |   38 -------------------
 arch/unicore32/kernel/init_task.c   |   44 ----------------------
 arch/x86/kernel/init_task.c         |   42 ---------------------
 arch/xtensa/kernel/init_task.c      |   31 ---------------
 tip/arch/alpha/kernel/Makefile      |    2 -
 tip/arch/arm/Makefile               |    2 -
 tip/arch/arm/kernel/Makefile        |    2 -
 tip/arch/avr32/kernel/Makefile      |    2 -
 tip/arch/blackfin/Makefile          |    2 -
 tip/arch/blackfin/kernel/Makefile   |    2 -
 tip/arch/c6x/kernel/process.c       |   16 --------
 tip/arch/cris/kernel/process.c      |   28 --------------
 tip/arch/frv/Makefile               |    2 -
 tip/arch/frv/kernel/Makefile        |    2 -
 tip/arch/h8300/kernel/Makefile      |    2 -
 tip/arch/hexagon/Makefile           |    3 -
 tip/arch/hexagon/kernel/Makefile    |    2 -
 tip/arch/ia64/Makefile              |    2 -
 tip/arch/ia64/kernel/Makefile       |    2 -
 tip/arch/m32r/Makefile              |    2 -
 tip/arch/m32r/kernel/Makefile       |    2 -
 tip/arch/m68k/kernel/Makefile       |    2 -
 tip/arch/microblaze/kernel/Makefile |    2 -
 tip/arch/mips/Makefile              |    2 -
 tip/arch/mips/kernel/Makefile       |    2 -
 tip/arch/mips/kernel/vmlinux.lds.S  |    2 -
 tip/arch/mn10300/Makefile           |    2 -
 tip/arch/mn10300/kernel/Makefile    |    2 -
 tip/arch/openrisc/Makefile          |    2 -
 tip/arch/openrisc/kernel/Makefile   |    2 -
 tip/arch/parisc/mm/init.c           |   12 ++++++
 tip/arch/powerpc/kernel/Makefile    |    2 -
 tip/arch/s390/Makefile              |    1 
 tip/arch/s390/kernel/Makefile       |    2 -
 tip/arch/score/kernel/Makefile      |    2 -
 tip/arch/sh/Makefile                |    2 -
 tip/arch/sh/kernel/Makefile         |    2 -
 tip/arch/tile/kernel/Makefile       |    2 -
 tip/arch/tile/kernel/setup.c        |   16 ++++++++
 tip/arch/um/kernel/Makefile         |    2 -
 tip/arch/um/kernel/um_arch.c        |    5 ++
 tip/arch/unicore32/Makefile         |    1 
 tip/arch/unicore32/kernel/Makefile  |    2 -
 tip/arch/x86/Makefile               |    1 
 tip/arch/x86/kernel/Makefile        |    2 -
 tip/arch/x86/kernel/process.c       |    9 ++++
 tip/arch/xtensa/kernel/Makefile     |    2 -
 tip/kernel/sched/Makefile           |    4 --
 tip/kernel/sched/init_task.c        |   24 ++++++++++++
 69 files changed, 100 insertions(+), 981 deletions(-)




^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 02/29] alpha: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
@ 2012-04-30 20:15 ` Thomas Gleixner
  2012-04-30 20:15 ` [patch 03/29] arm: " Thomas Gleixner
                   ` (27 subsequent siblings)
  28 siblings, 0 replies; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:15 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, Matt Turner

[-- Attachment #1: alpha-use-generic-init-task.patch --]
[-- Type: text/plain, Size: 2028 bytes --]

Identical code. Use the generic version.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Matt Turner <mattst88@gmail.com>
---
 arch/alpha/Kconfig            |    1 +
 arch/alpha/kernel/Makefile    |    2 +-
 arch/alpha/kernel/init_task.c |   17 -----------------
 3 files changed, 2 insertions(+), 18 deletions(-)

Index: tip/arch/alpha/Kconfig
===================================================================
--- tip.orig/arch/alpha/Kconfig
+++ tip/arch/alpha/Kconfig
@@ -16,6 +16,7 @@ config ALPHA
 	select ARCH_WANT_OPTIONAL_GPIOLIB
 	select ARCH_HAVE_NMI_SAFE_CMPXCHG
 	select GENERIC_SMP_IDLE_THREAD
+	select HAVE_GENERIC_INIT_TASK
 	help
 	  The Alpha is a 64-bit general-purpose processor designed and
 	  marketed by the Digital Equipment Corporation of blessed memory,
Index: tip/arch/alpha/kernel/Makefile
===================================================================
--- tip.orig/arch/alpha/kernel/Makefile
+++ tip/arch/alpha/kernel/Makefile
@@ -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
 
Index: tip/arch/alpha/kernel/init_task.c
===================================================================
--- tip.orig/arch/alpha/kernel/init_task.c
+++ /dev/null
@@ -1,17 +0,0 @@
-#include <linux/mm.h>
-#include <linux/module.h>
-#include <linux/sched.h>
-#include <linux/init.h>
-#include <linux/init_task.h>
-#include <linux/fs.h>
-#include <linux/mqueue.h>
-#include <asm/uaccess.h>
-
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-struct task_struct init_task = INIT_TASK(init_task);
-EXPORT_SYMBOL(init_task);
-
-union thread_union init_thread_union __init_task_data =
-	{ INIT_THREAD_INFO(init_task) };



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 03/29] arm: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
  2012-04-30 20:15 ` [patch 02/29] alpha: Use generic init_task Thomas Gleixner
@ 2012-04-30 20:15 ` Thomas Gleixner
  2012-04-30 20:15 ` [patch 04/29] avr32: " Thomas Gleixner
                   ` (26 subsequent siblings)
  28 siblings, 0 replies; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:15 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, Russell King

[-- Attachment #1: arm-use-generic-init-task.patch --]
[-- Type: text/plain, Size: 3119 bytes --]

Same code. Use the generic version. The special Makefile treatment is
pointless anyway as init_task.o contains only data which is handled by
the linker script. So no point on being treated like head text.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Russell King <linux@arm.linux.org.uk>
---
 arch/arm/Kconfig            |    1 +
 arch/arm/Makefile           |    2 +-
 arch/arm/kernel/Makefile    |    2 +-
 arch/arm/kernel/init_task.c |   37 -------------------------------------
 4 files changed, 3 insertions(+), 39 deletions(-)

Index: tip/arch/arm/Kconfig
===================================================================
--- tip.orig/arch/arm/Kconfig
+++ tip/arch/arm/Kconfig
@@ -35,6 +35,7 @@ config ARM
 	select GENERIC_PCI_IOMAP
 	select HAVE_BPF_JIT if NET
 	select GENERIC_SMP_IDLE_THREAD
+	select HAVE_GENERIC_INIT_TASK
 	help
 	  The ARM series is a line of low-power-consumption RISC chip designs
 	  licensed by ARM Ltd and targeted at embedded applications and
Index: tip/arch/arm/Makefile
===================================================================
--- tip.orig/arch/arm/Makefile
+++ tip/arch/arm/Makefile
@@ -119,7 +119,7 @@ KBUILD_AFLAGS	+=$(CFLAGS_ABI) $(AFLAGS_T
 CHECKFLAGS	+= -D__arm__
 
 #Default value
-head-y		:= arch/arm/kernel/head$(MMUEXT).o arch/arm/kernel/init_task.o
+head-y		:= arch/arm/kernel/head$(MMUEXT).o
 textofs-y	:= 0x00008000
 textofs-$(CONFIG_ARCH_CLPS711X) := 0x00028000
 # We don't want the htc bootloader to corrupt kernel during resume
Index: tip/arch/arm/kernel/Makefile
===================================================================
--- tip.orig/arch/arm/kernel/Makefile
+++ tip/arch/arm/kernel/Makefile
@@ -81,4 +81,4 @@ head-y			:= head$(MMUEXT).o
 obj-$(CONFIG_DEBUG_LL)	+= debug.o
 obj-$(CONFIG_EARLY_PRINTK)	+= early_printk.o
 
-extra-y := $(head-y) init_task.o vmlinux.lds
+extra-y := $(head-y) vmlinux.lds
Index: tip/arch/arm/kernel/init_task.c
===================================================================
--- tip.orig/arch/arm/kernel/init_task.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- *  linux/arch/arm/kernel/init_task.c
- */
-#include <linux/mm.h>
-#include <linux/module.h>
-#include <linux/fs.h>
-#include <linux/sched.h>
-#include <linux/init.h>
-#include <linux/init_task.h>
-#include <linux/mqueue.h>
-#include <linux/uaccess.h>
-
-#include <asm/pgtable.h>
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-/*
- * Initial thread structure.
- *
- * We need to make sure that this is 8192-byte aligned due to the
- * way process stacks are handled. This is done by making sure
- * the linker maps this in the .text segment right after head.S,
- * and making head.S ensure the proper alignment.
- *
- * The things we do for performance..
- */
-union thread_union init_thread_union __init_task_data =
-	{ INIT_THREAD_INFO(init_task) };
-
-/*
- * Initial task structure.
- *
- * All other task structs will be allocated on slabs in fork.c
- */
-struct task_struct init_task = INIT_TASK(init_task);
-
-EXPORT_SYMBOL(init_task);



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 04/29] avr32: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
  2012-04-30 20:15 ` [patch 02/29] alpha: Use generic init_task Thomas Gleixner
  2012-04-30 20:15 ` [patch 03/29] arm: " Thomas Gleixner
@ 2012-04-30 20:15 ` Thomas Gleixner
  2012-04-30 20:15 ` [patch 06/29] cx6: " Thomas Gleixner
                   ` (25 subsequent siblings)
  28 siblings, 0 replies; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:15 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, Haavard Skinnemoen

[-- Attachment #1: avr32-use-generic-init-task.patch --]
[-- Type: text/plain, Size: 2488 bytes --]

Same code. Use the generic version.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Haavard Skinnemoen <hskinnemoen@gmail.com>
---
 arch/avr32/Kconfig            |    1 +
 arch/avr32/kernel/Makefile    |    2 +-
 arch/avr32/kernel/init_task.c |   31 -------------------------------
 3 files changed, 2 insertions(+), 32 deletions(-)

Index: tip/arch/avr32/Kconfig
===================================================================
--- tip.orig/arch/avr32/Kconfig
+++ tip/arch/avr32/Kconfig
@@ -12,6 +12,7 @@ config AVR32
 	select HARDIRQS_SW_RESEND
 	select GENERIC_IRQ_SHOW
 	select ARCH_HAVE_NMI_SAFE_CMPXCHG
+	select HAVE_GENERIC_INIT_TASK
 	help
 	  AVR32 is a high-performance 32-bit RISC microprocessor core,
 	  designed for cost-sensitive embedded applications, with particular
Index: tip/arch/avr32/kernel/Makefile
===================================================================
--- tip.orig/arch/avr32/kernel/Makefile
+++ tip/arch/avr32/kernel/Makefile
@@ -8,7 +8,7 @@ obj-$(CONFIG_SUBARCH_AVR32B)	+= entry-av
 obj-y				+= syscall_table.o syscall-stubs.o irq.o
 obj-y				+= setup.o traps.o ocd.o ptrace.o
 obj-y				+= signal.o sys_avr32.o process.o time.o
-obj-y				+= init_task.o switch_to.o cpu.o
+obj-y				+= switch_to.o cpu.o
 obj-$(CONFIG_MODULES)		+= module.o avr32_ksyms.o
 obj-$(CONFIG_KPROBES)		+= kprobes.o
 obj-$(CONFIG_STACKTRACE)	+= stacktrace.o
Index: tip/arch/avr32/kernel/init_task.c
===================================================================
--- tip.orig/arch/avr32/kernel/init_task.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/module.h>
-#include <linux/fs.h>
-#include <linux/sched.h>
-#include <linux/init_task.h>
-#include <linux/mqueue.h>
-
-#include <asm/pgtable.h>
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-/*
- * Initial thread structure. Must be aligned on an 8192-byte boundary.
- */
-union thread_union init_thread_union __init_task_data =
-	{ INIT_THREAD_INFO(init_task) };
-
-/*
- * Initial task structure.
- *
- * All other task structs will be allocated on slabs in fork.c
- */
-struct task_struct init_task = INIT_TASK(init_task);
-
-EXPORT_SYMBOL(init_task);



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 06/29] cx6: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (2 preceding siblings ...)
  2012-04-30 20:15 ` [patch 04/29] avr32: " Thomas Gleixner
@ 2012-04-30 20:15 ` Thomas Gleixner
  2012-04-30 20:15 ` [patch 05/29] blackfin: " Thomas Gleixner
                   ` (24 subsequent siblings)
  28 siblings, 0 replies; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:15 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, Mark Salter

[-- Attachment #1: cx6-use-generic-idle-task.patch --]
[-- Type: text/plain, Size: 1285 bytes --]

Same code. Use the generic version.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Mark Salter <msalter@redhat.com>
---
 arch/c6x/Kconfig          |    1 +
 arch/c6x/kernel/process.c |   16 ----------------
 2 files changed, 1 insertion(+), 16 deletions(-)

Index: tip/arch/c6x/Kconfig
===================================================================
--- tip.orig/arch/c6x/Kconfig
+++ tip/arch/c6x/Kconfig
@@ -15,6 +15,7 @@ config TMS320C6X
 	select IRQ_DOMAIN
 	select OF
 	select OF_EARLY_FLATTREE
+	select HAVE_GENERIC_INIT_TASK
 
 config MMU
 	def_bool n
Index: tip/arch/c6x/kernel/process.c
===================================================================
--- tip.orig/arch/c6x/kernel/process.c
+++ tip/arch/c6x/kernel/process.c
@@ -26,22 +26,6 @@ void	(*c6x_halt)(void);
 
 extern asmlinkage void ret_from_fork(void);
 
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-
-/*
- * Initial thread structure.
- */
-union thread_union init_thread_union __init_task_data =	{
-	INIT_THREAD_INFO(init_task)
-};
-
-/*
- * Initial task structure.
- */
-struct task_struct init_task = INIT_TASK(init_task);
-EXPORT_SYMBOL(init_task);
-
 /*
  * power off function, if any
  */



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 05/29] blackfin: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (3 preceding siblings ...)
  2012-04-30 20:15 ` [patch 06/29] cx6: " Thomas Gleixner
@ 2012-04-30 20:15 ` Thomas Gleixner
  2012-05-06  8:16   ` Mike Frysinger
  2012-04-30 20:15 ` [patch 08/29] frv: " Thomas Gleixner
                   ` (23 subsequent siblings)
  28 siblings, 1 reply; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:15 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, Mike Frysinger

[-- Attachment #1: blackfin-use-generic-init-task.patch --]
[-- Type: text/plain, Size: 3001 bytes --]

Same code. Use the generic version. The special Makefile treatment is
pointless anyway as init_task.o contains only data which is handled by
the linker script. So no point on being treated like head text.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Mike Frysinger <vapier@gentoo.org>
---
 arch/blackfin/Kconfig            |    1 +
 arch/blackfin/Makefile           |    2 --
 arch/blackfin/kernel/Makefile    |    2 +-
 arch/blackfin/kernel/init_task.c |   32 --------------------------------
 4 files changed, 2 insertions(+), 35 deletions(-)

Index: tip/arch/blackfin/Kconfig
===================================================================
--- tip.orig/arch/blackfin/Kconfig
+++ tip/arch/blackfin/Kconfig
@@ -38,6 +38,7 @@ config BLACKFIN
 	select IRQ_PER_CPU if SMP
 	select HAVE_NMI_WATCHDOG if NMI_WATCHDOG
 	select GENERIC_SMP_IDLE_THREAD
+	select HAVE_GENERIC_INIT_TASK
 
 config GENERIC_CSUM
 	def_bool y
Index: tip/arch/blackfin/Makefile
===================================================================
--- tip.orig/arch/blackfin/Makefile
+++ tip/arch/blackfin/Makefile
@@ -107,8 +107,6 @@ KBUILD_AFLAGS += -mcpu=$(CPU_REV)
 CHECKFLAGS_SILICON = $(shell echo "" | $(CPP) $(KBUILD_CFLAGS) -dD - 2>/dev/null | awk '$$2 == "__SILICON_REVISION__" { print $$3 }')
 CHECKFLAGS += -D__SILICON_REVISION__=$(CHECKFLAGS_SILICON) -D__bfin__
 
-head-y   := arch/$(ARCH)/kernel/init_task.o
-
 core-y   += arch/$(ARCH)/kernel/ arch/$(ARCH)/mm/ arch/$(ARCH)/mach-common/
 
 # If we have a machine-specific directory, then include it in the build.
Index: tip/arch/blackfin/kernel/Makefile
===================================================================
--- tip.orig/arch/blackfin/kernel/Makefile
+++ tip/arch/blackfin/kernel/Makefile
@@ -2,7 +2,7 @@
 # arch/blackfin/kernel/Makefile
 #
 
-extra-y := init_task.o vmlinux.lds
+extra-y := vmlinux.lds
 
 obj-y := \
 	entry.o process.o bfin_ksyms.o ptrace.o setup.o signal.o \
Index: tip/arch/blackfin/kernel/init_task.c
===================================================================
--- tip.orig/arch/blackfin/kernel/init_task.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright 2004-2009 Analog Devices Inc.
- *
- * Licensed under the GPL-2 or later
- */
-
-#include <linux/mm.h>
-#include <linux/module.h>
-#include <linux/init_task.h>
-#include <linux/mqueue.h>
-#include <linux/fs.h>
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-/*
- * Initial task structure.
- *
- * All other task structs will be allocated on slabs in fork.c
- */
-struct task_struct init_task = INIT_TASK(init_task);
-EXPORT_SYMBOL(init_task);
-
-/*
- * Initial thread structure.
- *
- * We need to make sure that this is 8192-byte aligned due to the
- * way process stacks are handled. This is done by having a special
- * "init_task" linker map entry.
- */
-union thread_union init_thread_union
-    __init_task_data = {
-INIT_THREAD_INFO(init_task)};



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 08/29] frv: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (4 preceding siblings ...)
  2012-04-30 20:15 ` [patch 05/29] blackfin: " Thomas Gleixner
@ 2012-04-30 20:15 ` Thomas Gleixner
  2012-04-30 20:15 ` [patch 07/29] cris: " Thomas Gleixner
                   ` (22 subsequent siblings)
  28 siblings, 0 replies; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:15 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, David Howells

[-- Attachment #1: frv-use-generic-idle-task.patch --]
[-- Type: text/plain, Size: 2850 bytes --]

Same code. Use the generic version. The special Makefile treatment is
pointless anyway as init_task.o contains only data which is handled by
the linker script. So no point on being treated like head text.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: David Howells <dhowells@redhat.com>
---
 arch/frv/Kconfig            |    1 +
 arch/frv/Makefile           |    2 +-
 arch/frv/kernel/Makefile    |    2 +-
 arch/frv/kernel/init_task.c |   32 --------------------------------
 4 files changed, 3 insertions(+), 34 deletions(-)

Index: tip/arch/frv/Kconfig
===================================================================
--- tip.orig/arch/frv/Kconfig
+++ tip/arch/frv/Kconfig
@@ -9,6 +9,7 @@ config FRV
 	select GENERIC_IRQ_SHOW
 	select ARCH_HAVE_NMI_SAFE_CMPXCHG
 	select GENERIC_CPU_DEVICES
+	select HAVE_GENERIC_INIT_TASK
 
 config ZONE_DMA
 	bool
Index: tip/arch/frv/Makefile
===================================================================
--- tip.orig/arch/frv/Makefile
+++ tip/arch/frv/Makefile
@@ -81,7 +81,7 @@ ifdef CONFIG_DEBUG_INFO
 KBUILD_AFLAGS	+= -Wa,--gdwarf2
 endif
 
-head-y		:= arch/frv/kernel/head.o arch/frv/kernel/init_task.o
+head-y		:= arch/frv/kernel/head.o
 
 core-y		+= arch/frv/kernel/ arch/frv/mm/
 libs-y		+= arch/frv/lib/
Index: tip/arch/frv/kernel/Makefile
===================================================================
--- tip.orig/arch/frv/kernel/Makefile
+++ tip/arch/frv/kernel/Makefile
@@ -5,7 +5,7 @@
 heads-y				:= head-uc-fr401.o head-uc-fr451.o head-uc-fr555.o
 heads-$(CONFIG_MMU)		:= head-mmu-fr451.o
 
-extra-y:= head.o init_task.o vmlinux.lds
+extra-y:= head.o vmlinux.lds
 
 obj-y := $(heads-y) entry.o entry-table.o break.o switch_to.o kernel_thread.o \
 	 kernel_execve.o process.o traps.o ptrace.o signal.o dma.o \
Index: tip/arch/frv/kernel/init_task.c
===================================================================
--- tip.orig/arch/frv/kernel/init_task.c
+++ /dev/null
@@ -1,32 +0,0 @@
-#include <linux/mm.h>
-#include <linux/module.h>
-#include <linux/sched.h>
-#include <linux/init.h>
-#include <linux/init_task.h>
-#include <linux/fs.h>
-#include <linux/mqueue.h>
-
-#include <asm/uaccess.h>
-#include <asm/pgtable.h>
-
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-/*
- * Initial thread structure.
- *
- * We need to make sure that this is THREAD_SIZE aligned due to the
- * way process stacks are handled. This is done by having a special
- * "init_task" linker map entry..
- */
-union thread_union init_thread_union __init_task_data =
-	{ INIT_THREAD_INFO(init_task) };
-
-/*
- * Initial task structure.
- *
- * All other task structs will be allocated on slabs in fork.c
- */
-struct task_struct init_task = INIT_TASK(init_task);
-
-EXPORT_SYMBOL(init_task);



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 07/29] cris: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (5 preceding siblings ...)
  2012-04-30 20:15 ` [patch 08/29] frv: " Thomas Gleixner
@ 2012-04-30 20:15 ` Thomas Gleixner
  2012-05-02 11:24   ` Jesper Nilsson
  2012-04-30 20:15 ` [patch 09/29] h8300: " Thomas Gleixner
                   ` (21 subsequent siblings)
  28 siblings, 1 reply; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:15 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, Jesper Nilsson

[-- Attachment #1: cris-use-generic-idle-task.patch --]
[-- Type: text/plain, Size: 1919 bytes --]

Same code. Use the generic version.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Jesper Nilsson <jesper.nilsson@axis.com>
---
 arch/cris/Kconfig          |    1 +
 arch/cris/kernel/process.c |   28 ----------------------------
 2 files changed, 1 insertion(+), 28 deletions(-)

Index: tip/arch/cris/Kconfig
===================================================================
--- tip.orig/arch/cris/Kconfig
+++ tip/arch/cris/Kconfig
@@ -50,6 +50,7 @@ config CRIS
 	select GENERIC_IRQ_SHOW
 	select GENERIC_IOMAP
 	select GENERIC_SMP_IDLE_THREAD if ETRAX_ARCH_V32
+	select HAVE_GENERIC_INIT_TASK
 
 config HZ
 	int
Index: tip/arch/cris/kernel/process.c
===================================================================
--- tip.orig/arch/cris/kernel/process.c
+++ tip/arch/cris/kernel/process.c
@@ -29,34 +29,6 @@
 //#define DEBUG
 
 /*
- * Initial task structure. Make this a per-architecture thing,
- * because different architectures tend to have different
- * alignment requirements and potentially different initial
- * setup.
- */
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-/*
- * Initial thread structure.
- *
- * We need to make sure that this is 8192-byte aligned due to the
- * way process stacks are handled. This is done by having a special
- * "init_task" linker map entry..
- */
-union thread_union init_thread_union __init_task_data =
-	{ INIT_THREAD_INFO(init_task) };
-
-/*
- * Initial task structure.
- *
- * All other task structs will be allocated on slabs in fork.c
- */
-struct task_struct init_task = INIT_TASK(init_task);
-
-EXPORT_SYMBOL(init_task);
-
-/*
  * The hlt_counter, disable_hlt and enable_hlt is just here as a hook if
  * there would ever be a halt sequence (for power save when idle) with
  * some largish delay when halting or resuming *and* a driver that can't



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 10/29] hexagon: Use generic idle_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (7 preceding siblings ...)
  2012-04-30 20:15 ` [patch 09/29] h8300: " Thomas Gleixner
@ 2012-04-30 20:15 ` Thomas Gleixner
  2012-05-03  0:46   ` Richard Kuo
  2012-04-30 20:15 ` [patch 12/29] m32r: Use generic init_task Thomas Gleixner
                   ` (19 subsequent siblings)
  28 siblings, 1 reply; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:15 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, Richard Kuo

[-- Attachment #1: hexagon-use-generic-idle-task.patch --]
[-- Type: text/plain, Size: 3817 bytes --]

Same code. Use the generic version. The special Makefile treatment is
pointless anyway as init_task.o contains only data which is handled by
the linker script. So no point on being treated like head text.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Richard Kuo <rkuo@codeaurora.org>
---
 arch/hexagon/Kconfig            |    1 
 arch/hexagon/Makefile           |    3 --
 arch/hexagon/kernel/Makefile    |    2 -
 arch/hexagon/kernel/init_task.c |   54 ----------------------------------------
 4 files changed, 3 insertions(+), 57 deletions(-)

Index: tip/arch/hexagon/Kconfig
===================================================================
--- tip.orig/arch/hexagon/Kconfig
+++ tip/arch/hexagon/Kconfig
@@ -28,6 +28,7 @@ config HEXAGON
 	select NO_IOPORT
 	select GENERIC_IOMAP
 	select GENERIC_SMP_IDLE_THREAD
+	select HAVE_GENERIC_INIT_TASK
 	# mostly generic routines, with some accelerated ones
 	---help---
 	  Qualcomm Hexagon is a processor architecture designed for high
Index: tip/arch/hexagon/Makefile
===================================================================
--- tip.orig/arch/hexagon/Makefile
+++ tip/arch/hexagon/Makefile
@@ -45,8 +45,7 @@ KBUILD_AFLAGS += -DTHREADINFO_REG=$(TIR_
 LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
 libs-y += $(LIBGCC)
 
-head-y := arch/hexagon/kernel/head.o \
-	arch/hexagon/kernel/init_task.o
+head-y := arch/hexagon/kernel/head.o
 
 core-y += arch/hexagon/kernel/ \
 	arch/hexagon/mm/ \
Index: tip/arch/hexagon/kernel/Makefile
===================================================================
--- tip.orig/arch/hexagon/kernel/Makefile
+++ tip/arch/hexagon/kernel/Makefile
@@ -1,4 +1,4 @@
-extra-y := head.o vmlinux.lds init_task.o
+extra-y := head.o vmlinux.lds
 
 obj-$(CONFIG_SMP) += smp.o topology.o
 
Index: tip/arch/hexagon/kernel/init_task.c
===================================================================
--- tip.orig/arch/hexagon/kernel/init_task.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Init task definition
- *
- * Copyright (c) 2010-2011, Code Aurora Forum. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#include <linux/mm.h>
-#include <linux/module.h>
-#include <linux/sched.h>
-#include <linux/init_task.h>
-#include <linux/fs.h>
-#include <linux/mqueue.h>
-#include <asm/thread_info.h>
-#include <asm/uaccess.h>
-#include <asm/pgtable.h>
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-
-/*
- * Initial thread structure.
- *
- * We need to make sure that this is 8192-byte aligned due to the
- * way process stacks are handled. This is done by making sure
- * the linker maps this in the .text segment right after head.S,
- * and making head.S ensure the proper alignment.
- */
-union thread_union init_thread_union
-	__attribute__((__section__(".data.init_task"),
-		__aligned__(THREAD_SIZE))) = {
-			INIT_THREAD_INFO(init_task)
-		};
-
-/*
- * Initial task structure.
- *
- * All other task structs will be allocated on slabs in fork.c
- */
-struct task_struct init_task = INIT_TASK(init_task);
-EXPORT_SYMBOL(init_task);



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 09/29] h8300: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (6 preceding siblings ...)
  2012-04-30 20:15 ` [patch 07/29] cris: " Thomas Gleixner
@ 2012-04-30 20:15 ` Thomas Gleixner
  2012-04-30 20:15 ` [patch 10/29] hexagon: Use generic idle_task Thomas Gleixner
                   ` (20 subsequent siblings)
  28 siblings, 0 replies; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:15 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, Yoshinori Sato

[-- Attachment #1: h8300-use-generic-idle-task.patch --]
[-- Type: text/plain, Size: 2281 bytes --]

Same code. Use the generic version.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
---
 arch/h8300/Kconfig            |    1 +
 arch/h8300/kernel/Makefile    |    2 +-
 arch/h8300/kernel/init_task.c |   36 ------------------------------------
 3 files changed, 2 insertions(+), 37 deletions(-)

Index: tip/arch/h8300/Kconfig
===================================================================
--- tip.orig/arch/h8300/Kconfig
+++ tip/arch/h8300/Kconfig
@@ -5,6 +5,7 @@ config H8300
 	select HAVE_GENERIC_HARDIRQS
 	select GENERIC_IRQ_SHOW
 	select GENERIC_CPU_DEVICES
+	select HAVE_GENERIC_INIT_TASK
 
 config SYMBOL_PREFIX
 	string
Index: tip/arch/h8300/kernel/Makefile
===================================================================
--- tip.orig/arch/h8300/kernel/Makefile
+++ tip/arch/h8300/kernel/Makefile
@@ -6,7 +6,7 @@ extra-y := vmlinux.lds
 
 obj-y := process.o traps.o ptrace.o irq.o \
 	 sys_h8300.o time.o signal.o \
-         setup.o gpio.o init_task.o syscalls.o \
+         setup.o gpio.o syscalls.o \
 	 entry.o timer/
 
 obj-$(CONFIG_MODULES) += module.o h8300_ksyms.o 
Index: tip/arch/h8300/kernel/init_task.c
===================================================================
--- tip.orig/arch/h8300/kernel/init_task.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- *  linux/arch/h8300/kernel/init_task.c
- */
-#include <linux/mm.h>
-#include <linux/module.h>
-#include <linux/sched.h>
-#include <linux/init.h>
-#include <linux/init_task.h>
-#include <linux/fs.h>
-#include <linux/mqueue.h>
-
-#include <asm/uaccess.h>
-#include <asm/pgtable.h>
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-/*
- * Initial task structure.
- *
- * All other task structs will be allocated on slabs in fork.c
- */
-__asm__(".align 4");
-struct task_struct init_task = INIT_TASK(init_task);
-
-EXPORT_SYMBOL(init_task);
-
-/*
- * Initial thread structure.
- *
- * We need to make sure that this is 8192-byte aligned due to the
- * way process stacks are handled. This is done by having a special
- * "init_task" linker map entry..
- */
-union thread_union init_thread_union __init_task_data =
-	{ INIT_THREAD_INFO(init_task) };
-



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 11/29] ia64: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (9 preceding siblings ...)
  2012-04-30 20:15 ` [patch 12/29] m32r: Use generic init_task Thomas Gleixner
@ 2012-04-30 20:15 ` Thomas Gleixner
  2012-04-30 20:15 ` [patch 13/29] m68k: " Thomas Gleixner
                   ` (17 subsequent siblings)
  28 siblings, 0 replies; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:15 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, Tony Luck

[-- Attachment #1: ia64-use-generic-idle-task.patch --]
[-- Type: text/plain, Size: 3342 bytes --]

IA64 has a special crafted version of init_task, but I could not
figure out why it couldn't work with the generic one.

The special Makefile treatment is pointless as init_task.o contains
only data which is handled by the linker script. So no point on being
treated like head text.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Tony Luck <tony.luck@intel.com>
---
 arch/ia64/Kconfig            |    1 +
 arch/ia64/Makefile           |    2 +-
 arch/ia64/kernel/Makefile    |    2 +-
 arch/ia64/kernel/init_task.c |   42 ------------------------------------------
 4 files changed, 3 insertions(+), 44 deletions(-)

Index: tip/arch/ia64/Kconfig
===================================================================
--- tip.orig/arch/ia64/Kconfig
+++ tip/arch/ia64/Kconfig
@@ -34,6 +34,7 @@ config IA64
 	select ARCH_HAVE_NMI_SAFE_CMPXCHG
 	select GENERIC_IOMAP
 	select GENERIC_SMP_IDLE_THREAD
+	select HAVE_GENERIC_INIT_TASK
 	default y
 	help
 	  The Itanium Processor Family is Intel's 64-bit successor to
Index: tip/arch/ia64/Makefile
===================================================================
--- tip.orig/arch/ia64/Makefile
+++ tip/arch/ia64/Makefile
@@ -42,7 +42,7 @@ $(error Sorry, you need a newer version 
 endif
 
 KBUILD_CFLAGS += $(cflags-y)
-head-y := arch/ia64/kernel/head.o arch/ia64/kernel/init_task.o
+head-y := arch/ia64/kernel/head.o
 
 libs-y				+= arch/ia64/lib/
 core-y				+= arch/ia64/kernel/ arch/ia64/mm/
Index: tip/arch/ia64/kernel/Makefile
===================================================================
--- tip.orig/arch/ia64/kernel/Makefile
+++ tip/arch/ia64/kernel/Makefile
@@ -6,7 +6,7 @@ ifdef CONFIG_DYNAMIC_FTRACE
 CFLAGS_REMOVE_ftrace.o = -pg
 endif
 
-extra-y	:= head.o init_task.o vmlinux.lds
+extra-y	:= head.o vmlinux.lds
 
 obj-y := entry.o efi.o efi_stub.o gate-data.o fsys.o ia64_ksyms.o irq.o irq_ia64.o	\
 	 irq_lsapic.o ivt.o machvec.o pal.o paravirt_patchlist.o patch.o process.o perfmon.o ptrace.o sal.o		\
Index: tip/arch/ia64/kernel/init_task.c
===================================================================
--- tip.orig/arch/ia64/kernel/init_task.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * This is where we statically allocate and initialize the initial
- * task.
- *
- * Copyright (C) 1999, 2002-2003 Hewlett-Packard Co
- *	David Mosberger-Tang <davidm@hpl.hp.com>
- */
-
-#include <linux/init.h>
-#include <linux/mm.h>
-#include <linux/fs.h>
-#include <linux/module.h>
-#include <linux/sched.h>
-#include <linux/init_task.h>
-#include <linux/mqueue.h>
-
-#include <asm/uaccess.h>
-#include <asm/pgtable.h>
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-/*
- * Initial task structure.
- *
- * We need to make sure that this is properly aligned due to the way process stacks are
- * handled. This is done by having a special ".data..init_task" section...
- */
-#define init_thread_info	init_task_mem.s.thread_info
-
-union {
-	struct {
-		struct task_struct task;
-		struct thread_info thread_info;
-	} s;
-	unsigned long stack[KERNEL_STACK_SIZE/sizeof (unsigned long)];
-} init_task_mem asm ("init_task") __init_task_data =
-	{{
-	.task =		INIT_TASK(init_task_mem.s.task),
-	.thread_info =	INIT_THREAD_INFO(init_task_mem.s.task)
-}};
-
-EXPORT_SYMBOL(init_task);



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 12/29] m32r: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (8 preceding siblings ...)
  2012-04-30 20:15 ` [patch 10/29] hexagon: Use generic idle_task Thomas Gleixner
@ 2012-04-30 20:15 ` Thomas Gleixner
  2012-04-30 20:15 ` [patch 11/29] ia64: " Thomas Gleixner
                   ` (18 subsequent siblings)
  28 siblings, 0 replies; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:15 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, Hirokazu Takata

[-- Attachment #1: m32r-use-generic-init-task.patch --]
[-- Type: text/plain, Size: 2810 bytes --]

Same code. Use the generic version. The special Makefile treatment is
pointless anyway as init_task.o contains only data which is handled by
the linker script. So no point on being treated like head text.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Hirokazu Takata <takata@linux-m32r.org>
---
 arch/m32r/Kconfig            |    1 +
 arch/m32r/Makefile           |    2 +-
 arch/m32r/kernel/Makefile    |    2 +-
 arch/m32r/kernel/init_task.c |   34 ----------------------------------
 4 files changed, 3 insertions(+), 36 deletions(-)

Index: tip/arch/m32r/Kconfig
===================================================================
--- tip.orig/arch/m32r/Kconfig
+++ tip/arch/m32r/Kconfig
@@ -11,6 +11,7 @@ config M32R
 	select GENERIC_IRQ_PROBE
 	select GENERIC_IRQ_SHOW
 	select GENERIC_ATOMIC64
+	select HAVE_GENERIC_INIT_TASK
 
 config SBUS
 	bool
Index: tip/arch/m32r/Makefile
===================================================================
--- tip.orig/arch/m32r/Makefile
+++ tip/arch/m32r/Makefile
@@ -31,7 +31,7 @@ KBUILD_AFLAGS += $(aflags-y)
 
 CHECKFLAGS	+= -D__m32r__ -D__BIG_ENDIAN__=1
 
-head-y	:= arch/m32r/kernel/head.o arch/m32r/kernel/init_task.o
+head-y	:= arch/m32r/kernel/head.o
 
 LIBGCC	:= $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
 
Index: tip/arch/m32r/kernel/Makefile
===================================================================
--- tip.orig/arch/m32r/kernel/Makefile
+++ tip/arch/m32r/kernel/Makefile
@@ -2,7 +2,7 @@
 # Makefile for the Linux/M32R kernel.
 #
 
-extra-y	:= head.o init_task.o vmlinux.lds
+extra-y	:= head.o vmlinux.lds
 
 obj-y	:= process.o entry.o traps.o align.o irq.o setup.o time.o \
 	m32r_ksyms.o sys_m32r.o signal.o ptrace.o
Index: tip/arch/m32r/kernel/init_task.c
===================================================================
--- tip.orig/arch/m32r/kernel/init_task.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* orig : i386 init_task.c */
-
-#include <linux/mm.h>
-#include <linux/module.h>
-#include <linux/sched.h>
-#include <linux/init.h>
-#include <linux/init_task.h>
-#include <linux/fs.h>
-#include <linux/mqueue.h>
-
-#include <asm/uaccess.h>
-#include <asm/pgtable.h>
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-/*
- * Initial thread structure.
- *
- * We need to make sure that this is 8192-byte aligned due to the
- * way process stacks are handled. This is done by having a special
- * "init_task" linker map entry..
- */
-union thread_union init_thread_union __init_task_data =
-	{ INIT_THREAD_INFO(init_task) };
-
-/*
- * Initial task structure.
- *
- * All other task structs will be allocated on slabs in fork.c
- */
-struct task_struct init_task = INIT_TASK(init_task);
-
-EXPORT_SYMBOL(init_task);
-



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 14/29] microblaze: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (11 preceding siblings ...)
  2012-04-30 20:15 ` [patch 13/29] m68k: " Thomas Gleixner
@ 2012-04-30 20:15 ` Thomas Gleixner
  2012-04-30 20:15 ` [patch 16/29] mn10300: " Thomas Gleixner
                   ` (15 subsequent siblings)
  28 siblings, 0 replies; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:15 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, Michal Simek

[-- Attachment #1: microblaze-use-generic-init-task.patch --]
[-- Type: text/plain, Size: 2183 bytes --]

Same code. Use the generic version.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Michal Simek <monstr@monstr.eu>
---
 arch/microblaze/Kconfig            |    1 +
 arch/microblaze/kernel/Makefile    |    2 +-
 arch/microblaze/kernel/init_task.c |   26 --------------------------
 3 files changed, 2 insertions(+), 27 deletions(-)

Index: tip/arch/microblaze/Kconfig
===================================================================
--- tip.orig/arch/microblaze/Kconfig
+++ tip/arch/microblaze/Kconfig
@@ -22,6 +22,7 @@ config MICROBLAZE
 	select GENERIC_PCI_IOMAP
 	select GENERIC_CPU_DEVICES
 	select GENERIC_ATOMIC64
+	select HAVE_GENERIC_INIT_TASK
 
 config SWAP
 	def_bool n
Index: tip/arch/microblaze/kernel/Makefile
===================================================================
--- tip.orig/arch/microblaze/kernel/Makefile
+++ tip/arch/microblaze/kernel/Makefile
@@ -16,7 +16,7 @@ endif
 extra-y := head.o vmlinux.lds
 
 obj-y += dma.o exceptions.o \
-	hw_exception_handler.o init_task.o intc.o irq.o \
+	hw_exception_handler.o intc.o irq.o \
 	process.o prom.o prom_parse.o ptrace.o \
 	reset.o setup.o signal.o sys_microblaze.o timer.o traps.o unwind.o
 
Index: tip/arch/microblaze/kernel/init_task.c
===================================================================
--- tip.orig/arch/microblaze/kernel/init_task.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (C) 2009 Michal Simek <monstr@monstr.eu>
- * Copyright (C) 2009 PetaLogix
- * Copyright (C) 2006 Atmark Techno, Inc.
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- */
-
-#include <linux/module.h>
-#include <linux/sched.h>
-#include <linux/init_task.h>
-#include <linux/fs.h>
-#include <linux/mqueue.h>
-
-#include <asm/pgtable.h>
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-
-union thread_union init_thread_union __init_task_data =
-	{ INIT_THREAD_INFO(init_task) };
-
-struct task_struct init_task = INIT_TASK(init_task);
-EXPORT_SYMBOL(init_task);



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 13/29] m68k: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (10 preceding siblings ...)
  2012-04-30 20:15 ` [patch 11/29] ia64: " Thomas Gleixner
@ 2012-04-30 20:15 ` Thomas Gleixner
  2012-04-30 20:15 ` [patch 14/29] microblaze: " Thomas Gleixner
                   ` (16 subsequent siblings)
  28 siblings, 0 replies; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:15 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, Geert Uytterhoeven

[-- Attachment #1: m68k-use-generic-init-task.patch --]
[-- Type: text/plain, Size: 2367 bytes --]

Same code. Use the generic version.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
---
 arch/m68k/Kconfig            |    1 +
 arch/m68k/kernel/Makefile    |    2 +-
 arch/m68k/kernel/init_task.c |   35 -----------------------------------
 3 files changed, 2 insertions(+), 36 deletions(-)

Index: tip/arch/m68k/Kconfig
===================================================================
--- tip.orig/arch/m68k/Kconfig
+++ tip/arch/m68k/Kconfig
@@ -8,6 +8,7 @@ config M68K
 	select ARCH_HAVE_NMI_SAFE_CMPXCHG if RMW_INSNS
 	select GENERIC_CPU_DEVICES
 	select FPU if MMU
+	select HAVE_GENERIC_INIT_TASK
 
 config RWSEM_GENERIC_SPINLOCK
 	bool
Index: tip/arch/m68k/kernel/Makefile
===================================================================
--- tip.orig/arch/m68k/kernel/Makefile
+++ tip/arch/m68k/kernel/Makefile
@@ -13,7 +13,7 @@ extra-$(CONFIG_SUN3X)	:= head.o
 extra-$(CONFIG_SUN3)	:= sun3-head.o
 extra-y			+= vmlinux.lds
 
-obj-y	:= entry.o init_task.o irq.o m68k_ksyms.o module.o process.o ptrace.o
+obj-y	:= entry.o irq.o m68k_ksyms.o module.o process.o ptrace.o
 obj-y	+= setup.o signal.o sys_m68k.o syscalltable.o time.o traps.o
 
 obj-$(CONFIG_MMU_MOTOROLA) += ints.o vectors.o
Index: tip/arch/m68k/kernel/init_task.c
===================================================================
--- tip.orig/arch/m68k/kernel/init_task.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- *  linux/arch/m68knommu/kernel/init_task.c
- */
-#include <linux/mm.h>
-#include <linux/module.h>
-#include <linux/sched.h>
-#include <linux/init.h>
-#include <linux/init_task.h>
-#include <linux/fs.h>
-#include <linux/mqueue.h>
-
-#include <asm/uaccess.h>
-#include <asm/pgtable.h>
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-/*
- * Initial task structure.
- *
- * All other task structs will be allocated on slabs in fork.c
- */
-struct task_struct init_task = INIT_TASK(init_task);
-
-EXPORT_SYMBOL(init_task);
-
-/*
- * Initial thread structure.
- *
- * We need to make sure that this is THREAD size aligned due to the
- * way process stacks are handled. This is done by having a special
- * "init_task" linker map entry..
- */
-union thread_union init_thread_union __init_task_data =
-	{ INIT_THREAD_INFO(init_task) };
-



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 16/29] mn10300: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (12 preceding siblings ...)
  2012-04-30 20:15 ` [patch 14/29] microblaze: " Thomas Gleixner
@ 2012-04-30 20:15 ` Thomas Gleixner
  2012-04-30 20:15 ` [patch 15/29] mips: " Thomas Gleixner
                   ` (14 subsequent siblings)
  28 siblings, 0 replies; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:15 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, David Howells

[-- Attachment #1: mn10300-use-generic-init-task.patch --]
[-- Type: text/plain, Size: 3210 bytes --]

Same code. Use the generic version. The special Makefile treatment is
pointless anyway as init_task.o contains only data which is handled by
the linker script. So no point on being treated like head text.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: David Howells <dhowells@redhat.com>
---
 arch/mn10300/Kconfig            |    1 +
 arch/mn10300/Makefile           |    2 +-
 arch/mn10300/kernel/Makefile    |    2 +-
 arch/mn10300/kernel/init_task.c |   39 ---------------------------------------
 4 files changed, 3 insertions(+), 41 deletions(-)

Index: tip/arch/mn10300/Kconfig
===================================================================
--- tip.orig/arch/mn10300/Kconfig
+++ tip/arch/mn10300/Kconfig
@@ -6,6 +6,7 @@ config MN10300
 	select HAVE_ARCH_TRACEHOOK
 	select HAVE_ARCH_KGDB
 	select HAVE_NMI_WATCHDOG if MN10300_WD_TIMER
+	select HAVE_GENERIC_INIT_TASK
 
 config AM33_2
 	def_bool n
Index: tip/arch/mn10300/Makefile
===================================================================
--- tip.orig/arch/mn10300/Makefile
+++ tip/arch/mn10300/Makefile
@@ -51,7 +51,7 @@ UNIT		:= asb2364
 endif
 
 
-head-y		:= arch/mn10300/kernel/head.o arch/mn10300/kernel/init_task.o
+head-y		:= arch/mn10300/kernel/head.o
 
 core-y		+= arch/mn10300/kernel/ arch/mn10300/mm/
 
Index: tip/arch/mn10300/kernel/Makefile
===================================================================
--- tip.orig/arch/mn10300/kernel/Makefile
+++ tip/arch/mn10300/kernel/Makefile
@@ -1,7 +1,7 @@
 #
 # Makefile for the MN10300-specific core kernel code
 #
-extra-y := head.o init_task.o vmlinux.lds
+extra-y := head.o vmlinux.lds
 
 fpu-obj-y := fpu-nofpu.o fpu-nofpu-low.o
 fpu-obj-$(CONFIG_FPU) := fpu.o fpu-low.o
Index: tip/arch/mn10300/kernel/init_task.c
===================================================================
--- tip.orig/arch/mn10300/kernel/init_task.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* MN10300 Initial task definitions
- *
- * Copyright (C) 2007 Matsushita Electric Industrial Co., Ltd.
- * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public Licence
- * as published by the Free Software Foundation; either version
- * 2 of the Licence, or (at your option) any later version.
- */
-#include <linux/mm.h>
-#include <linux/module.h>
-#include <linux/sched.h>
-#include <linux/init.h>
-#include <linux/init_task.h>
-#include <linux/fs.h>
-#include <linux/mqueue.h>
-#include <asm/uaccess.h>
-#include <asm/pgtable.h>
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-/*
- * Initial thread structure.
- *
- * We need to make sure that this is THREAD_SIZE aligned due to the
- * way process stacks are handled. This is done by having a special
- * "init_task" linker map entry..
- */
-union thread_union init_thread_union __init_task_data =
-	{ INIT_THREAD_INFO(init_task) };
-
-/*
- * Initial task structure.
- *
- * All other task structs will be allocated on slabs in fork.c
- */
-struct task_struct init_task = INIT_TASK(init_task);
-EXPORT_SYMBOL(init_task);



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 15/29] mips: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (13 preceding siblings ...)
  2012-04-30 20:15 ` [patch 16/29] mn10300: " Thomas Gleixner
@ 2012-04-30 20:15 ` Thomas Gleixner
  2012-04-30 20:16 ` [patch 18/29] parisc: " Thomas Gleixner
                   ` (13 subsequent siblings)
  28 siblings, 0 replies; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:15 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, Ralf Baechle

[-- Attachment #1: mips-use-generic-init-task.patch --]
[-- Type: text/plain, Size: 3575 bytes --]

Same code. Use the generic version. The special Makefile treatment is
pointless anyway as init_task.o contains only data which is handled by
the linker script. So no point on being treated like head text.

Make the linker script align the task on THREAD_SIZE and not on
PAGE_SIZE, as PAGE_SIZE might be smaller than THREAD_SIZE.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Ralf Baechle <ralf@linux-mips.org>
---
 arch/mips/Kconfig              |    1 +
 arch/mips/Makefile             |    2 +-
 arch/mips/kernel/Makefile      |    2 +-
 arch/mips/kernel/init_task.c   |   35 -----------------------------------
 arch/mips/kernel/vmlinux.lds.S |    2 +-
 5 files changed, 4 insertions(+), 38 deletions(-)

Index: tip/arch/mips/Kconfig
===================================================================
--- tip.orig/arch/mips/Kconfig
+++ tip/arch/mips/Kconfig
@@ -30,6 +30,7 @@ config MIPS
 	select HAVE_MEMBLOCK_NODE_MAP
 	select ARCH_DISCARD_MEMBLOCK
 	select GENERIC_SMP_IDLE_THREAD
+	select HAVE_GENERIC_INIT_TASK
 
 menu "Machine selection"
 
Index: tip/arch/mips/Makefile
===================================================================
--- tip.orig/arch/mips/Makefile
+++ tip/arch/mips/Makefile
@@ -235,7 +235,7 @@ endif
 
 OBJCOPYFLAGS		+= --remove-section=.reginfo
 
-head-y := arch/mips/kernel/head.o arch/mips/kernel/init_task.o
+head-y := arch/mips/kernel/head.o
 
 libs-y			+= arch/mips/lib/
 
Index: tip/arch/mips/kernel/Makefile
===================================================================
--- tip.orig/arch/mips/kernel/Makefile
+++ tip/arch/mips/kernel/Makefile
@@ -2,7 +2,7 @@
 # Makefile for the Linux/MIPS kernel.
 #
 
-extra-y		:= head.o init_task.o vmlinux.lds
+extra-y		:= head.o vmlinux.lds
 
 obj-y		+= cpu-probe.o branch.o entry.o genex.o irq.o process.o \
 		   ptrace.o reset.o setup.o signal.o syscall.o \
Index: tip/arch/mips/kernel/init_task.c
===================================================================
--- tip.orig/arch/mips/kernel/init_task.c
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <linux/mm.h>
-#include <linux/export.h>
-#include <linux/sched.h>
-#include <linux/init_task.h>
-#include <linux/fs.h>
-#include <linux/mqueue.h>
-
-#include <asm/thread_info.h>
-#include <asm/uaccess.h>
-#include <asm/pgtable.h>
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-/*
- * Initial thread structure.
- *
- * We need to make sure that this is 8192-byte aligned due to the
- * way process stacks are handled. This is done by making sure
- * the linker maps this in the .text segment right after head.S,
- * and making head.S ensure the proper alignment.
- *
- * The things we do for performance..
- */
-union thread_union init_thread_union __init_task_data
-	__attribute__((__aligned__(THREAD_SIZE))) =
-		{ INIT_THREAD_INFO(init_task) };
-
-/*
- * Initial task structure.
- *
- * All other task structs will be allocated on slabs in fork.c
- */
-struct task_struct init_task = INIT_TASK(init_task);
-
-EXPORT_SYMBOL(init_task);
Index: tip/arch/mips/kernel/vmlinux.lds.S
===================================================================
--- tip.orig/arch/mips/kernel/vmlinux.lds.S
+++ tip/arch/mips/kernel/vmlinux.lds.S
@@ -72,7 +72,7 @@ SECTIONS
 	.data : {	/* Data */
 		. = . + DATAOFFSET;		/* for CONFIG_MAPPED_KERNEL */
 
-		INIT_TASK_DATA(PAGE_SIZE)
+		INIT_TASK_DATA(THREAD_SIZE)
 		NOSAVE_DATA
 		CACHELINE_ALIGNED_DATA(1 << CONFIG_MIPS_L1_CACHE_SHIFT)
 		READ_MOSTLY_DATA(1 << CONFIG_MIPS_L1_CACHE_SHIFT)



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 18/29] parisc: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (14 preceding siblings ...)
  2012-04-30 20:15 ` [patch 15/29] mips: " Thomas Gleixner
@ 2012-04-30 20:16 ` Thomas Gleixner
  2012-04-30 20:16 ` [patch 17/29] openrisc: " Thomas Gleixner
                   ` (12 subsequent siblings)
  28 siblings, 0 replies; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:16 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, James E.J. Bottomley

[-- Attachment #1: parisc-use-generic-init-task.patch --]
[-- Type: text/plain, Size: 5058 bytes --]

Same code, except: The alignment of init_thread_union is handled via
the linker script, so no point to have it with the data structure. The
extra asm(".data") looks like a leftover from an asm to C conversion
and is pointless.

Use the generic version.

Move the page table data to parisc/mm/init.c and get rid of
parisc/../init_task.c

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: "James E.J. Bottomley" <jejb@parisc-linux.org>
---
 arch/parisc/Kconfig            |    1 
 arch/parisc/kernel/init_task.c |   70 -----------------------------------------
 arch/parisc/mm/init.c          |   12 +++++++
 3 files changed, 13 insertions(+), 70 deletions(-)

Index: tip/arch/parisc/Kconfig
===================================================================
--- tip.orig/arch/parisc/Kconfig
+++ tip/arch/parisc/Kconfig
@@ -18,6 +18,7 @@ config PARISC
 	select IRQ_PER_CPU
 	select ARCH_HAVE_NMI_SAFE_CMPXCHG
 	select GENERIC_SMP_IDLE_THREAD
+	select HAVE_GENERIC_INIT_TASK
 
 	help
 	  The PA-RISC microprocessor is designed by Hewlett-Packard and used
Index: tip/arch/parisc/kernel/init_task.c
===================================================================
--- tip.orig/arch/parisc/kernel/init_task.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* 
- *    Static declaration of "init" task data structure.
- *
- *    Copyright (C) 2000 Paul Bame <bame at parisc-linux.org>
- *    Copyright (C) 2000-2001 John Marvin <jsm at parisc-linux.org>
- *    Copyright (C) 2001 Helge Deller <deller @ parisc-linux.org>
- *    Copyright (C) 2002 Matthew Wilcox <willy with parisc-linux.org>
- *
- *
- *    This program is free software; you can redistribute it and/or modify
- *    it under the terms of the GNU General Public License as published by
- *    the Free Software Foundation; either version 2 of the License, or
- *    (at your option) any later version.
- *
- *    This program is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU General Public License for more details.
- *
- *    You should have received a copy of the GNU General Public License
- *    along with this program; if not, write to the Free Software
- *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#include <linux/mm.h>
-#include <linux/fs.h>
-#include <linux/module.h>
-#include <linux/sched.h>
-#include <linux/init.h>
-#include <linux/init_task.h>
-#include <linux/mqueue.h>
-
-#include <asm/uaccess.h>
-#include <asm/pgtable.h>
-#include <asm/pgalloc.h>
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-/*
- * Initial task structure.
- *
- * We need to make sure that this is 16384-byte aligned due to the
- * way process stacks are handled. This is done by having a special
- * "init_task" linker map entry..
- */
-union thread_union init_thread_union __init_task_data
-	__attribute__((aligned(128))) =
-		{ INIT_THREAD_INFO(init_task) };
-
-#if PT_NLEVELS == 3
-/* NOTE: This layout exactly conforms to the hybrid L2/L3 page table layout
- * with the first pmd adjacent to the pgd and below it. gcc doesn't actually
- * guarantee that global objects will be laid out in memory in the same order 
- * as the order of declaration, so put these in different sections and use
- * the linker script to order them. */
-pmd_t pmd0[PTRS_PER_PMD] __attribute__ ((__section__ (".data..vm0.pmd"), aligned(PAGE_SIZE)));
-#endif
-
-pgd_t swapper_pg_dir[PTRS_PER_PGD] __attribute__ ((__section__ (".data..vm0.pgd"), aligned(PAGE_SIZE)));
-pte_t pg0[PT_INITIAL * PTRS_PER_PTE] __attribute__ ((__section__ (".data..vm0.pte"), aligned(PAGE_SIZE)));
-
-/*
- * Initial task structure.
- *
- * All other task structs will be allocated on slabs in fork.c
- */
-EXPORT_SYMBOL(init_task);
-
-__asm__(".data");
-struct task_struct init_task = INIT_TASK(init_task);
Index: tip/arch/parisc/mm/init.c
===================================================================
--- tip.orig/arch/parisc/mm/init.c
+++ tip/arch/parisc/mm/init.c
@@ -33,6 +33,18 @@
 
 extern int  data_start;
 
+#if PT_NLEVELS == 3
+/* NOTE: This layout exactly conforms to the hybrid L2/L3 page table layout
+ * with the first pmd adjacent to the pgd and below it. gcc doesn't actually
+ * guarantee that global objects will be laid out in memory in the same order
+ * as the order of declaration, so put these in different sections and use
+ * the linker script to order them. */
+pmd_t pmd0[PTRS_PER_PMD] __attribute__ ((__section__ (".data..vm0.pmd"), aligned(PAGE_SIZE)));
+#endif
+
+pgd_t swapper_pg_dir[PTRS_PER_PGD] __attribute__ ((__section__ (".data..vm0.pgd"), aligned(PAGE_SIZE)));
+pte_t pg0[PT_INITIAL * PTRS_PER_PTE] __attribute__ ((__section__ (".data..vm0.pte"), aligned(PAGE_SIZE)));
+
 #ifdef CONFIG_DISCONTIGMEM
 struct node_map_data node_data[MAX_NUMNODES] __read_mostly;
 unsigned char pfnnid_map[PFNNID_MAP_MAX] __read_mostly;



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 17/29] openrisc: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (15 preceding siblings ...)
  2012-04-30 20:16 ` [patch 18/29] parisc: " Thomas Gleixner
@ 2012-04-30 20:16 ` Thomas Gleixner
  2012-04-30 20:16 ` [patch 19/29] powerpc: " Thomas Gleixner
                   ` (11 subsequent siblings)
  28 siblings, 0 replies; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:16 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, Jonas Bonn

[-- Attachment #1: openrisc-use-generic-init-task.patch --]
[-- Type: text/plain, Size: 3338 bytes --]

Same code. Use the generic version. The special Makefile treatment is
pointless anyway as init_task.o contains only data which is handled by
the linker script. So no point on being treated like head text.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Jonas Bonn <jonas@southpole.se>
---
 arch/openrisc/Kconfig            |    1 
 arch/openrisc/Makefile           |    2 -
 arch/openrisc/kernel/Makefile    |    2 -
 arch/openrisc/kernel/init_task.c |   42 ---------------------------------------
 4 files changed, 3 insertions(+), 44 deletions(-)

Index: tip/arch/openrisc/Kconfig
===================================================================
--- tip.orig/arch/openrisc/Kconfig
+++ tip/arch/openrisc/Kconfig
@@ -17,6 +17,7 @@ config OPENRISC
 	select GENERIC_IOMAP
 	select GENERIC_CPU_DEVICES
 	select GENERIC_ATOMIC64
+	select HAVE_GENERIC_INIT_TASK
 
 config MMU
 	def_bool y
Index: tip/arch/openrisc/Makefile
===================================================================
--- tip.orig/arch/openrisc/Makefile
+++ tip/arch/openrisc/Makefile
@@ -38,7 +38,7 @@ else
 	KBUILD_CFLAGS += $(call cc-option,-msoft-div)
 endif
 
-head-y 		:= arch/openrisc/kernel/head.o arch/openrisc/kernel/init_task.o
+head-y 		:= arch/openrisc/kernel/head.o
 
 core-y		+= arch/openrisc/lib/ \
 		   arch/openrisc/kernel/ \
Index: tip/arch/openrisc/kernel/Makefile
===================================================================
--- tip.orig/arch/openrisc/kernel/Makefile
+++ tip/arch/openrisc/kernel/Makefile
@@ -2,7 +2,7 @@
 # Makefile for the linux kernel.
 #
 
-extra-y	:= head.o vmlinux.lds init_task.o
+extra-y	:= head.o vmlinux.lds
 
 obj-y	:= setup.o idle.o or32_ksyms.o process.o dma.o \
 	   traps.o time.o irq.o entry.o ptrace.o signal.o sys_or32.o \
Index: tip/arch/openrisc/kernel/init_task.c
===================================================================
--- tip.orig/arch/openrisc/kernel/init_task.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * OpenRISC init_task.c
- *
- * Linux architectural port borrowing liberally from similar works of
- * others.  All original copyrights apply as per the original source
- * declaration.
- *
- * Modifications for the OpenRISC architecture:
- * Copyright (C) 2003 Matjaz Breskvar <phoenix@bsemi.com>
- * Copyright (C) 2010-2011 Jonas Bonn <jonas@southpole.se>
- *
- *      This program is free software; you can redistribute it and/or
- *      modify it under the terms of the GNU General Public License
- *      as published by the Free Software Foundation; either version
- *      2 of the License, or (at your option) any later version.
- */
-
-#include <linux/init_task.h>
-#include <linux/mqueue.h>
-#include <linux/export.h>
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-
-/*
- * Initial thread structure.
- *
- * We need to make sure that this is THREAD_SIZE aligned due to the
- * way process stacks are handled. This is done by having a special
- * "init_task" linker map entry..
- */
-union thread_union init_thread_union __init_task_data = {
-	INIT_THREAD_INFO(init_task)
-};
-
-/*
- * Initial task structure.
- *
- * All other task structs will be allocated on slabs in fork.c
- */
-struct task_struct init_task = INIT_TASK(init_task);
-EXPORT_SYMBOL(init_task);



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 20/29] s390: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (17 preceding siblings ...)
  2012-04-30 20:16 ` [patch 19/29] powerpc: " Thomas Gleixner
@ 2012-04-30 20:16 ` Thomas Gleixner
  2012-04-30 20:16 ` [patch 22/29] sh: " Thomas Gleixner
                   ` (9 subsequent siblings)
  28 siblings, 0 replies; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:16 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, Martin Schwidefsky

[-- Attachment #1: s390-use-generic-init-task.patch --]
[-- Type: text/plain, Size: 3058 bytes --]

Same code. Use the generic version. The special Makefile treatment is
pointless anyway as init_task.o contains only data which is handled by
the linker script. So no point on being treated like head text.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
---
 arch/s390/Kconfig            |    1 +
 arch/s390/Makefile           |    1 -
 arch/s390/kernel/Makefile    |    2 +-
 arch/s390/kernel/init_task.c |   38 --------------------------------------
 4 files changed, 2 insertions(+), 40 deletions(-)

Index: tip/arch/s390/Kconfig
===================================================================
--- tip.orig/arch/s390/Kconfig
+++ tip/arch/s390/Kconfig
@@ -123,6 +123,7 @@ config S390
 	select ARCH_INLINE_WRITE_UNLOCK_IRQ
 	select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
 	select GENERIC_SMP_IDLE_THREAD
+	select HAVE_GENERIC_INIT_TASK
 
 config SCHED_OMIT_FRAME_POINTER
 	def_bool y
Index: tip/arch/s390/Makefile
===================================================================
--- tip.orig/arch/s390/Makefile
+++ tip/arch/s390/Makefile
@@ -91,7 +91,6 @@ OBJCOPYFLAGS	:= -O binary
 
 head-y		:= arch/s390/kernel/head.o
 head-y		+= arch/s390/kernel/$(if $(CONFIG_64BIT),head64.o,head31.o)
-head-y		+= arch/s390/kernel/init_task.o
 
 # See arch/s390/Kbuild for content of core part of the kernel
 core-y		+= arch/s390/
Index: tip/arch/s390/kernel/Makefile
===================================================================
--- tip.orig/arch/s390/kernel/Makefile
+++ tip/arch/s390/kernel/Makefile
@@ -28,7 +28,7 @@ obj-y	:=  bitmap.o traps.o time.o proces
 obj-y	+= $(if $(CONFIG_64BIT),entry64.o,entry.o)
 obj-y	+= $(if $(CONFIG_64BIT),reipl64.o,reipl.o)
 
-extra-y				+= head.o init_task.o vmlinux.lds
+extra-y				+= head.o vmlinux.lds
 extra-y				+= $(if $(CONFIG_64BIT),head64.o,head31.o)
 
 obj-$(CONFIG_MODULES)		+= s390_ksyms.o module.o
Index: tip/arch/s390/kernel/init_task.c
===================================================================
--- tip.orig/arch/s390/kernel/init_task.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- *  arch/s390/kernel/init_task.c
- *
- *  S390 version
- *
- *  Derived from "arch/i386/kernel/init_task.c"
- */
-
-#include <linux/mm.h>
-#include <linux/fs.h>
-#include <linux/module.h>
-#include <linux/sched.h>
-#include <linux/init_task.h>
-#include <linux/mqueue.h>
-
-#include <asm/uaccess.h>
-#include <asm/pgtable.h>
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-/*
- * Initial thread structure.
- *
- * We need to make sure that this is THREAD_SIZE aligned due to the
- * way process stacks are handled. This is done by having a special
- * "init_task" linker map entry..
- */
-union thread_union init_thread_union __init_task_data =
-	{ INIT_THREAD_INFO(init_task) };
-
-/*
- * Initial task structure.
- *
- * All other task structs will be allocated on slabs in fork.c
- */
-struct task_struct init_task = INIT_TASK(init_task);
-
-EXPORT_SYMBOL(init_task);



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 19/29] powerpc: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (16 preceding siblings ...)
  2012-04-30 20:16 ` [patch 17/29] openrisc: " Thomas Gleixner
@ 2012-04-30 20:16 ` Thomas Gleixner
  2012-04-30 22:34   ` Benjamin Herrenschmidt
  2012-04-30 20:16 ` [patch 20/29] s390: " Thomas Gleixner
                   ` (10 subsequent siblings)
  28 siblings, 1 reply; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:16 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, Benjamin Herrenschmidt

[-- Attachment #1: powerpc-use-generic-init-task.patch --]
[-- Type: text/plain, Size: 2262 bytes --]

Same code. Use the generic version.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
 arch/powerpc/Kconfig            |    1 +
 arch/powerpc/kernel/Makefile    |    2 +-
 arch/powerpc/kernel/init_task.c |   29 -----------------------------
 3 files changed, 2 insertions(+), 30 deletions(-)

Index: tip/arch/powerpc/Kconfig
===================================================================
--- tip.orig/arch/powerpc/Kconfig
+++ tip/arch/powerpc/Kconfig
@@ -145,6 +145,7 @@ config PPC
 	select HAVE_ARCH_JUMP_LABEL
 	select ARCH_HAVE_NMI_SAFE_CMPXCHG
 	select GENERIC_SMP_IDLE_THREAD
+	select HAVE_GENERIC_INIT_TASK
 
 config EARLY_PRINTK
 	bool
Index: tip/arch/powerpc/kernel/Makefile
===================================================================
--- tip.orig/arch/powerpc/kernel/Makefile
+++ tip/arch/powerpc/kernel/Makefile
@@ -28,7 +28,7 @@ endif
 
 obj-y				:= cputable.o ptrace.o syscalls.o \
 				   irq.o align.o signal_32.o pmc.o vdso.o \
-				   init_task.o process.o systbl.o idle.o \
+				   process.o systbl.o idle.o \
 				   signal.o sysfs.o cacheinfo.o time.o \
 				   prom.o traps.o setup-common.o \
 				   udbg.o misc.o io.o dma.o \
Index: tip/arch/powerpc/kernel/init_task.c
===================================================================
--- tip.orig/arch/powerpc/kernel/init_task.c
+++ /dev/null
@@ -1,29 +0,0 @@
-#include <linux/mm.h>
-#include <linux/export.h>
-#include <linux/sched.h>
-#include <linux/init.h>
-#include <linux/init_task.h>
-#include <linux/fs.h>
-#include <linux/mqueue.h>
-#include <asm/uaccess.h>
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-/*
- * Initial thread structure.
- *
- * We need to make sure that this is 16384-byte aligned due to the
- * way process stacks are handled. This is done by having a special
- * "init_task" linker map entry..
- */
-union thread_union init_thread_union __init_task_data =
-	{ INIT_THREAD_INFO(init_task) };
-
-/*
- * Initial task structure.
- *
- * All other task structs will be allocated on slabs in fork.c
- */
-struct task_struct init_task = INIT_TASK(init_task);
-
-EXPORT_SYMBOL(init_task);



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 22/29] sh: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (18 preceding siblings ...)
  2012-04-30 20:16 ` [patch 20/29] s390: " Thomas Gleixner
@ 2012-04-30 20:16 ` Thomas Gleixner
  2012-04-30 22:57   ` Paul Mundt
  2012-04-30 20:16 ` [patch 21/29] score: " Thomas Gleixner
                   ` (8 subsequent siblings)
  28 siblings, 1 reply; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:16 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, Paul Mundt

[-- Attachment #1: sh-use-generic-init-task.patch --]
[-- Type: text/plain, Size: 2861 bytes --]

Same code. Use the generic version. The special Makefile treatment is
pointless anyway as init_task.o contains only data which is handled by
the linker script. So no point on being treated like head text.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Paul Mundt <lethal@linux-sh.org>
---
 arch/sh/Kconfig            |    1 +
 arch/sh/Makefile           |    2 +-
 arch/sh/kernel/Makefile    |    2 +-
 arch/sh/kernel/init_task.c |   30 ------------------------------
 4 files changed, 3 insertions(+), 32 deletions(-)

Index: tip/arch/sh/Kconfig
===================================================================
--- tip.orig/arch/sh/Kconfig
+++ tip/arch/sh/Kconfig
@@ -29,6 +29,7 @@ config SUPERH
 	select GENERIC_ATOMIC64
 	select GENERIC_IRQ_SHOW
 	select GENERIC_SMP_IDLE_THREAD
+	select HAVE_GENERIC_INIT_TASK
 	help
 	  The SuperH is a RISC processor targeted for use in embedded systems
 	  and consumer electronics; it was also used in the Sega Dreamcast
Index: tip/arch/sh/Makefile
===================================================================
--- tip.orig/arch/sh/Makefile
+++ tip/arch/sh/Makefile
@@ -124,7 +124,7 @@ endif
 
 export ld-bfd BITS
 
-head-y	:= arch/sh/kernel/init_task.o arch/sh/kernel/head_$(BITS).o
+head-y	:= arch/sh/kernel/head_$(BITS).o
 
 core-y				+= arch/sh/kernel/ arch/sh/mm/ arch/sh/boards/
 core-$(CONFIG_SH_FPU_EMU)	+= arch/sh/math-emu/
Index: tip/arch/sh/kernel/Makefile
===================================================================
--- tip.orig/arch/sh/kernel/Makefile
+++ tip/arch/sh/kernel/Makefile
@@ -2,7 +2,7 @@
 # Makefile for the Linux/SuperH kernel.
 #
 
-extra-y	:= head_$(BITS).o init_task.o vmlinux.lds
+extra-y	:= head_$(BITS).o vmlinux.lds
 
 ifdef CONFIG_FUNCTION_TRACER
 # Do not profile debug and lowlevel utilities
Index: tip/arch/sh/kernel/init_task.c
===================================================================
--- tip.orig/arch/sh/kernel/init_task.c
+++ /dev/null
@@ -1,30 +0,0 @@
-#include <linux/mm.h>
-#include <linux/module.h>
-#include <linux/sched.h>
-#include <linux/init_task.h>
-#include <linux/mqueue.h>
-#include <linux/fs.h>
-#include <asm/uaccess.h>
-#include <asm/pgtable.h>
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-struct pt_regs fake_swapper_regs;
-/*
- * Initial thread structure.
- *
- * We need to make sure that this is 8192-byte aligned due to the
- * way process stacks are handled. This is done by having a special
- * "init_task" linker map entry..
- */
-union thread_union init_thread_union __init_task_data =
-	{ INIT_THREAD_INFO(init_task) };
-
-/*
- * Initial task structure.
- *
- * All other task structs will be allocated on slabs in fork.c
- */
-struct task_struct init_task = INIT_TASK(init_task);
-
-EXPORT_SYMBOL(init_task);



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 21/29] score: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (19 preceding siblings ...)
  2012-04-30 20:16 ` [patch 22/29] sh: " Thomas Gleixner
@ 2012-04-30 20:16 ` Thomas Gleixner
  2012-04-30 20:21   ` KOSAKI Motohiro
  2012-04-30 20:16 ` [patch 24/29] tile: " Thomas Gleixner
                   ` (7 subsequent siblings)
  28 siblings, 1 reply; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:16 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, Chen Liqin

[-- Attachment #1: score-use-generic-init-task.patch --]
[-- Type: text/plain, Size: 1032 bytes --]

Same code. Use the generic version.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Chen Liqin <liqin.chen@sunplusct.com>
---
 arch/score/Kconfig         |    1 +
 arch/score/kernel/Makefile |    2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

Index: tip/arch/score/Kconfig
===================================================================
--- tip.orig/arch/score/Kconfig
+++ tip/arch/score/Kconfig
@@ -9,6 +9,7 @@ config SCORE
        select HAVE_MEMBLOCK_NODE_MAP
        select ARCH_DISCARD_MEMBLOCK
        select GENERIC_CPU_DEVICES
+       select HAVE_GENERIC_INIT_TASK
 
 choice
 	prompt "System type"
Index: tip/arch/score/kernel/Makefile
===================================================================
--- tip.orig/arch/score/kernel/Makefile
+++ tip/arch/score/kernel/Makefile
@@ -4,7 +4,7 @@
 
 extra-y	:= head.o vmlinux.lds
 
-obj-y += entry.o init_task.o irq.o process.o ptrace.o \
+obj-y += entry.o irq.o process.o ptrace.o \
 	setup.o signal.o sys_score.o time.o traps.o \
 	sys_call_table.o
 



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 23/29] sparc: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (21 preceding siblings ...)
  2012-04-30 20:16 ` [patch 24/29] tile: " Thomas Gleixner
@ 2012-04-30 20:16 ` Thomas Gleixner
  2012-04-30 20:35   ` Sam Ravnborg
  2012-04-30 20:16 ` [patch 25/29] um: " Thomas Gleixner
                   ` (5 subsequent siblings)
  28 siblings, 1 reply; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:16 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, David S. Miller

[-- Attachment #1: sparc-use-generic-init-task.patch --]
[-- Type: text/plain, Size: 1626 bytes --]

Same code. Use the generic version.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: "David S. Miller" <davem@davemloft.net>
---
 arch/sparc/Kconfig            |    1 +
 arch/sparc/kernel/init_task.c |   22 ----------------------
 2 files changed, 1 insertion(+), 22 deletions(-)

Index: tip/arch/sparc/Kconfig
===================================================================
--- tip.orig/arch/sparc/Kconfig
+++ tip/arch/sparc/Kconfig
@@ -31,6 +31,7 @@ config SPARC
 	select GENERIC_PCI_IOMAP
 	select HAVE_NMI_WATCHDOG if SPARC64
 	select GENERIC_SMP_IDLE_THREAD
+	select HAVE_GENERIC_INIT_TASK
 
 config SPARC32
 	def_bool !64BIT
Index: tip/arch/sparc/kernel/init_task.c
===================================================================
--- tip.orig/arch/sparc/kernel/init_task.c
+++ /dev/null
@@ -1,22 +0,0 @@
-#include <linux/mm.h>
-#include <linux/fs.h>
-#include <linux/module.h>
-#include <linux/sched.h>
-#include <linux/init_task.h>
-#include <linux/mqueue.h>
-
-#include <asm/pgtable.h>
-#include <asm/uaccess.h>
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-struct task_struct init_task = INIT_TASK(init_task);
-EXPORT_SYMBOL(init_task);
-
-/* .text section in head.S is aligned at 8k boundary and this gets linked
- * right after that so that the init_thread_union is aligned properly as well.
- * If this is not aligned on a 8k boundary, then you should change code
- * in etrap.S which assumes it.
- */
-union thread_union init_thread_union __init_task_data =
-	{ INIT_THREAD_INFO(init_task) };



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 24/29] tile: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (20 preceding siblings ...)
  2012-04-30 20:16 ` [patch 21/29] score: " Thomas Gleixner
@ 2012-04-30 20:16 ` Thomas Gleixner
  2012-04-30 20:16 ` [patch 23/29] sparc: " Thomas Gleixner
                   ` (6 subsequent siblings)
  28 siblings, 0 replies; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:16 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, Chris Metcalf

[-- Attachment #1: tile-use-generic-init-task.patch --]
[-- Type: text/plain, Size: 4420 bytes --]

Same code. Use the generic version. The special Makefile treatment is
pointless anyway as init_task.o contains only data which is handled by
the linker script. So no point on being treated like head text.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Chris Metcalf <cmetcalf@tilera.com>
---
 arch/tile/Kconfig            |    1 
 arch/tile/kernel/Makefile    |    2 -
 arch/tile/kernel/init_task.c |   59 -------------------------------------------
 arch/tile/kernel/setup.c     |   16 +++++++++++
 4 files changed, 18 insertions(+), 60 deletions(-)

Index: tip/arch/tile/Kconfig
===================================================================
--- tip.orig/arch/tile/Kconfig
+++ tip/arch/tile/Kconfig
@@ -13,6 +13,7 @@ config TILE
 	select GENERIC_IRQ_SHOW
 	select SYS_HYPERVISOR
 	select ARCH_HAVE_NMI_SAFE_CMPXCHG
+	select HAVE_GENERIC_INIT_TASK
 
 # FIXME: investigate whether we need/want these options.
 #	select HAVE_IOREMAP_PROT
Index: tip/arch/tile/kernel/Makefile
===================================================================
--- tip.orig/arch/tile/kernel/Makefile
+++ tip/arch/tile/kernel/Makefile
@@ -3,7 +3,7 @@
 #
 
 extra-y := vmlinux.lds head_$(BITS).o
-obj-y := backtrace.o entry.o init_task.o irq.o messaging.o \
+obj-y := backtrace.o entry.o irq.o messaging.o \
 	pci-dma.o proc.o process.o ptrace.o reboot.o \
 	setup.o signal.o single_step.o stack.o sys.o sysfs.o time.o traps.o \
 	intvec_$(BITS).o regs_$(BITS).o tile-desc_$(BITS).o
Index: tip/arch/tile/kernel/init_task.c
===================================================================
--- tip.orig/arch/tile/kernel/init_task.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright 2010 Tilera Corporation. All Rights Reserved.
- *
- *   This program is free software; you can redistribute it and/or
- *   modify it under the terms of the GNU General Public License
- *   as published by the Free Software Foundation, version 2.
- *
- *   This program is distributed in the hope that it will be useful, but
- *   WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
- *   NON INFRINGEMENT.  See the GNU General Public License for
- *   more details.
- */
-
-#include <linux/mm.h>
-#include <linux/fs.h>
-#include <linux/init_task.h>
-#include <linux/mqueue.h>
-#include <linux/module.h>
-#include <linux/start_kernel.h>
-#include <linux/uaccess.h>
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-
-/*
- * Initial thread structure.
- *
- * We need to make sure that this is THREAD_SIZE aligned due to the
- * way process stacks are handled. This is done by having a special
- * "init_task" linker map entry..
- */
-union thread_union init_thread_union __init_task_data = {
-	INIT_THREAD_INFO(init_task)
-};
-
-/*
- * Initial task structure.
- *
- * All other task structs will be allocated on slabs in fork.c
- */
-struct task_struct init_task = INIT_TASK(init_task);
-EXPORT_SYMBOL(init_task);
-
-/*
- * per-CPU stack and boot info.
- */
-DEFINE_PER_CPU(unsigned long, boot_sp) =
-	(unsigned long)init_stack + THREAD_SIZE;
-
-#ifdef CONFIG_SMP
-DEFINE_PER_CPU(unsigned long, boot_pc) = (unsigned long)start_kernel;
-#else
-/*
- * The variable must be __initdata since it references __init code.
- * With CONFIG_SMP it is per-cpu data, which is exempt from validation.
- */
-unsigned long __initdata boot_pc = (unsigned long)start_kernel;
-#endif
Index: tip/arch/tile/kernel/setup.c
===================================================================
--- tip.orig/arch/tile/kernel/setup.c
+++ tip/arch/tile/kernel/setup.c
@@ -61,6 +61,22 @@ unsigned long __initdata node_free_pfn[M
 
 static unsigned long __initdata node_percpu[MAX_NUMNODES];
 
+/*
+ * per-CPU stack and boot info.
+ */
+DEFINE_PER_CPU(unsigned long, boot_sp) =
+	(unsigned long)init_stack + THREAD_SIZE;
+
+#ifdef CONFIG_SMP
+DEFINE_PER_CPU(unsigned long, boot_pc) = (unsigned long)start_kernel;
+#else
+/*
+ * The variable must be __initdata since it references __init code.
+ * With CONFIG_SMP it is per-cpu data, which is exempt from validation.
+ */
+unsigned long __initdata boot_pc = (unsigned long)start_kernel;
+#endif
+
 #ifdef CONFIG_HIGHMEM
 /* Page frame index of end of lowmem on each controller. */
 unsigned long __cpuinitdata node_lowmem_end_pfn[MAX_NUMNODES];



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 26/29] unicore32: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (23 preceding siblings ...)
  2012-04-30 20:16 ` [patch 25/29] um: " Thomas Gleixner
@ 2012-04-30 20:16 ` Thomas Gleixner
  2012-04-30 20:16 ` [patch 27/29] x86: " Thomas Gleixner
                   ` (3 subsequent siblings)
  28 siblings, 0 replies; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:16 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, Guan Xuetao

[-- Attachment #1: unicore-use-generic-init-task.patch --]
[-- Type: text/plain, Size: 3324 bytes --]

Same code. Use the generic version. The special Makefile treatment is
pointless anyway as init_task.o contains only data which is handled by
the linker script. So no point on being treated like head text.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
---
 arch/unicore32/Kconfig            |    1 
 arch/unicore32/Makefile           |    1 
 arch/unicore32/kernel/Makefile    |    2 -
 arch/unicore32/kernel/init_task.c |   44 --------------------------------------
 4 files changed, 2 insertions(+), 46 deletions(-)

Index: tip/arch/unicore32/Kconfig
===================================================================
--- tip.orig/arch/unicore32/Kconfig
+++ tip/arch/unicore32/Kconfig
@@ -13,6 +13,7 @@ config UNICORE32
 	select GENERIC_IRQ_SHOW
 	select ARCH_WANT_FRAME_POINTERS
 	select GENERIC_IOMAP
+	select HAVE_GENERIC_INIT_TASK
 	help
 	  UniCore-32 is 32-bit Instruction Set Architecture,
 	  including a series of low-power-consumption RISC chip
Index: tip/arch/unicore32/Makefile
===================================================================
--- tip.orig/arch/unicore32/Makefile
+++ tip/arch/unicore32/Makefile
@@ -33,7 +33,6 @@ endif
 CHECKFLAGS		+= -D__unicore32__
 
 head-y			:= arch/unicore32/kernel/head.o
-head-y			+= arch/unicore32/kernel/init_task.o
 
 core-y			+= arch/unicore32/kernel/
 core-y			+= arch/unicore32/mm/
Index: tip/arch/unicore32/kernel/Makefile
===================================================================
--- tip.orig/arch/unicore32/kernel/Makefile
+++ tip/arch/unicore32/kernel/Makefile
@@ -29,4 +29,4 @@ obj-$(CONFIG_PUV3_NB0916)	+= puv3-nb0916
 head-y				:= head.o
 obj-$(CONFIG_DEBUG_LL)		+= debug.o
 
-extra-y				:= $(head-y) init_task.o vmlinux.lds
+extra-y				:= $(head-y) vmlinux.lds
Index: tip/arch/unicore32/kernel/init_task.c
===================================================================
--- tip.orig/arch/unicore32/kernel/init_task.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * linux/arch/unicore32/kernel/init_task.c
- *
- * Code specific to PKUnity SoC and UniCore ISA
- *
- * Copyright (C) 2001-2010 GUAN Xue-tao
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/mm.h>
-#include <linux/module.h>
-#include <linux/fs.h>
-#include <linux/sched.h>
-#include <linux/init.h>
-#include <linux/init_task.h>
-#include <linux/mqueue.h>
-#include <linux/uaccess.h>
-
-#include <asm/pgtable.h>
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-/*
- * Initial thread structure.
- *
- * We need to make sure that this is 8192-byte aligned due to the
- * way process stacks are handled. This is done by making sure
- * the linker maps this in the .text segment right after head.S,
- * and making head.S ensure the proper alignment.
- *
- * The things we do for performance..
- */
-union thread_union init_thread_union __init_task_data = {
-	INIT_THREAD_INFO(init_task) };
-
-/*
- * Initial task structure.
- *
- * All other task structs will be allocated on slabs in fork.c
- */
-struct task_struct init_task = INIT_TASK(init_task);
-EXPORT_SYMBOL(init_task);



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 25/29] um: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (22 preceding siblings ...)
  2012-04-30 20:16 ` [patch 23/29] sparc: " Thomas Gleixner
@ 2012-04-30 20:16 ` Thomas Gleixner
  2012-04-30 22:06   ` Richard Weinberger
  2012-04-30 20:16 ` [patch 26/29] unicore32: " Thomas Gleixner
                   ` (4 subsequent siblings)
  28 siblings, 1 reply; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:16 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, Richard Weinberger

[-- Attachment #1: um-use-generic-init-task.patch --]
[-- Type: text/plain, Size: 3159 bytes --]

Same code. Use the generic version.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Richard Weinberger <richard@nod.at>
---
 arch/um/Kconfig.common     |    1 +
 arch/um/kernel/Makefile    |    2 +-
 arch/um/kernel/init_task.c |   38 --------------------------------------
 arch/um/kernel/um_arch.c   |    5 +++++
 4 files changed, 7 insertions(+), 39 deletions(-)

Index: tip/arch/um/Kconfig.common
===================================================================
--- tip.orig/arch/um/Kconfig.common
+++ tip/arch/um/Kconfig.common
@@ -10,6 +10,7 @@ config UML
 	select GENERIC_IRQ_SHOW
 	select GENERIC_CPU_DEVICES
 	select GENERIC_IO
+	select HAVE_GENERIC_INIT_TASK
 
 config MMU
 	bool
Index: tip/arch/um/kernel/Makefile
===================================================================
--- tip.orig/arch/um/kernel/Makefile
+++ tip/arch/um/kernel/Makefile
@@ -10,7 +10,7 @@ CPPFLAGS_vmlinux.lds := -DSTART=$(LDS_ST
 extra-y := vmlinux.lds
 clean-files :=
 
-obj-y = config.o exec.o exitcode.o init_task.o irq.o ksyms.o mem.o \
+obj-y = config.o exec.o exitcode.o irq.o ksyms.o mem.o \
 	physmem.o process.o ptrace.o reboot.o sigio.o \
 	signal.o smp.o syscall.o sysrq.o time.o tlb.o trap.o \
 	um_arch.o umid.o skas/
Index: tip/arch/um/kernel/init_task.c
===================================================================
--- tip.orig/arch/um/kernel/init_task.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,intel.linux}.com)
- * Licensed under the GPL
- */
-
-#include "linux/sched.h"
-#include "linux/init_task.h"
-#include "linux/fs.h"
-#include "linux/module.h"
-#include "linux/mqueue.h"
-#include "asm/uaccess.h"
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-/*
- * Initial task structure.
- *
- * All other task structs will be allocated on slabs in fork.c
- */
-
-struct task_struct init_task = INIT_TASK(init_task);
-
-EXPORT_SYMBOL(init_task);
-
-/*
- * Initial thread structure.
- *
- * We need to make sure that this is aligned due to the
- * way process stacks are handled. This is done by having a special
- * "init_task" linker map entry..
- */
-
-union thread_union init_thread_union __init_task_data =
-	{ INIT_THREAD_INFO(init_task) };
-
-union thread_union cpu0_irqstack
-	__attribute__((__section__(".data..init_irqstack"))) =
-		{ INIT_THREAD_INFO(init_task) };
Index: tip/arch/um/kernel/um_arch.c
===================================================================
--- tip.orig/arch/um/kernel/um_arch.c
+++ tip/arch/um/kernel/um_arch.c
@@ -10,6 +10,7 @@
 #include <linux/seq_file.h>
 #include <linux/string.h>
 #include <linux/utsname.h>
+#include <linux/sched.h>
 #include <asm/pgtable.h>
 #include <asm/processor.h>
 #include <asm/setup.h>
@@ -47,6 +48,10 @@ struct cpuinfo_um boot_cpu_data = {
 	.ipi_pipe		= { -1, -1 }
 };
 
+union thread_union cpu0_irqstack
+	__attribute__((__section__(".data..init_irqstack"))) =
+		{ INIT_THREAD_INFO(init_task) };
+
 unsigned long thread_saved_pc(struct task_struct *task)
 {
 	/* FIXME: Need to look up userspace_pid by cpu */



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 28/29] xtensa: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (25 preceding siblings ...)
  2012-04-30 20:16 ` [patch 27/29] x86: " Thomas Gleixner
@ 2012-04-30 20:16 ` Thomas Gleixner
  2012-04-30 20:16 ` [patch 29/29] init_task: Remove CONFIG_HAVE_GENERIC_INIT_TASK Thomas Gleixner
  2012-04-30 20:37 ` [patch 00/29] init_task: Use a generic init_task variant Sam Ravnborg
  28 siblings, 0 replies; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:16 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, Chris Zankel

[-- Attachment #1: xtensa-use-generic-init-task.patch --]
[-- Type: text/plain, Size: 2303 bytes --]

Same code. Use the generic version.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Chris Zankel <chris@zankel.net>
---
 arch/xtensa/Kconfig            |    1 +
 arch/xtensa/kernel/Makefile    |    2 +-
 arch/xtensa/kernel/init_task.c |   31 -------------------------------
 3 files changed, 2 insertions(+), 32 deletions(-)

Index: tip/arch/xtensa/Kconfig
===================================================================
--- tip.orig/arch/xtensa/Kconfig
+++ tip/arch/xtensa/Kconfig
@@ -10,6 +10,7 @@ config XTENSA
 	select HAVE_GENERIC_HARDIRQS
 	select GENERIC_IRQ_SHOW
 	select GENERIC_CPU_DEVICES
+	select HAVE_GENERIC_INIT_TASK
 	help
 	  Xtensa processors are 32-bit RISC machines designed by Tensilica
 	  primarily for embedded systems.  These processors are both
Index: tip/arch/xtensa/kernel/Makefile
===================================================================
--- tip.orig/arch/xtensa/kernel/Makefile
+++ tip/arch/xtensa/kernel/Makefile
@@ -6,7 +6,7 @@ extra-y := head.o vmlinux.lds
 
 obj-y := align.o entry.o irq.o coprocessor.o process.o ptrace.o \
 	 setup.o signal.o syscall.o time.o traps.o vectors.o platform.o  \
-	 pci-dma.o init_task.o io.o
+	 pci-dma.o io.o
 
 obj-$(CONFIG_KGDB) += xtensa-stub.o
 obj-$(CONFIG_PCI) += pci.o
Index: tip/arch/xtensa/kernel/init_task.c
===================================================================
--- tip.orig/arch/xtensa/kernel/init_task.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * arch/xtensa/kernel/init_task.c
- *
- * Xtensa Processor version.
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 2007 Tensilica Inc.
- *
- * Chris Zankel <chris@zankel.net>
- */
-
-#include <linux/mm.h>
-#include <linux/fs.h>
-#include <linux/init.h>
-#include <linux/init_task.h>
-#include <linux/module.h>
-#include <linux/mqueue.h>
-
-#include <asm/uaccess.h>
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-union thread_union init_thread_union __init_task_data =
-	{ INIT_THREAD_INFO(init_task) };
-
-struct task_struct init_task = INIT_TASK(init_task);
-
-EXPORT_SYMBOL(init_task);



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 27/29] x86: Use generic init_task
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (24 preceding siblings ...)
  2012-04-30 20:16 ` [patch 26/29] unicore32: " Thomas Gleixner
@ 2012-04-30 20:16 ` Thomas Gleixner
  2012-04-30 20:16 ` [patch 28/29] xtensa: " Thomas Gleixner
                   ` (2 subsequent siblings)
  28 siblings, 0 replies; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:16 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch, x86

[-- Attachment #1: x86-use-common-init-task.patch --]
[-- Type: text/plain, Size: 4046 bytes --]

Same code. Use the generic version. The special Makefile treatment is
pointless anyway as init_task.o contains only data which is handled by
the linker script. So no point on being treated like head text.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: x86@kernel.org
---
 arch/x86/Kconfig            |    1 +
 arch/x86/Makefile           |    1 -
 arch/x86/kernel/Makefile    |    2 +-
 arch/x86/kernel/init_task.c |   42 ------------------------------------------
 arch/x86/kernel/process.c   |    9 +++++++++
 5 files changed, 11 insertions(+), 44 deletions(-)

Index: tip/arch/x86/Kconfig
===================================================================
--- tip.orig/arch/x86/Kconfig
+++ tip/arch/x86/Kconfig
@@ -83,6 +83,7 @@ config X86
 	select GENERIC_IOMAP
 	select DCACHE_WORD_ACCESS if !DEBUG_PAGEALLOC
 	select GENERIC_SMP_IDLE_THREAD
+	select HAVE_GENERIC_INIT_TASK
 
 config INSTRUCTION_DECODER
 	def_bool (KPROBES || PERF_EVENTS)
Index: tip/arch/x86/Makefile
===================================================================
--- tip.orig/arch/x86/Makefile
+++ tip/arch/x86/Makefile
@@ -146,7 +146,6 @@ archheaders:
 head-y := arch/x86/kernel/head_$(BITS).o
 head-y += arch/x86/kernel/head$(BITS).o
 head-y += arch/x86/kernel/head.o
-head-y += arch/x86/kernel/init_task.o
 
 libs-y  += arch/x86/lib/
 
Index: tip/arch/x86/kernel/Makefile
===================================================================
--- tip.orig/arch/x86/kernel/Makefile
+++ tip/arch/x86/kernel/Makefile
@@ -2,7 +2,7 @@
 # Makefile for the linux kernel.
 #
 
-extra-y                := head_$(BITS).o head$(BITS).o head.o init_task.o vmlinux.lds
+extra-y                := head_$(BITS).o head$(BITS).o head.o vmlinux.lds
 
 CPPFLAGS_vmlinux.lds += -U$(UTS_MACHINE)
 
Index: tip/arch/x86/kernel/init_task.c
===================================================================
--- tip.orig/arch/x86/kernel/init_task.c
+++ /dev/null
@@ -1,42 +0,0 @@
-#include <linux/mm.h>
-#include <linux/module.h>
-#include <linux/sched.h>
-#include <linux/init.h>
-#include <linux/init_task.h>
-#include <linux/fs.h>
-#include <linux/mqueue.h>
-
-#include <asm/uaccess.h>
-#include <asm/pgtable.h>
-#include <asm/desc.h>
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-
-/*
- * Initial thread structure.
- *
- * We need to make sure that this is THREAD_SIZE aligned due to the
- * way process stacks are handled. This is done by having a special
- * "init_task" linker map entry..
- */
-union thread_union init_thread_union __init_task_data =
-	{ INIT_THREAD_INFO(init_task) };
-
-/*
- * Initial task structure.
- *
- * All other task structs will be allocated on slabs in fork.c
- */
-struct task_struct init_task = INIT_TASK(init_task);
-EXPORT_SYMBOL(init_task);
-
-/*
- * per-CPU TSS segments. Threads are completely 'soft' on Linux,
- * no more per-task TSS's. The TSS size is kept cacheline-aligned
- * so they are allowed to end up in the .data..cacheline_aligned
- * section. Since TSS's are completely CPU-local, we want them
- * on exact cacheline boundaries, to eliminate cacheline ping-pong.
- */
-DEFINE_PER_CPU_SHARED_ALIGNED(struct tss_struct, init_tss) = INIT_TSS;
-
Index: tip/arch/x86/kernel/process.c
===================================================================
--- tip.orig/arch/x86/kernel/process.c
+++ tip/arch/x86/kernel/process.c
@@ -27,6 +27,15 @@
 #include <asm/debugreg.h>
 #include <asm/nmi.h>
 
+/*
+ * per-CPU TSS segments. Threads are completely 'soft' on Linux,
+ * no more per-task TSS's. The TSS size is kept cacheline-aligned
+ * so they are allowed to end up in the .data..cacheline_aligned
+ * section. Since TSS's are completely CPU-local, we want them
+ * on exact cacheline boundaries, to eliminate cacheline ping-pong.
+ */
+DEFINE_PER_CPU_SHARED_ALIGNED(struct tss_struct, init_tss) = INIT_TSS;
+
 #ifdef CONFIG_X86_64
 static DEFINE_PER_CPU(unsigned char, is_idle);
 static ATOMIC_NOTIFIER_HEAD(idle_notifier);



^ permalink raw reply	[flat|nested] 48+ messages in thread

* [patch 29/29] init_task: Remove CONFIG_HAVE_GENERIC_INIT_TASK
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (26 preceding siblings ...)
  2012-04-30 20:16 ` [patch 28/29] xtensa: " Thomas Gleixner
@ 2012-04-30 20:16 ` Thomas Gleixner
  2012-04-30 20:37 ` [patch 00/29] init_task: Use a generic init_task variant Sam Ravnborg
  28 siblings, 0 replies; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:16 UTC (permalink / raw)
  To: LKML; +Cc: linux-arch

[-- Attachment #1: init-task-remove-config.patch --]
[-- Type: text/plain, Size: 12379 bytes --]

Now that all archs are converted, remove the config and compile
kernel/sched/init_task.c unconditionally.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/Kconfig            |    3 ---
 arch/alpha/Kconfig      |    1 -
 arch/arm/Kconfig        |    1 -
 arch/avr32/Kconfig      |    1 -
 arch/blackfin/Kconfig   |    1 -
 arch/c6x/Kconfig        |    1 -
 arch/cris/Kconfig       |    1 -
 arch/frv/Kconfig        |    1 -
 arch/h8300/Kconfig      |    1 -
 arch/hexagon/Kconfig    |    1 -
 arch/ia64/Kconfig       |    1 -
 arch/m32r/Kconfig       |    1 -
 arch/m68k/Kconfig       |    1 -
 arch/microblaze/Kconfig |    1 -
 arch/mips/Kconfig       |    1 -
 arch/mn10300/Kconfig    |    1 -
 arch/openrisc/Kconfig   |    1 -
 arch/parisc/Kconfig     |    1 -
 arch/powerpc/Kconfig    |    1 -
 arch/s390/Kconfig       |    1 -
 arch/score/Kconfig      |    1 -
 arch/sh/Kconfig         |    1 -
 arch/sparc/Kconfig      |    1 -
 arch/tile/Kconfig       |    1 -
 arch/um/Kconfig.common  |    1 -
 arch/unicore32/Kconfig  |    1 -
 arch/x86/Kconfig        |    1 -
 arch/xtensa/Kconfig     |    1 -
 kernel/sched/Makefile   |    3 +--
 29 files changed, 1 insertion(+), 32 deletions(-)

Index: tip/arch/Kconfig
===================================================================
--- tip.orig/arch/Kconfig
+++ tip/arch/Kconfig
@@ -148,9 +148,6 @@ config USE_GENERIC_SMP_HELPERS
 config GENERIC_SMP_IDLE_THREAD
        bool
 
-config HAVE_GENERIC_INIT_TASK
-       bool
-
 config HAVE_REGS_AND_STACK_ACCESS_API
 	bool
 	help
Index: tip/arch/alpha/Kconfig
===================================================================
--- tip.orig/arch/alpha/Kconfig
+++ tip/arch/alpha/Kconfig
@@ -16,7 +16,6 @@ config ALPHA
 	select ARCH_WANT_OPTIONAL_GPIOLIB
 	select ARCH_HAVE_NMI_SAFE_CMPXCHG
 	select GENERIC_SMP_IDLE_THREAD
-	select HAVE_GENERIC_INIT_TASK
 	help
 	  The Alpha is a 64-bit general-purpose processor designed and
 	  marketed by the Digital Equipment Corporation of blessed memory,
Index: tip/arch/arm/Kconfig
===================================================================
--- tip.orig/arch/arm/Kconfig
+++ tip/arch/arm/Kconfig
@@ -35,7 +35,6 @@ config ARM
 	select GENERIC_PCI_IOMAP
 	select HAVE_BPF_JIT if NET
 	select GENERIC_SMP_IDLE_THREAD
-	select HAVE_GENERIC_INIT_TASK
 	help
 	  The ARM series is a line of low-power-consumption RISC chip designs
 	  licensed by ARM Ltd and targeted at embedded applications and
Index: tip/arch/avr32/Kconfig
===================================================================
--- tip.orig/arch/avr32/Kconfig
+++ tip/arch/avr32/Kconfig
@@ -12,7 +12,6 @@ config AVR32
 	select HARDIRQS_SW_RESEND
 	select GENERIC_IRQ_SHOW
 	select ARCH_HAVE_NMI_SAFE_CMPXCHG
-	select HAVE_GENERIC_INIT_TASK
 	help
 	  AVR32 is a high-performance 32-bit RISC microprocessor core,
 	  designed for cost-sensitive embedded applications, with particular
Index: tip/arch/blackfin/Kconfig
===================================================================
--- tip.orig/arch/blackfin/Kconfig
+++ tip/arch/blackfin/Kconfig
@@ -38,7 +38,6 @@ config BLACKFIN
 	select IRQ_PER_CPU if SMP
 	select HAVE_NMI_WATCHDOG if NMI_WATCHDOG
 	select GENERIC_SMP_IDLE_THREAD
-	select HAVE_GENERIC_INIT_TASK
 
 config GENERIC_CSUM
 	def_bool y
Index: tip/arch/c6x/Kconfig
===================================================================
--- tip.orig/arch/c6x/Kconfig
+++ tip/arch/c6x/Kconfig
@@ -15,7 +15,6 @@ config TMS320C6X
 	select IRQ_DOMAIN
 	select OF
 	select OF_EARLY_FLATTREE
-	select HAVE_GENERIC_INIT_TASK
 
 config MMU
 	def_bool n
Index: tip/arch/cris/Kconfig
===================================================================
--- tip.orig/arch/cris/Kconfig
+++ tip/arch/cris/Kconfig
@@ -50,7 +50,6 @@ config CRIS
 	select GENERIC_IRQ_SHOW
 	select GENERIC_IOMAP
 	select GENERIC_SMP_IDLE_THREAD if ETRAX_ARCH_V32
-	select HAVE_GENERIC_INIT_TASK
 
 config HZ
 	int
Index: tip/arch/frv/Kconfig
===================================================================
--- tip.orig/arch/frv/Kconfig
+++ tip/arch/frv/Kconfig
@@ -9,7 +9,6 @@ config FRV
 	select GENERIC_IRQ_SHOW
 	select ARCH_HAVE_NMI_SAFE_CMPXCHG
 	select GENERIC_CPU_DEVICES
-	select HAVE_GENERIC_INIT_TASK
 
 config ZONE_DMA
 	bool
Index: tip/arch/h8300/Kconfig
===================================================================
--- tip.orig/arch/h8300/Kconfig
+++ tip/arch/h8300/Kconfig
@@ -5,7 +5,6 @@ config H8300
 	select HAVE_GENERIC_HARDIRQS
 	select GENERIC_IRQ_SHOW
 	select GENERIC_CPU_DEVICES
-	select HAVE_GENERIC_INIT_TASK
 
 config SYMBOL_PREFIX
 	string
Index: tip/arch/hexagon/Kconfig
===================================================================
--- tip.orig/arch/hexagon/Kconfig
+++ tip/arch/hexagon/Kconfig
@@ -28,7 +28,6 @@ config HEXAGON
 	select NO_IOPORT
 	select GENERIC_IOMAP
 	select GENERIC_SMP_IDLE_THREAD
-	select HAVE_GENERIC_INIT_TASK
 	# mostly generic routines, with some accelerated ones
 	---help---
 	  Qualcomm Hexagon is a processor architecture designed for high
Index: tip/arch/ia64/Kconfig
===================================================================
--- tip.orig/arch/ia64/Kconfig
+++ tip/arch/ia64/Kconfig
@@ -34,7 +34,6 @@ config IA64
 	select ARCH_HAVE_NMI_SAFE_CMPXCHG
 	select GENERIC_IOMAP
 	select GENERIC_SMP_IDLE_THREAD
-	select HAVE_GENERIC_INIT_TASK
 	default y
 	help
 	  The Itanium Processor Family is Intel's 64-bit successor to
Index: tip/arch/m32r/Kconfig
===================================================================
--- tip.orig/arch/m32r/Kconfig
+++ tip/arch/m32r/Kconfig
@@ -11,7 +11,6 @@ config M32R
 	select GENERIC_IRQ_PROBE
 	select GENERIC_IRQ_SHOW
 	select GENERIC_ATOMIC64
-	select HAVE_GENERIC_INIT_TASK
 
 config SBUS
 	bool
Index: tip/arch/m68k/Kconfig
===================================================================
--- tip.orig/arch/m68k/Kconfig
+++ tip/arch/m68k/Kconfig
@@ -8,7 +8,6 @@ config M68K
 	select ARCH_HAVE_NMI_SAFE_CMPXCHG if RMW_INSNS
 	select GENERIC_CPU_DEVICES
 	select FPU if MMU
-	select HAVE_GENERIC_INIT_TASK
 
 config RWSEM_GENERIC_SPINLOCK
 	bool
Index: tip/arch/microblaze/Kconfig
===================================================================
--- tip.orig/arch/microblaze/Kconfig
+++ tip/arch/microblaze/Kconfig
@@ -22,7 +22,6 @@ config MICROBLAZE
 	select GENERIC_PCI_IOMAP
 	select GENERIC_CPU_DEVICES
 	select GENERIC_ATOMIC64
-	select HAVE_GENERIC_INIT_TASK
 
 config SWAP
 	def_bool n
Index: tip/arch/mips/Kconfig
===================================================================
--- tip.orig/arch/mips/Kconfig
+++ tip/arch/mips/Kconfig
@@ -30,7 +30,6 @@ config MIPS
 	select HAVE_MEMBLOCK_NODE_MAP
 	select ARCH_DISCARD_MEMBLOCK
 	select GENERIC_SMP_IDLE_THREAD
-	select HAVE_GENERIC_INIT_TASK
 
 menu "Machine selection"
 
Index: tip/arch/mn10300/Kconfig
===================================================================
--- tip.orig/arch/mn10300/Kconfig
+++ tip/arch/mn10300/Kconfig
@@ -6,7 +6,6 @@ config MN10300
 	select HAVE_ARCH_TRACEHOOK
 	select HAVE_ARCH_KGDB
 	select HAVE_NMI_WATCHDOG if MN10300_WD_TIMER
-	select HAVE_GENERIC_INIT_TASK
 
 config AM33_2
 	def_bool n
Index: tip/arch/openrisc/Kconfig
===================================================================
--- tip.orig/arch/openrisc/Kconfig
+++ tip/arch/openrisc/Kconfig
@@ -17,7 +17,6 @@ config OPENRISC
 	select GENERIC_IOMAP
 	select GENERIC_CPU_DEVICES
 	select GENERIC_ATOMIC64
-	select HAVE_GENERIC_INIT_TASK
 
 config MMU
 	def_bool y
Index: tip/arch/parisc/Kconfig
===================================================================
--- tip.orig/arch/parisc/Kconfig
+++ tip/arch/parisc/Kconfig
@@ -18,7 +18,6 @@ config PARISC
 	select IRQ_PER_CPU
 	select ARCH_HAVE_NMI_SAFE_CMPXCHG
 	select GENERIC_SMP_IDLE_THREAD
-	select HAVE_GENERIC_INIT_TASK
 
 	help
 	  The PA-RISC microprocessor is designed by Hewlett-Packard and used
Index: tip/arch/powerpc/Kconfig
===================================================================
--- tip.orig/arch/powerpc/Kconfig
+++ tip/arch/powerpc/Kconfig
@@ -145,7 +145,6 @@ config PPC
 	select HAVE_ARCH_JUMP_LABEL
 	select ARCH_HAVE_NMI_SAFE_CMPXCHG
 	select GENERIC_SMP_IDLE_THREAD
-	select HAVE_GENERIC_INIT_TASK
 
 config EARLY_PRINTK
 	bool
Index: tip/arch/s390/Kconfig
===================================================================
--- tip.orig/arch/s390/Kconfig
+++ tip/arch/s390/Kconfig
@@ -123,7 +123,6 @@ config S390
 	select ARCH_INLINE_WRITE_UNLOCK_IRQ
 	select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
 	select GENERIC_SMP_IDLE_THREAD
-	select HAVE_GENERIC_INIT_TASK
 
 config SCHED_OMIT_FRAME_POINTER
 	def_bool y
Index: tip/arch/score/Kconfig
===================================================================
--- tip.orig/arch/score/Kconfig
+++ tip/arch/score/Kconfig
@@ -9,7 +9,6 @@ config SCORE
        select HAVE_MEMBLOCK_NODE_MAP
        select ARCH_DISCARD_MEMBLOCK
        select GENERIC_CPU_DEVICES
-       select HAVE_GENERIC_INIT_TASK
 
 choice
 	prompt "System type"
Index: tip/arch/sh/Kconfig
===================================================================
--- tip.orig/arch/sh/Kconfig
+++ tip/arch/sh/Kconfig
@@ -29,7 +29,6 @@ config SUPERH
 	select GENERIC_ATOMIC64
 	select GENERIC_IRQ_SHOW
 	select GENERIC_SMP_IDLE_THREAD
-	select HAVE_GENERIC_INIT_TASK
 	help
 	  The SuperH is a RISC processor targeted for use in embedded systems
 	  and consumer electronics; it was also used in the Sega Dreamcast
Index: tip/arch/sparc/Kconfig
===================================================================
--- tip.orig/arch/sparc/Kconfig
+++ tip/arch/sparc/Kconfig
@@ -31,7 +31,6 @@ config SPARC
 	select GENERIC_PCI_IOMAP
 	select HAVE_NMI_WATCHDOG if SPARC64
 	select GENERIC_SMP_IDLE_THREAD
-	select HAVE_GENERIC_INIT_TASK
 
 config SPARC32
 	def_bool !64BIT
Index: tip/arch/tile/Kconfig
===================================================================
--- tip.orig/arch/tile/Kconfig
+++ tip/arch/tile/Kconfig
@@ -13,7 +13,6 @@ config TILE
 	select GENERIC_IRQ_SHOW
 	select SYS_HYPERVISOR
 	select ARCH_HAVE_NMI_SAFE_CMPXCHG
-	select HAVE_GENERIC_INIT_TASK
 
 # FIXME: investigate whether we need/want these options.
 #	select HAVE_IOREMAP_PROT
Index: tip/arch/um/Kconfig.common
===================================================================
--- tip.orig/arch/um/Kconfig.common
+++ tip/arch/um/Kconfig.common
@@ -10,7 +10,6 @@ config UML
 	select GENERIC_IRQ_SHOW
 	select GENERIC_CPU_DEVICES
 	select GENERIC_IO
-	select HAVE_GENERIC_INIT_TASK
 
 config MMU
 	bool
Index: tip/arch/unicore32/Kconfig
===================================================================
--- tip.orig/arch/unicore32/Kconfig
+++ tip/arch/unicore32/Kconfig
@@ -13,7 +13,6 @@ config UNICORE32
 	select GENERIC_IRQ_SHOW
 	select ARCH_WANT_FRAME_POINTERS
 	select GENERIC_IOMAP
-	select HAVE_GENERIC_INIT_TASK
 	help
 	  UniCore-32 is 32-bit Instruction Set Architecture,
 	  including a series of low-power-consumption RISC chip
Index: tip/arch/x86/Kconfig
===================================================================
--- tip.orig/arch/x86/Kconfig
+++ tip/arch/x86/Kconfig
@@ -83,7 +83,6 @@ config X86
 	select GENERIC_IOMAP
 	select DCACHE_WORD_ACCESS if !DEBUG_PAGEALLOC
 	select GENERIC_SMP_IDLE_THREAD
-	select HAVE_GENERIC_INIT_TASK
 
 config INSTRUCTION_DECODER
 	def_bool (KPROBES || PERF_EVENTS)
Index: tip/arch/xtensa/Kconfig
===================================================================
--- tip.orig/arch/xtensa/Kconfig
+++ tip/arch/xtensa/Kconfig
@@ -10,7 +10,6 @@ config XTENSA
 	select HAVE_GENERIC_HARDIRQS
 	select GENERIC_IRQ_SHOW
 	select GENERIC_CPU_DEVICES
-	select HAVE_GENERIC_INIT_TASK
 	help
 	  Xtensa processors are 32-bit RISC machines designed by Tensilica
 	  primarily for embedded systems.  These processors are both
Index: tip/kernel/sched/Makefile
===================================================================
--- tip.orig/kernel/sched/Makefile
+++ tip/kernel/sched/Makefile
@@ -11,9 +11,8 @@ ifneq ($(CONFIG_SCHED_OMIT_FRAME_POINTER
 CFLAGS_core.o := $(PROFILING) -fno-omit-frame-pointer
 endif
 
-obj-y += core.o clock.o idle_task.o fair.o rt.o stop_task.o
+obj-y += core.o clock.o idle_task.o fair.o rt.o stop_task.o init_task.o
 obj-$(CONFIG_SMP) += cpupri.o
 obj-$(CONFIG_SCHED_AUTOGROUP) += auto_group.o
 obj-$(CONFIG_SCHEDSTATS) += stats.o
 obj-$(CONFIG_SCHED_DEBUG) += debug.o
-obj-$(CONFIG_HAVE_GENERIC_INIT_TASK) += init_task.o



^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [patch 21/29] score: Use generic init_task
  2012-04-30 20:16 ` [patch 21/29] score: " Thomas Gleixner
@ 2012-04-30 20:21   ` KOSAKI Motohiro
  2012-04-30 20:38     ` Thomas Gleixner
  0 siblings, 1 reply; 48+ messages in thread
From: KOSAKI Motohiro @ 2012-04-30 20:21 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML, linux-arch, Chen Liqin, kosaki.motohiro

(4/30/12 4:16 PM), Thomas Gleixner wrote:
> Same code. Use the generic version.
> 
> Signed-off-by: Thomas Gleixner<tglx@linutronix.de>
> Cc: Chen Liqin<liqin.chen@sunplusct.com>
> ---
>   arch/score/Kconfig         |    1 +
>   arch/score/kernel/Makefile |    2 +-
>   2 files changed, 2 insertions(+), 1 deletion(-)
> 
> Index: tip/arch/score/Kconfig
> ===================================================================
> --- tip.orig/arch/score/Kconfig
> +++ tip/arch/score/Kconfig
> @@ -9,6 +9,7 @@ config SCORE
>          select HAVE_MEMBLOCK_NODE_MAP
>          select ARCH_DISCARD_MEMBLOCK
>          select GENERIC_CPU_DEVICES
> +       select HAVE_GENERIC_INIT_TASK
> 
>   choice
>   	prompt "System type"
> Index: tip/arch/score/kernel/Makefile
> ===================================================================
> --- tip.orig/arch/score/kernel/Makefile
> +++ tip/arch/score/kernel/Makefile
> @@ -4,7 +4,7 @@
> 
>   extra-y	:= head.o vmlinux.lds
> 
> -obj-y += entry.o init_task.o irq.o process.o ptrace.o \
> +obj-y += entry.o irq.o process.o ptrace.o \
>   	setup.o signal.o sys_score.o time.o traps.o \
>   	sys_call_table.o

Almost patches delete arch specific init-task. But this patch doesn't.
Is this really intentional?



^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [patch 23/29] sparc: Use generic init_task
  2012-04-30 20:16 ` [patch 23/29] sparc: " Thomas Gleixner
@ 2012-04-30 20:35   ` Sam Ravnborg
  2012-04-30 20:39     ` Thomas Gleixner
  0 siblings, 1 reply; 48+ messages in thread
From: Sam Ravnborg @ 2012-04-30 20:35 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML, linux-arch, David S. Miller

On Mon, Apr 30, 2012 at 08:16:03PM -0000, Thomas Gleixner wrote:
> Same code. Use the generic version.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Cc: "David S. Miller" <davem@davemloft.net>
> ---
>  arch/sparc/Kconfig            |    1 +
>  arch/sparc/kernel/init_task.c |   22 ----------------------
>  2 files changed, 1 insertion(+), 22 deletions(-)
> 
> Index: tip/arch/sparc/Kconfig
> ===================================================================
> --- tip.orig/arch/sparc/Kconfig
> +++ tip/arch/sparc/Kconfig
> @@ -31,6 +31,7 @@ config SPARC
>  	select GENERIC_PCI_IOMAP
>  	select HAVE_NMI_WATCHDOG if SPARC64
>  	select GENERIC_SMP_IDLE_THREAD
> +	select HAVE_GENERIC_INIT_TASK
>  
>  config SPARC32
>  	def_bool !64BIT
> Index: tip/arch/sparc/kernel/init_task.c
> ===================================================================
> --- tip.orig/arch/sparc/kernel/init_task.c
> +++ /dev/null

This breaks sparc build as it has the following in arch/sparc/Makefile:

    head-y                 += arch/sparc/kernel/init_task.o

And this patch deletes that file.
So at least you need to delete said line in this patch too.

	Sam

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [patch 00/29] init_task: Use a generic init_task variant
  2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
                   ` (27 preceding siblings ...)
  2012-04-30 20:16 ` [patch 29/29] init_task: Remove CONFIG_HAVE_GENERIC_INIT_TASK Thomas Gleixner
@ 2012-04-30 20:37 ` Sam Ravnborg
  2012-04-30 20:43   ` Thomas Gleixner
  28 siblings, 1 reply; 48+ messages in thread
From: Sam Ravnborg @ 2012-04-30 20:37 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML, linux-arch

On Mon, Apr 30, 2012 at 08:15:50PM -0000, Thomas Gleixner wrote:
> All architectures do roughly the same to initialize init_task. The
> only architecture which deviates is ia64, but I could not figure out
> why it couldn't use the same setup as all other architectures.
> 
> The following series converts all archs to a generic version.
> 
> Thanks,
> 
> 	tglx
> ---
>  arch/um/kernel/init_task.c          |   38 -------------------
>  arch/unicore32/kernel/init_task.c   |   44 ----------------------
>  arch/x86/kernel/init_task.c         |   42 ---------------------
>  arch/xtensa/kernel/init_task.c      |   31 ---------------
>  tip/arch/um/kernel/um_arch.c        |    5 ++
>  tip/arch/unicore32/Makefile         |    1 
>  tip/arch/unicore32/kernel/Makefile  |    2 -
>  tip/arch/x86/Makefile               |    1 
>  tip/arch/x86/kernel/Makefile        |    2 -
>  tip/arch/x86/kernel/process.c       |    9 ++++
>  tip/arch/xtensa/kernel/Makefile     |    2 -
>  tip/kernel/sched/Makefile           |    4 --
>  tip/kernel/sched/init_task.c        |   24 ++++++++++++

Diffstat looks funny. Some tip stuff sneaked in.
Also I am missing patch 1..

	Sam

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [patch 21/29] score: Use generic init_task
  2012-04-30 20:21   ` KOSAKI Motohiro
@ 2012-04-30 20:38     ` Thomas Gleixner
  2012-04-30 20:49       ` Thomas Gleixner
  0 siblings, 1 reply; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:38 UTC (permalink / raw)
  To: KOSAKI Motohiro; +Cc: LKML, linux-arch, Chen Liqin

On Mon, 30 Apr 2012, KOSAKI Motohiro wrote:

> (4/30/12 4:16 PM), Thomas Gleixner wrote:
> > Same code. Use the generic version.
> > 
> > Signed-off-by: Thomas Gleixner<tglx@linutronix.de>
> > Cc: Chen Liqin<liqin.chen@sunplusct.com>
> > ---
> >   arch/score/Kconfig         |    1 +
> >   arch/score/kernel/Makefile |    2 +-
> >   2 files changed, 2 insertions(+), 1 deletion(-)
> > 
> > Index: tip/arch/score/Kconfig
> > ===================================================================
> > --- tip.orig/arch/score/Kconfig
> > +++ tip/arch/score/Kconfig
> > @@ -9,6 +9,7 @@ config SCORE
> >          select HAVE_MEMBLOCK_NODE_MAP
> >          select ARCH_DISCARD_MEMBLOCK
> >          select GENERIC_CPU_DEVICES
> > +       select HAVE_GENERIC_INIT_TASK
> > 
> >   choice
> >   	prompt "System type"
> > Index: tip/arch/score/kernel/Makefile
> > ===================================================================
> > --- tip.orig/arch/score/kernel/Makefile
> > +++ tip/arch/score/kernel/Makefile
> > @@ -4,7 +4,7 @@
> > 
> >   extra-y	:= head.o vmlinux.lds
> > 
> > -obj-y += entry.o init_task.o irq.o process.o ptrace.o \
> > +obj-y += entry.o irq.o process.o ptrace.o \
> >   	setup.o signal.o sys_score.o time.o traps.o \
> >   	sys_call_table.o
> 
> Almost patches delete arch specific init-task. But this patch doesn't.
> Is this really intentional?

Not really. I missed it :( Will fix.

Thanks,

	tglx


^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [patch 23/29] sparc: Use generic init_task
  2012-04-30 20:35   ` Sam Ravnborg
@ 2012-04-30 20:39     ` Thomas Gleixner
  2012-04-30 21:04       ` Thomas Gleixner
  0 siblings, 1 reply; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:39 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: LKML, linux-arch, David S. Miller

On Mon, 30 Apr 2012, Sam Ravnborg wrote:
> On Mon, Apr 30, 2012 at 08:16:03PM -0000, Thomas Gleixner wrote:
> > Same code. Use the generic version.
> > 
> > Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> > Cc: "David S. Miller" <davem@davemloft.net>
> > ---
> >  arch/sparc/Kconfig            |    1 +
> >  arch/sparc/kernel/init_task.c |   22 ----------------------
> >  2 files changed, 1 insertion(+), 22 deletions(-)
> > 
> > Index: tip/arch/sparc/Kconfig
> > ===================================================================
> > --- tip.orig/arch/sparc/Kconfig
> > +++ tip/arch/sparc/Kconfig
> > @@ -31,6 +31,7 @@ config SPARC
> >  	select GENERIC_PCI_IOMAP
> >  	select HAVE_NMI_WATCHDOG if SPARC64
> >  	select GENERIC_SMP_IDLE_THREAD
> > +	select HAVE_GENERIC_INIT_TASK
> >  
> >  config SPARC32
> >  	def_bool !64BIT
> > Index: tip/arch/sparc/kernel/init_task.c
> > ===================================================================
> > --- tip.orig/arch/sparc/kernel/init_task.c
> > +++ /dev/null
> 
> This breaks sparc build as it has the following in arch/sparc/Makefile:
> 
>     head-y                 += arch/sparc/kernel/init_task.o

Hrmm, I thought I had catched all of this nonsense.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [patch 00/29] init_task: Use a generic init_task variant
  2012-04-30 20:37 ` [patch 00/29] init_task: Use a generic init_task variant Sam Ravnborg
@ 2012-04-30 20:43   ` Thomas Gleixner
  2012-05-01 15:31     ` Sam Ravnborg
  0 siblings, 1 reply; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:43 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: LKML, linux-arch

On Mon, 30 Apr 2012, Sam Ravnborg wrote:

> On Mon, Apr 30, 2012 at 08:15:50PM -0000, Thomas Gleixner wrote:
> > All architectures do roughly the same to initialize init_task. The
> > only architecture which deviates is ia64, but I could not figure out
> > why it couldn't use the same setup as all other architectures.
> > 
> > The following series converts all archs to a generic version.
> > 
> > Thanks,
> > 
> > 	tglx
> > ---
> >  arch/um/kernel/init_task.c          |   38 -------------------
> >  arch/unicore32/kernel/init_task.c   |   44 ----------------------
> >  arch/x86/kernel/init_task.c         |   42 ---------------------
> >  arch/xtensa/kernel/init_task.c      |   31 ---------------
> >  tip/arch/um/kernel/um_arch.c        |    5 ++
> >  tip/arch/unicore32/Makefile         |    1 
> >  tip/arch/unicore32/kernel/Makefile  |    2 -
> >  tip/arch/x86/Makefile               |    1 
> >  tip/arch/x86/kernel/Makefile        |    2 -
> >  tip/arch/x86/kernel/process.c       |    9 ++++
> >  tip/arch/xtensa/kernel/Makefile     |    2 -
> >  tip/kernel/sched/Makefile           |    4 --
> >  tip/kernel/sched/init_task.c        |   24 ++++++++++++
> 
> Diffstat looks funny. Some tip stuff sneaked in.

Nah. That's diffstat madness. It does not add the prefix to the
deleted files, but for the modified ones it keeps it.

> Also I am missing patch 1..

I've got all of them sent back by vger ...

Thanks,

	tglx


^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [patch 21/29] score: Use generic init_task
  2012-04-30 20:38     ` Thomas Gleixner
@ 2012-04-30 20:49       ` Thomas Gleixner
  2012-05-01 13:46         ` KOSAKI Motohiro
  0 siblings, 1 reply; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 20:49 UTC (permalink / raw)
  To: KOSAKI Motohiro; +Cc: LKML, linux-arch, Chen Liqin

On Mon, 30 Apr 2012, Thomas Gleixner wrote:
> On Mon, 30 Apr 2012, KOSAKI Motohiro wrote:
> > Almost patches delete arch specific init-task. But this patch doesn't.
> > Is this really intentional?
> 
> Not really. I missed it :( Will fix.

Here is the updated one.

Thanks,

	tglx

-------------->

Subject: score: Use generic init_task
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 30 Apr 2012 16:46:03 +0200

Same code. Use the generic version.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Chen Liqin <liqin.chen@sunplusct.com>
---
 arch/score/Kconfig            |    1 
 arch/score/kernel/Makefile    |    2 -
 arch/score/kernel/init_task.c |   46 ------------------------------------------
 3 files changed, 2 insertions(+), 47 deletions(-)

Index: tip/arch/score/Kconfig
===================================================================
--- tip.orig/arch/score/Kconfig
+++ tip/arch/score/Kconfig
@@ -9,6 +9,7 @@ config SCORE
        select HAVE_MEMBLOCK_NODE_MAP
        select ARCH_DISCARD_MEMBLOCK
        select GENERIC_CPU_DEVICES
+       select HAVE_GENERIC_INIT_TASK
 
 choice
 	prompt "System type"
Index: tip/arch/score/kernel/Makefile
===================================================================
--- tip.orig/arch/score/kernel/Makefile
+++ tip/arch/score/kernel/Makefile
@@ -4,7 +4,7 @@
 
 extra-y	:= head.o vmlinux.lds
 
-obj-y += entry.o init_task.o irq.o process.o ptrace.o \
+obj-y += entry.o irq.o process.o ptrace.o \
 	setup.o signal.o sys_score.o time.o traps.o \
 	sys_call_table.o
 
Index: tip/arch/score/kernel/init_task.c
===================================================================
--- tip.orig/arch/score/kernel/init_task.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * arch/score/kernel/init_task.c
- *
- * Score Processor version.
- *
- * Copyright (C) 2009 Sunplus Core Technology Co., Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see the file COPYING, or write
- * to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-#include <linux/init_task.h>
-#include <linux/mqueue.h>
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-
-/*
- * Initial thread structure.
- *
- * We need to make sure that this is THREAD_SIZE aligned due to the
- * way process stacks are handled. This is done by having a special
- * "init_task" linker map entry..
- */
-union thread_union init_thread_union __init_task_data =
-	{ INIT_THREAD_INFO(init_task) };
-
-/*
- * Initial task structure.
- *
- * All other task structs will be allocated on slabs in fork.c
- */
-struct task_struct init_task = INIT_TASK(init_task);
-EXPORT_SYMBOL(init_task);

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [patch 23/29] sparc: Use generic init_task
  2012-04-30 20:39     ` Thomas Gleixner
@ 2012-04-30 21:04       ` Thomas Gleixner
  2012-04-30 21:10         ` Sam Ravnborg
  0 siblings, 1 reply; 48+ messages in thread
From: Thomas Gleixner @ 2012-04-30 21:04 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: LKML, linux-arch, David S. Miller

On Mon, 30 Apr 2012, Thomas Gleixner wrote:
> On Mon, 30 Apr 2012, Sam Ravnborg wrote:
> > This breaks sparc build as it has the following in arch/sparc/Makefile:
> > 
> >     head-y                 += arch/sparc/kernel/init_task.o
> 
> Hrmm, I thought I had catched all of this nonsense.

Updated version below.

Thanks,

	tglx

-------------------->
Subject: sparc: Use generic init_task
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 30 Apr 2012 16:48:55 +0200

Same code. Use the generic version. The special Makefile treatment is
pointless anyway as init_task.o contains only data which is handled by
the linker script. So no point on being treated like head text.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: "David S. Miller" <davem@davemloft.net>
---
 arch/sparc/Kconfig            |    1 +
 arch/sparc/Makefile           |    1 -
 arch/sparc/kernel/Makefile    |    1 -
 arch/sparc/kernel/init_task.c |   22 ----------------------
 4 files changed, 1 insertion(+), 24 deletions(-)

Index: tip/arch/sparc/Kconfig
===================================================================
--- tip.orig/arch/sparc/Kconfig
+++ tip/arch/sparc/Kconfig
@@ -31,6 +31,7 @@ config SPARC
 	select GENERIC_PCI_IOMAP
 	select HAVE_NMI_WATCHDOG if SPARC64
 	select GENERIC_SMP_IDLE_THREAD
+	select HAVE_GENERIC_INIT_TASK
 
 config SPARC32
 	def_bool !64BIT
Index: tip/arch/sparc/Makefile
===================================================================
--- tip.orig/arch/sparc/Makefile
+++ tip/arch/sparc/Makefile
@@ -62,7 +62,6 @@ endif
 endif
 
 head-y                 := arch/sparc/kernel/head_$(BITS).o
-head-y                 += arch/sparc/kernel/init_task.o
 
 core-y                 += arch/sparc/kernel/
 core-y                 += arch/sparc/mm/ arch/sparc/math-emu/
Index: tip/arch/sparc/kernel/Makefile
===================================================================
--- tip.orig/arch/sparc/kernel/Makefile
+++ tip/arch/sparc/kernel/Makefile
@@ -6,7 +6,6 @@ asflags-y := -ansi
 ccflags-y := -Werror
 
 extra-y     := head_$(BITS).o
-extra-y     += init_task.o
 
 # Undefine sparc when processing vmlinux.lds - it is used
 # And teach CPP we are doing $(BITS) builds (for this case)
Index: tip/arch/sparc/kernel/init_task.c
===================================================================
--- tip.orig/arch/sparc/kernel/init_task.c
+++ /dev/null
@@ -1,22 +0,0 @@
-#include <linux/mm.h>
-#include <linux/fs.h>
-#include <linux/module.h>
-#include <linux/sched.h>
-#include <linux/init_task.h>
-#include <linux/mqueue.h>
-
-#include <asm/pgtable.h>
-#include <asm/uaccess.h>
-
-static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
-static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
-struct task_struct init_task = INIT_TASK(init_task);
-EXPORT_SYMBOL(init_task);
-
-/* .text section in head.S is aligned at 8k boundary and this gets linked
- * right after that so that the init_thread_union is aligned properly as well.
- * If this is not aligned on a 8k boundary, then you should change code
- * in etrap.S which assumes it.
- */
-union thread_union init_thread_union __init_task_data =
-	{ INIT_THREAD_INFO(init_task) };

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [patch 23/29] sparc: Use generic init_task
  2012-04-30 21:04       ` Thomas Gleixner
@ 2012-04-30 21:10         ` Sam Ravnborg
  2012-05-01  1:46           ` David Miller
  0 siblings, 1 reply; 48+ messages in thread
From: Sam Ravnborg @ 2012-04-30 21:10 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML, linux-arch, David S. Miller

On Mon, Apr 30, 2012 at 11:04:39PM +0200, Thomas Gleixner wrote:
> On Mon, 30 Apr 2012, Thomas Gleixner wrote:
> > On Mon, 30 Apr 2012, Sam Ravnborg wrote:
> > > This breaks sparc build as it has the following in arch/sparc/Makefile:
> > > 
> > >     head-y                 += arch/sparc/kernel/init_task.o
> > 
> > Hrmm, I thought I had catched all of this nonsense.
> 
> Updated version below.
> 
> Thanks,
> 
> 	tglx
> 
> -------------------->
> Subject: sparc: Use generic init_task
> From: Thomas Gleixner <tglx@linutronix.de>
> Date: Mon, 30 Apr 2012 16:48:55 +0200
> 
> Same code. Use the generic version. The special Makefile treatment is
> pointless anyway as init_task.o contains only data which is handled by
> the linker script. So no point on being treated like head text.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Cc: "David S. Miller" <davem@davemloft.net>
Acked-by: Sam Ravnborg <sam@ravnborg.org>


^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [patch 25/29] um: Use generic init_task
  2012-04-30 20:16 ` [patch 25/29] um: " Thomas Gleixner
@ 2012-04-30 22:06   ` Richard Weinberger
  0 siblings, 0 replies; 48+ messages in thread
From: Richard Weinberger @ 2012-04-30 22:06 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML, linux-arch

On Mon, 30 Apr 2012 20:16:04 -0000, Thomas Gleixner
<tglx@linutronix.de> wrote:
> Same code. Use the generic version.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Cc: Richard Weinberger <richard@nod.at>

Acked-by: Richard Weinberger <richard@nod.at>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [patch 19/29] powerpc: Use generic init_task
  2012-04-30 20:16 ` [patch 19/29] powerpc: " Thomas Gleixner
@ 2012-04-30 22:34   ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 48+ messages in thread
From: Benjamin Herrenschmidt @ 2012-04-30 22:34 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML, linux-arch

On Mon, 2012-04-30 at 20:16 +0000, Thomas Gleixner wrote:
> plain text document attachment (powerpc-use-generic-init-task.patch)
> Same code. Use the generic version.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> ---
>  arch/powerpc/Kconfig            |    1 +
>  arch/powerpc/kernel/Makefile    |    2 +-
>  arch/powerpc/kernel/init_task.c |   29 -----------------------------
>  3 files changed, 2 insertions(+), 30 deletions(-)
> 
> Index: tip/arch/powerpc/Kconfig
> ===================================================================
> --- tip.orig/arch/powerpc/Kconfig
> +++ tip/arch/powerpc/Kconfig
> @@ -145,6 +145,7 @@ config PPC
>  	select HAVE_ARCH_JUMP_LABEL
>  	select ARCH_HAVE_NMI_SAFE_CMPXCHG
>  	select GENERIC_SMP_IDLE_THREAD
> +	select HAVE_GENERIC_INIT_TASK
>  
>  config EARLY_PRINTK
>  	bool
> Index: tip/arch/powerpc/kernel/Makefile
> ===================================================================
> --- tip.orig/arch/powerpc/kernel/Makefile
> +++ tip/arch/powerpc/kernel/Makefile
> @@ -28,7 +28,7 @@ endif
>  
>  obj-y				:= cputable.o ptrace.o syscalls.o \
>  				   irq.o align.o signal_32.o pmc.o vdso.o \
> -				   init_task.o process.o systbl.o idle.o \
> +				   process.o systbl.o idle.o \
>  				   signal.o sysfs.o cacheinfo.o time.o \
>  				   prom.o traps.o setup-common.o \
>  				   udbg.o misc.o io.o dma.o \
> Index: tip/arch/powerpc/kernel/init_task.c
> ===================================================================
> --- tip.orig/arch/powerpc/kernel/init_task.c
> +++ /dev/null
> @@ -1,29 +0,0 @@
> -#include <linux/mm.h>
> -#include <linux/export.h>
> -#include <linux/sched.h>
> -#include <linux/init.h>
> -#include <linux/init_task.h>
> -#include <linux/fs.h>
> -#include <linux/mqueue.h>
> -#include <asm/uaccess.h>
> -
> -static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
> -static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
> -/*
> - * Initial thread structure.
> - *
> - * We need to make sure that this is 16384-byte aligned due to the
> - * way process stacks are handled. This is done by having a special
> - * "init_task" linker map entry..
> - */
> -union thread_union init_thread_union __init_task_data =
> -	{ INIT_THREAD_INFO(init_task) };
> -
> -/*
> - * Initial task structure.
> - *
> - * All other task structs will be allocated on slabs in fork.c
> - */
> -struct task_struct init_task = INIT_TASK(init_task);
> -
> -EXPORT_SYMBOL(init_task);
> 



^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [patch 22/29] sh: Use generic init_task
  2012-04-30 20:16 ` [patch 22/29] sh: " Thomas Gleixner
@ 2012-04-30 22:57   ` Paul Mundt
  0 siblings, 0 replies; 48+ messages in thread
From: Paul Mundt @ 2012-04-30 22:57 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML, linux-arch

On Mon, Apr 30, 2012 at 08:16:02PM -0000, Thomas Gleixner wrote:
> Same code. Use the generic version. The special Makefile treatment is
> pointless anyway as init_task.o contains only data which is handled by
> the linker script. So no point on being treated like head text.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Cc: Paul Mundt <lethal@linux-sh.org>

Acked-by: Paul Mundt <lethal@linux-sh.org>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [patch 23/29] sparc: Use generic init_task
  2012-04-30 21:10         ` Sam Ravnborg
@ 2012-05-01  1:46           ` David Miller
  0 siblings, 0 replies; 48+ messages in thread
From: David Miller @ 2012-05-01  1:46 UTC (permalink / raw)
  To: sam; +Cc: tglx, linux-kernel, linux-arch

From: Sam Ravnborg <sam@ravnborg.org>
Date: Mon, 30 Apr 2012 23:10:54 +0200

> On Mon, Apr 30, 2012 at 11:04:39PM +0200, Thomas Gleixner wrote:
>> On Mon, 30 Apr 2012, Thomas Gleixner wrote:
>> > On Mon, 30 Apr 2012, Sam Ravnborg wrote:
>> > > This breaks sparc build as it has the following in arch/sparc/Makefile:
>> > > 
>> > >     head-y                 += arch/sparc/kernel/init_task.o
>> > 
>> > Hrmm, I thought I had catched all of this nonsense.
>> 
>> Updated version below.
>> 
>> Thanks,
>> 
>> 	tglx
>> 
>> -------------------->
>> Subject: sparc: Use generic init_task
>> From: Thomas Gleixner <tglx@linutronix.de>
>> Date: Mon, 30 Apr 2012 16:48:55 +0200
>> 
>> Same code. Use the generic version. The special Makefile treatment is
>> pointless anyway as init_task.o contains only data which is handled by
>> the linker script. So no point on being treated like head text.
>> 
>> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
>> Cc: "David S. Miller" <davem@davemloft.net>
> Acked-by: Sam Ravnborg <sam@ravnborg.org>

Acked-by: David S. Miller <davem@davemloft.net>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [patch 21/29] score: Use generic init_task
  2012-04-30 20:49       ` Thomas Gleixner
@ 2012-05-01 13:46         ` KOSAKI Motohiro
  0 siblings, 0 replies; 48+ messages in thread
From: KOSAKI Motohiro @ 2012-05-01 13:46 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML, linux-arch, Chen Liqin

On Mon, Apr 30, 2012 at 4:49 PM, Thomas Gleixner <tglx@linutronix.de> wrote:
> On Mon, 30 Apr 2012, Thomas Gleixner wrote:
>> On Mon, 30 Apr 2012, KOSAKI Motohiro wrote:
>> > Almost patches delete arch specific init-task. But this patch doesn't.
>> > Is this really intentional?
>>
>> Not really. I missed it :( Will fix.
>
> Here is the updated one.
>
> Thanks,

Seems good. (but obviously I'm not score expert, don't believe me).

Thanks.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [patch 00/29] init_task: Use a generic init_task variant
  2012-04-30 20:43   ` Thomas Gleixner
@ 2012-05-01 15:31     ` Sam Ravnborg
  2012-05-02  7:09       ` Heiko Carstens
  0 siblings, 1 reply; 48+ messages in thread
From: Sam Ravnborg @ 2012-05-01 15:31 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML, linux-arch

> 
> > Also I am missing patch 1..
> 
> I've got all of them sent back by vger ...
No sign of it yet?!?!?

Too many cc's?

	Sam

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [patch 00/29] init_task: Use a generic init_task variant
  2012-05-01 15:31     ` Sam Ravnborg
@ 2012-05-02  7:09       ` Heiko Carstens
  0 siblings, 0 replies; 48+ messages in thread
From: Heiko Carstens @ 2012-05-02  7:09 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: Thomas Gleixner, LKML, linux-arch

On Tue, May 01, 2012 at 05:31:26PM +0200, Sam Ravnborg wrote:
> > 
> > > Also I am missing patch 1..
> > 
> > I've got all of them sent back by vger ...
> No sign of it yet?!?!?
> 
> Too many cc's?

Same here, patch 1 never arrived nor could I find it on three
different archives.
Could you please resend that one?


^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [patch 07/29] cris: Use generic init_task
  2012-04-30 20:15 ` [patch 07/29] cris: " Thomas Gleixner
@ 2012-05-02 11:24   ` Jesper Nilsson
  0 siblings, 0 replies; 48+ messages in thread
From: Jesper Nilsson @ 2012-05-02 11:24 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML, linux-arch

On Mon, Apr 30, 2012 at 10:15:55PM +0200, Thomas Gleixner wrote:
> Same code. Use the generic version.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

Acked-by: Jesper Nilsson <jesper.nilsson@axis.com>

> ---
>  arch/cris/Kconfig          |    1 +
>  arch/cris/kernel/process.c |   28 ----------------------------
>  2 files changed, 1 insertion(+), 28 deletions(-)
> 
> Index: tip/arch/cris/Kconfig
> ===================================================================
> --- tip.orig/arch/cris/Kconfig
> +++ tip/arch/cris/Kconfig
> @@ -50,6 +50,7 @@ config CRIS
>  	select GENERIC_IRQ_SHOW
>  	select GENERIC_IOMAP
>  	select GENERIC_SMP_IDLE_THREAD if ETRAX_ARCH_V32
> +	select HAVE_GENERIC_INIT_TASK
>  
>  config HZ
>  	int
> Index: tip/arch/cris/kernel/process.c
> ===================================================================
> --- tip.orig/arch/cris/kernel/process.c
> +++ tip/arch/cris/kernel/process.c
> @@ -29,34 +29,6 @@
>  //#define DEBUG
>  
>  /*
> - * Initial task structure. Make this a per-architecture thing,
> - * because different architectures tend to have different
> - * alignment requirements and potentially different initial
> - * setup.
> - */
> -
> -static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
> -static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
> -/*
> - * Initial thread structure.
> - *
> - * We need to make sure that this is 8192-byte aligned due to the
> - * way process stacks are handled. This is done by having a special
> - * "init_task" linker map entry..
> - */
> -union thread_union init_thread_union __init_task_data =
> -	{ INIT_THREAD_INFO(init_task) };
> -
> -/*
> - * Initial task structure.
> - *
> - * All other task structs will be allocated on slabs in fork.c
> - */
> -struct task_struct init_task = INIT_TASK(init_task);
> -
> -EXPORT_SYMBOL(init_task);
> -
> -/*
>   * The hlt_counter, disable_hlt and enable_hlt is just here as a hook if
>   * there would ever be a halt sequence (for power save when idle) with
>   * some largish delay when halting or resuming *and* a driver that can't
> 

/^JN - Jesper Nilsson
-- 
               Jesper Nilsson -- jesper.nilsson@axis.com

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [patch 10/29] hexagon: Use generic idle_task
  2012-04-30 20:15 ` [patch 10/29] hexagon: Use generic idle_task Thomas Gleixner
@ 2012-05-03  0:46   ` Richard Kuo
  0 siblings, 0 replies; 48+ messages in thread
From: Richard Kuo @ 2012-05-03  0:46 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML, linux-arch, linux-hexagon

On Mon, Apr 30, 2012 at 08:15:56PM -0000, Thomas Gleixner wrote:
> Same code. Use the generic version. The special Makefile treatment is
> pointless anyway as init_task.o contains only data which is handled by
> the linker script. So no point on being treated like head text.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Cc: Richard Kuo <rkuo@codeaurora.org>
> ---
>  arch/hexagon/Kconfig            |    1 
>  arch/hexagon/Makefile           |    3 --
>  arch/hexagon/kernel/Makefile    |    2 -
>  arch/hexagon/kernel/init_task.c |   54 ----------------------------------------
>  4 files changed, 3 insertions(+), 57 deletions(-)
> 
> Index: tip/arch/hexagon/Kconfig
> ===================================================================
> --- tip.orig/arch/hexagon/Kconfig
> +++ tip/arch/hexagon/Kconfig
> @@ -28,6 +28,7 @@ config HEXAGON
>  	select NO_IOPORT
>  	select GENERIC_IOMAP
>  	select GENERIC_SMP_IDLE_THREAD
> +	select HAVE_GENERIC_INIT_TASK
>  	# mostly generic routines, with some accelerated ones
>  	---help---
>  	  Qualcomm Hexagon is a processor architecture designed for high
> Index: tip/arch/hexagon/Makefile
> ===================================================================
> --- tip.orig/arch/hexagon/Makefile
> +++ tip/arch/hexagon/Makefile
> @@ -45,8 +45,7 @@ KBUILD_AFLAGS += -DTHREADINFO_REG=$(TIR_
>  LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
>  libs-y += $(LIBGCC)
>  
> -head-y := arch/hexagon/kernel/head.o \
> -	arch/hexagon/kernel/init_task.o
> +head-y := arch/hexagon/kernel/head.o
>  
>  core-y += arch/hexagon/kernel/ \
>  	arch/hexagon/mm/ \
> Index: tip/arch/hexagon/kernel/Makefile
> ===================================================================
> --- tip.orig/arch/hexagon/kernel/Makefile
> +++ tip/arch/hexagon/kernel/Makefile
> @@ -1,4 +1,4 @@
> -extra-y := head.o vmlinux.lds init_task.o
> +extra-y := head.o vmlinux.lds
>  
>  obj-$(CONFIG_SMP) += smp.o topology.o
>  
> Index: tip/arch/hexagon/kernel/init_task.c
> ===================================================================
> --- tip.orig/arch/hexagon/kernel/init_task.c
> +++ /dev/null
> @@ -1,54 +0,0 @@
> -/*
> - * Init task definition
> - *
> - * Copyright (c) 2010-2011, Code Aurora Forum. All rights reserved.
> - *
> - * This program is free software; you can redistribute it and/or modify
> - * it under the terms of the GNU General Public License version 2 and
> - * only version 2 as published by the Free Software Foundation.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - * GNU General Public License for more details.
> - *
> - * You should have received a copy of the GNU General Public License
> - * along with this program; if not, write to the Free Software
> - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
> - * 02110-1301, USA.
> - */
> -
> -#include <linux/mm.h>
> -#include <linux/module.h>
> -#include <linux/sched.h>
> -#include <linux/init_task.h>
> -#include <linux/fs.h>
> -#include <linux/mqueue.h>
> -#include <asm/thread_info.h>
> -#include <asm/uaccess.h>
> -#include <asm/pgtable.h>
> -
> -static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
> -static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
> -
> -/*
> - * Initial thread structure.
> - *
> - * We need to make sure that this is 8192-byte aligned due to the
> - * way process stacks are handled. This is done by making sure
> - * the linker maps this in the .text segment right after head.S,
> - * and making head.S ensure the proper alignment.
> - */
> -union thread_union init_thread_union
> -	__attribute__((__section__(".data.init_task"),
> -		__aligned__(THREAD_SIZE))) = {
> -			INIT_THREAD_INFO(init_task)
> -		};
> -
> -/*
> - * Initial task structure.
> - *
> - * All other task structs will be allocated on slabs in fork.c
> - */
> -struct task_struct init_task = INIT_TASK(init_task);
> -EXPORT_SYMBOL(init_task);
> 
> 

Acked-and-tested-by: Richard Kuo <rkuo@codeaurora.org>


-- 

Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [patch 05/29] blackfin: Use generic init_task
  2012-04-30 20:15 ` [patch 05/29] blackfin: " Thomas Gleixner
@ 2012-05-06  8:16   ` Mike Frysinger
  0 siblings, 0 replies; 48+ messages in thread
From: Mike Frysinger @ 2012-05-06  8:16 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML, linux-arch

[-- Attachment #1: Type: Text/Plain, Size: 329 bytes --]

On Monday 30 April 2012 16:15:54 Thomas Gleixner wrote:
> Same code. Use the generic version. The special Makefile treatment is
> pointless anyway as init_task.o contains only data which is handled by
> the linker script. So no point on being treated like head text.

thanks !

Acked-by: Mike Frysinger <vapier@gentoo.org>
-mike

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 48+ messages in thread

end of thread, other threads:[~2012-05-06  8:15 UTC | newest]

Thread overview: 48+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-30 20:15 [patch 00/29] init_task: Use a generic init_task variant Thomas Gleixner
2012-04-30 20:15 ` [patch 02/29] alpha: Use generic init_task Thomas Gleixner
2012-04-30 20:15 ` [patch 03/29] arm: " Thomas Gleixner
2012-04-30 20:15 ` [patch 04/29] avr32: " Thomas Gleixner
2012-04-30 20:15 ` [patch 06/29] cx6: " Thomas Gleixner
2012-04-30 20:15 ` [patch 05/29] blackfin: " Thomas Gleixner
2012-05-06  8:16   ` Mike Frysinger
2012-04-30 20:15 ` [patch 08/29] frv: " Thomas Gleixner
2012-04-30 20:15 ` [patch 07/29] cris: " Thomas Gleixner
2012-05-02 11:24   ` Jesper Nilsson
2012-04-30 20:15 ` [patch 09/29] h8300: " Thomas Gleixner
2012-04-30 20:15 ` [patch 10/29] hexagon: Use generic idle_task Thomas Gleixner
2012-05-03  0:46   ` Richard Kuo
2012-04-30 20:15 ` [patch 12/29] m32r: Use generic init_task Thomas Gleixner
2012-04-30 20:15 ` [patch 11/29] ia64: " Thomas Gleixner
2012-04-30 20:15 ` [patch 13/29] m68k: " Thomas Gleixner
2012-04-30 20:15 ` [patch 14/29] microblaze: " Thomas Gleixner
2012-04-30 20:15 ` [patch 16/29] mn10300: " Thomas Gleixner
2012-04-30 20:15 ` [patch 15/29] mips: " Thomas Gleixner
2012-04-30 20:16 ` [patch 18/29] parisc: " Thomas Gleixner
2012-04-30 20:16 ` [patch 17/29] openrisc: " Thomas Gleixner
2012-04-30 20:16 ` [patch 19/29] powerpc: " Thomas Gleixner
2012-04-30 22:34   ` Benjamin Herrenschmidt
2012-04-30 20:16 ` [patch 20/29] s390: " Thomas Gleixner
2012-04-30 20:16 ` [patch 22/29] sh: " Thomas Gleixner
2012-04-30 22:57   ` Paul Mundt
2012-04-30 20:16 ` [patch 21/29] score: " Thomas Gleixner
2012-04-30 20:21   ` KOSAKI Motohiro
2012-04-30 20:38     ` Thomas Gleixner
2012-04-30 20:49       ` Thomas Gleixner
2012-05-01 13:46         ` KOSAKI Motohiro
2012-04-30 20:16 ` [patch 24/29] tile: " Thomas Gleixner
2012-04-30 20:16 ` [patch 23/29] sparc: " Thomas Gleixner
2012-04-30 20:35   ` Sam Ravnborg
2012-04-30 20:39     ` Thomas Gleixner
2012-04-30 21:04       ` Thomas Gleixner
2012-04-30 21:10         ` Sam Ravnborg
2012-05-01  1:46           ` David Miller
2012-04-30 20:16 ` [patch 25/29] um: " Thomas Gleixner
2012-04-30 22:06   ` Richard Weinberger
2012-04-30 20:16 ` [patch 26/29] unicore32: " Thomas Gleixner
2012-04-30 20:16 ` [patch 27/29] x86: " Thomas Gleixner
2012-04-30 20:16 ` [patch 28/29] xtensa: " Thomas Gleixner
2012-04-30 20:16 ` [patch 29/29] init_task: Remove CONFIG_HAVE_GENERIC_INIT_TASK Thomas Gleixner
2012-04-30 20:37 ` [patch 00/29] init_task: Use a generic init_task variant Sam Ravnborg
2012-04-30 20:43   ` Thomas Gleixner
2012-05-01 15:31     ` Sam Ravnborg
2012-05-02  7:09       ` Heiko Carstens

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).