aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/kernel-parameters.txt2
-rw-r--r--arch/alpha/kernel/head.S3
-rw-r--r--arch/alpha/kernel/vmlinux.lds.S2
-rw-r--r--arch/frv/include/asm/bug.h5
-rw-r--r--arch/frv/include/asm/unistd.h4
-rw-r--r--arch/frv/kernel/entry.S2
-rw-r--r--arch/frv/kernel/head.S3
-rw-r--r--arch/frv/kernel/vmlinux.lds.S2
-rw-r--r--arch/m32r/kernel/head.S2
-rw-r--r--arch/m32r/kernel/vmlinux.lds.S2
-rw-r--r--arch/m68k/kernel/head.S2
-rw-r--r--arch/m68k/kernel/sun3-head.S2
-rw-r--r--arch/m68k/kernel/vmlinux-std.lds2
-rw-r--r--arch/m68k/kernel/vmlinux-sun3.lds2
-rw-r--r--arch/mn10300/kernel/head.S3
-rw-r--r--arch/mn10300/kernel/vmlinux.lds.S5
-rw-r--r--arch/powerpc/kernel/head_32.S3
-rw-r--r--arch/powerpc/kernel/head_40x.S3
-rw-r--r--arch/powerpc/kernel/head_44x.S3
-rw-r--r--arch/powerpc/kernel/head_8xx.S3
-rw-r--r--arch/powerpc/kernel/head_fsl_booke.S3
-rw-r--r--arch/powerpc/kernel/vmlinux.lds.S2
-rw-r--r--arch/s390/kernel/head.S3
-rw-r--r--arch/s390/kernel/vmlinux.lds.S4
-rw-r--r--arch/sh/configs/sh7785lcr_defconfig57
-rw-r--r--arch/sh/include/asm/ptrace.h2
-rw-r--r--arch/sh/kernel/head_32.S3
-rw-r--r--arch/sh/kernel/head_64.S5
-rw-r--r--arch/sh/kernel/vmlinux_32.lds.S2
-rw-r--r--arch/sh/kernel/vmlinux_64.lds.S2
-rw-r--r--arch/sparc/kernel/head_32.S2
-rw-r--r--arch/sparc/kernel/vmlinux.lds.S2
-rw-r--r--arch/x86/Kconfig2
-rw-r--r--arch/x86/Makefile6
-rw-r--r--arch/x86/kernel/apic/io_apic.c2
-rw-r--r--arch/x86/kernel/apic/nmi.c5
-rw-r--r--arch/x86/kernel/apic/x2apic_uv_x.c15
-rw-r--r--arch/x86/kernel/entry_64.S3
-rw-r--r--arch/x86/kernel/hpet.c18
-rw-r--r--arch/x86/kernel/quirks.c2
-rw-r--r--arch/x86/kernel/uv_time.c10
-rw-r--r--arch/x86/kernel/xsave.c4
-rw-r--r--arch/x86/mm/numa_32.c2
-rw-r--r--arch/x86/mm/numa_64.c3
-rw-r--r--arch/x86/mm/srat_64.c6
-rw-r--r--arch/xtensa/kernel/head.S3
-rw-r--r--arch/xtensa/kernel/vmlinux.lds.S4
-rw-r--r--drivers/input/mouse/maplemouse.c43
-rw-r--r--include/asm-generic/vmlinux.lds.h4
-rw-r--r--include/linux/init.h4
-rw-r--r--include/linux/section-names.h6
-rw-r--r--kernel/irq/manage.c5
-rw-r--r--kernel/lockdep.c22
-rw-r--r--kernel/panic.c2
-rw-r--r--kernel/ptrace.c4
55 files changed, 210 insertions, 107 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 600cdd72900c..90b3924071b6 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1620,6 +1620,8 @@ and is between 256 and 4096 characters. It is defined in the file
1620 1620
1621 nowb [ARM] 1621 nowb [ARM]
1622 1622
1623 nox2apic [X86-64,APIC] Do not enable x2APIC mode.
1624
1623 nptcg= [IA64] Override max number of concurrent global TLB 1625 nptcg= [IA64] Override max number of concurrent global TLB
1624 purges which is reported from either PAL_VM_SUMMARY or 1626 purges which is reported from either PAL_VM_SUMMARY or
1625 SAL PALO. 1627 SAL PALO.
diff --git a/arch/alpha/kernel/head.S b/arch/alpha/kernel/head.S
index 7ac1f1372c36..4bdd1d2ff353 100644
--- a/arch/alpha/kernel/head.S
+++ b/arch/alpha/kernel/head.S
@@ -7,10 +7,11 @@
7 * the kernel global pointer and jump to the kernel entry-point. 7 * the kernel global pointer and jump to the kernel entry-point.
8 */ 8 */
9 9
10#include <linux/init.h>
10#include <asm/system.h> 11#include <asm/system.h>
11#include <asm/asm-offsets.h> 12#include <asm/asm-offsets.h>
12 13
13.section .text.head, "ax" 14__HEAD
14.globl swapper_pg_dir 15.globl swapper_pg_dir
15.globl _stext 16.globl _stext
16swapper_pg_dir=SWAPPER_PGD 17swapper_pg_dir=SWAPPER_PGD
diff --git a/arch/alpha/kernel/vmlinux.lds.S b/arch/alpha/kernel/vmlinux.lds.S
index ef37fc1acaea..b9d6568e5f7f 100644
--- a/arch/alpha/kernel/vmlinux.lds.S
+++ b/arch/alpha/kernel/vmlinux.lds.S
@@ -16,7 +16,7 @@ SECTIONS
16 16
17 _text = .; /* Text and read-only data */ 17 _text = .; /* Text and read-only data */
18 .text : { 18 .text : {
19 *(.text.head) 19 HEAD_TEXT
20 TEXT_TEXT 20 TEXT_TEXT
21 SCHED_TEXT 21 SCHED_TEXT
22 LOCK_TEXT 22 LOCK_TEXT
diff --git a/arch/frv/include/asm/bug.h b/arch/frv/include/asm/bug.h
index 6b1b44d71028..2e054508a2f6 100644
--- a/arch/frv/include/asm/bug.h
+++ b/arch/frv/include/asm/bug.h
@@ -30,7 +30,7 @@ extern void __debug_bug_printk(const char *file, unsigned line);
30do { \ 30do { \
31 __debug_bug_trap(signr); \ 31 __debug_bug_trap(signr); \
32 asm volatile("nop"); \ 32 asm volatile("nop"); \
33} while(0) 33} while(1)
34 34
35#define HAVE_ARCH_BUG 35#define HAVE_ARCH_BUG
36#define BUG() \ 36#define BUG() \
@@ -46,7 +46,8 @@ do { \
46#define HAVE_ARCH_KGDB_BAD_PAGE 46#define HAVE_ARCH_KGDB_BAD_PAGE
47#define kgdb_bad_page(page) do { kgdb_raise(SIGABRT); } while(0) 47#define kgdb_bad_page(page) do { kgdb_raise(SIGABRT); } while(0)
48#endif 48#endif
49#endif 49
50#endif /* CONFIG_BUG */
50 51
51#include <asm-generic/bug.h> 52#include <asm-generic/bug.h>
52 53
diff --git a/arch/frv/include/asm/unistd.h b/arch/frv/include/asm/unistd.h
index edcfaf5f0414..96d78d5d2c41 100644
--- a/arch/frv/include/asm/unistd.h
+++ b/arch/frv/include/asm/unistd.h
@@ -339,10 +339,12 @@
339#define __NR_dup3 330 339#define __NR_dup3 330
340#define __NR_pipe2 331 340#define __NR_pipe2 331
341#define __NR_inotify_init1 332 341#define __NR_inotify_init1 332
342#define __NR_preadv 333
343#define __NR_pwritev 334
342 344
343#ifdef __KERNEL__ 345#ifdef __KERNEL__
344 346
345#define NR_syscalls 333 347#define NR_syscalls 335
346 348
347#define __ARCH_WANT_IPC_PARSE_VERSION 349#define __ARCH_WANT_IPC_PARSE_VERSION
348/* #define __ARCH_WANT_OLD_READDIR */ 350/* #define __ARCH_WANT_OLD_READDIR */
diff --git a/arch/frv/kernel/entry.S b/arch/frv/kernel/entry.S
index 99060ab507ee..1da523b3298e 100644
--- a/arch/frv/kernel/entry.S
+++ b/arch/frv/kernel/entry.S
@@ -1525,5 +1525,7 @@ sys_call_table:
1525 .long sys_dup3 /* 330 */ 1525 .long sys_dup3 /* 330 */
1526 .long sys_pipe2 1526 .long sys_pipe2
1527 .long sys_inotify_init1 1527 .long sys_inotify_init1
1528 .long sys_preadv
1529 .long sys_pwritev
1528 1530
1529syscall_table_size = (. - sys_call_table) 1531syscall_table_size = (. - sys_call_table)
diff --git a/arch/frv/kernel/head.S b/arch/frv/kernel/head.S
index fecf751c5cae..b825ef3f2d54 100644
--- a/arch/frv/kernel/head.S
+++ b/arch/frv/kernel/head.S
@@ -9,6 +9,7 @@
9 * 2 of the License, or (at your option) any later version. 9 * 2 of the License, or (at your option) any later version.
10 */ 10 */
11 11
12#include <linux/init.h>
12#include <linux/threads.h> 13#include <linux/threads.h>
13#include <linux/linkage.h> 14#include <linux/linkage.h>
14#include <asm/thread_info.h> 15#include <asm/thread_info.h>
@@ -27,7 +28,7 @@
27# command line string 28# command line string
28# 29#
29############################################################################### 30###############################################################################
30 .section .text.head,"ax" 31 __HEAD
31 .balign 4 32 .balign 4
32 33
33 .globl _boot, __head_reference 34 .globl _boot, __head_reference
diff --git a/arch/frv/kernel/vmlinux.lds.S b/arch/frv/kernel/vmlinux.lds.S
index b95c4eace62f..22d9787406ed 100644
--- a/arch/frv/kernel/vmlinux.lds.S
+++ b/arch/frv/kernel/vmlinux.lds.S
@@ -26,7 +26,7 @@ SECTIONS
26 26
27 _sinittext = .; 27 _sinittext = .;
28 .init.text : { 28 .init.text : {
29 *(.text.head) 29 HEAD_TEXT
30#ifndef CONFIG_DEBUG_INFO 30#ifndef CONFIG_DEBUG_INFO
31 INIT_TEXT 31 INIT_TEXT
32 EXIT_TEXT 32 EXIT_TEXT
diff --git a/arch/m32r/kernel/head.S b/arch/m32r/kernel/head.S
index 90916067b9c1..0a7194439eb1 100644
--- a/arch/m32r/kernel/head.S
+++ b/arch/m32r/kernel/head.S
@@ -23,7 +23,7 @@ __INITDATA
23/* 23/*
24 * References to members of the boot_cpu_data structure. 24 * References to members of the boot_cpu_data structure.
25 */ 25 */
26.section .text.head, "ax" 26__HEAD
27 .global start_kernel 27 .global start_kernel
28 .global __bss_start 28 .global __bss_start
29 .global _end 29 .global _end
diff --git a/arch/m32r/kernel/vmlinux.lds.S b/arch/m32r/kernel/vmlinux.lds.S
index 9db05df20c0e..4179adf6c624 100644
--- a/arch/m32r/kernel/vmlinux.lds.S
+++ b/arch/m32r/kernel/vmlinux.lds.S
@@ -27,7 +27,7 @@ SECTIONS
27 _text = .; /* Text and read-only data */ 27 _text = .; /* Text and read-only data */
28 .boot : { *(.boot) } = 0 28 .boot : { *(.boot) } = 0
29 .text : { 29 .text : {
30 *(.text.head) 30 HEAD_TEXT
31 TEXT_TEXT 31 TEXT_TEXT
32 SCHED_TEXT 32 SCHED_TEXT
33 LOCK_TEXT 33 LOCK_TEXT
diff --git a/arch/m68k/kernel/head.S b/arch/m68k/kernel/head.S
index f513f530de91..86edb5fbcfc3 100644
--- a/arch/m68k/kernel/head.S
+++ b/arch/m68k/kernel/head.S
@@ -577,7 +577,7 @@ func_define putn,1
577#endif 577#endif
578.endm 578.endm
579 579
580.section ".text.head","ax" 580__HEAD
581ENTRY(_stext) 581ENTRY(_stext)
582/* 582/*
583 * Version numbers of the bootinfo interface 583 * Version numbers of the bootinfo interface
diff --git a/arch/m68k/kernel/sun3-head.S b/arch/m68k/kernel/sun3-head.S
index aad01592dbbc..9e5c3e57c598 100644
--- a/arch/m68k/kernel/sun3-head.S
+++ b/arch/m68k/kernel/sun3-head.S
@@ -29,7 +29,7 @@ kernel_pmd_table: .skip 0x2000
29.globl kernel_pg_dir 29.globl kernel_pg_dir
30.equ kernel_pg_dir,kernel_pmd_table 30.equ kernel_pg_dir,kernel_pmd_table
31 31
32 .section .text.head 32 __HEAD
33ENTRY(_stext) 33ENTRY(_stext)
34ENTRY(_start) 34ENTRY(_start)
35 35
diff --git a/arch/m68k/kernel/vmlinux-std.lds b/arch/m68k/kernel/vmlinux-std.lds
index f846d4e3e5e1..01d212bb05a6 100644
--- a/arch/m68k/kernel/vmlinux-std.lds
+++ b/arch/m68k/kernel/vmlinux-std.lds
@@ -12,7 +12,7 @@ SECTIONS
12 . = 0x1000; 12 . = 0x1000;
13 _text = .; /* Text and read-only data */ 13 _text = .; /* Text and read-only data */
14 .text : { 14 .text : {
15 *(.text.head) 15 HEAD_TEXT
16 TEXT_TEXT 16 TEXT_TEXT
17 SCHED_TEXT 17 SCHED_TEXT
18 LOCK_TEXT 18 LOCK_TEXT
diff --git a/arch/m68k/kernel/vmlinux-sun3.lds b/arch/m68k/kernel/vmlinux-sun3.lds
index d9368c0709ba..c192f773db96 100644
--- a/arch/m68k/kernel/vmlinux-sun3.lds
+++ b/arch/m68k/kernel/vmlinux-sun3.lds
@@ -12,7 +12,7 @@ SECTIONS
12 . = 0xE002000; 12 . = 0xE002000;
13 _text = .; /* Text and read-only data */ 13 _text = .; /* Text and read-only data */
14 .text : { 14 .text : {
15 *(.text.head) 15 HEAD_TEXT
16 TEXT_TEXT 16 TEXT_TEXT
17 SCHED_TEXT 17 SCHED_TEXT
18 LOCK_TEXT 18 LOCK_TEXT
diff --git a/arch/mn10300/kernel/head.S b/arch/mn10300/kernel/head.S
index 8a8309fbe3c4..14f27f3bfaf4 100644
--- a/arch/mn10300/kernel/head.S
+++ b/arch/mn10300/kernel/head.S
@@ -9,6 +9,7 @@
9 * 2 of the Licence, or (at your option) any later version. 9 * 2 of the Licence, or (at your option) any later version.
10 */ 10 */
11 11
12#include <linux/init.h>
12#include <linux/threads.h> 13#include <linux/threads.h>
13#include <linux/linkage.h> 14#include <linux/linkage.h>
14#include <linux/serial_reg.h> 15#include <linux/serial_reg.h>
@@ -19,7 +20,7 @@
19#include <asm/param.h> 20#include <asm/param.h>
20#include <unit/serial.h> 21#include <unit/serial.h>
21 22
22 .section .text.head,"ax" 23 __HEAD
23 24
24############################################################################### 25###############################################################################
25# 26#
diff --git a/arch/mn10300/kernel/vmlinux.lds.S b/arch/mn10300/kernel/vmlinux.lds.S
index b8259668f7dc..24de6b90f401 100644
--- a/arch/mn10300/kernel/vmlinux.lds.S
+++ b/arch/mn10300/kernel/vmlinux.lds.S
@@ -27,10 +27,7 @@ SECTIONS
27 _stext = .; 27 _stext = .;
28 _text = .; /* Text and read-only data */ 28 _text = .; /* Text and read-only data */
29 .text : { 29 .text : {
30 *( 30 HEAD_TEXT
31 .text.head
32 .text
33 )
34 TEXT_TEXT 31 TEXT_TEXT
35 SCHED_TEXT 32 SCHED_TEXT
36 LOCK_TEXT 33 LOCK_TEXT
diff --git a/arch/powerpc/kernel/head_32.S b/arch/powerpc/kernel/head_32.S
index 54e68c11ae15..c01467f952d3 100644
--- a/arch/powerpc/kernel/head_32.S
+++ b/arch/powerpc/kernel/head_32.S
@@ -21,6 +21,7 @@
21 * 21 *
22 */ 22 */
23 23
24#include <linux/init.h>
24#include <asm/reg.h> 25#include <asm/reg.h>
25#include <asm/page.h> 26#include <asm/page.h>
26#include <asm/mmu.h> 27#include <asm/mmu.h>
@@ -50,7 +51,7 @@
50 mtspr SPRN_DBAT##n##L,RB; \ 51 mtspr SPRN_DBAT##n##L,RB; \
511: 521:
52 53
53 .section .text.head, "ax" 54 __HEAD
54 .stabs "arch/powerpc/kernel/",N_SO,0,0,0f 55 .stabs "arch/powerpc/kernel/",N_SO,0,0,0f
55 .stabs "head_32.S",N_SO,0,0,0f 56 .stabs "head_32.S",N_SO,0,0,0f
560: 570:
diff --git a/arch/powerpc/kernel/head_40x.S b/arch/powerpc/kernel/head_40x.S
index 56d8e5d90c5b..0c96911d4299 100644
--- a/arch/powerpc/kernel/head_40x.S
+++ b/arch/powerpc/kernel/head_40x.S
@@ -31,6 +31,7 @@
31 * 31 *
32 */ 32 */
33 33
34#include <linux/init.h>
34#include <asm/processor.h> 35#include <asm/processor.h>
35#include <asm/page.h> 36#include <asm/page.h>
36#include <asm/mmu.h> 37#include <asm/mmu.h>
@@ -52,7 +53,7 @@
52 * 53 *
53 * This is all going to change RSN when we add bi_recs....... -- Dan 54 * This is all going to change RSN when we add bi_recs....... -- Dan
54 */ 55 */
55 .section .text.head, "ax" 56 __HEAD
56_ENTRY(_stext); 57_ENTRY(_stext);
57_ENTRY(_start); 58_ENTRY(_start);
58 59
diff --git a/arch/powerpc/kernel/head_44x.S b/arch/powerpc/kernel/head_44x.S
index b56fecc93a16..18d8a1677c4d 100644
--- a/arch/powerpc/kernel/head_44x.S
+++ b/arch/powerpc/kernel/head_44x.S
@@ -28,6 +28,7 @@
28 * option) any later version. 28 * option) any later version.
29 */ 29 */
30 30
31#include <linux/init.h>
31#include <asm/processor.h> 32#include <asm/processor.h>
32#include <asm/page.h> 33#include <asm/page.h>
33#include <asm/mmu.h> 34#include <asm/mmu.h>
@@ -50,7 +51,7 @@
50 * r7 - End of kernel command line string 51 * r7 - End of kernel command line string
51 * 52 *
52 */ 53 */
53 .section .text.head, "ax" 54 __HEAD
54_ENTRY(_stext); 55_ENTRY(_stext);
55_ENTRY(_start); 56_ENTRY(_start);
56 /* 57 /*
diff --git a/arch/powerpc/kernel/head_8xx.S b/arch/powerpc/kernel/head_8xx.S
index 3c9452d4308b..52ff8c53b93c 100644
--- a/arch/powerpc/kernel/head_8xx.S
+++ b/arch/powerpc/kernel/head_8xx.S
@@ -19,6 +19,7 @@
19 * 19 *
20 */ 20 */
21 21
22#include <linux/init.h>
22#include <asm/processor.h> 23#include <asm/processor.h>
23#include <asm/page.h> 24#include <asm/page.h>
24#include <asm/mmu.h> 25#include <asm/mmu.h>
@@ -38,7 +39,7 @@
38#else 39#else
39#define DO_8xx_CPU6(val, reg) 40#define DO_8xx_CPU6(val, reg)
40#endif 41#endif
41 .section .text.head, "ax" 42 __HEAD
42_ENTRY(_stext); 43_ENTRY(_stext);
43_ENTRY(_start); 44_ENTRY(_start);
44 45
diff --git a/arch/powerpc/kernel/head_fsl_booke.S b/arch/powerpc/kernel/head_fsl_booke.S
index 4c22620d009b..5bdcc06d294c 100644
--- a/arch/powerpc/kernel/head_fsl_booke.S
+++ b/arch/powerpc/kernel/head_fsl_booke.S
@@ -30,6 +30,7 @@
30 * option) any later version. 30 * option) any later version.
31 */ 31 */
32 32
33#include <linux/init.h>
33#include <linux/threads.h> 34#include <linux/threads.h>
34#include <asm/processor.h> 35#include <asm/processor.h>
35#include <asm/page.h> 36#include <asm/page.h>
@@ -53,7 +54,7 @@
53 * r7 - End of kernel command line string 54 * r7 - End of kernel command line string
54 * 55 *
55 */ 56 */
56 .section .text.head, "ax" 57 __HEAD
57_ENTRY(_stext); 58_ENTRY(_stext);
58_ENTRY(_start); 59_ENTRY(_start);
59 /* 60 /*
diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S
index b9ef1644a722..d7425fffbc1c 100644
--- a/arch/powerpc/kernel/vmlinux.lds.S
+++ b/arch/powerpc/kernel/vmlinux.lds.S
@@ -52,7 +52,7 @@ SECTIONS
52 /* Text and gots */ 52 /* Text and gots */
53 .text : AT(ADDR(.text) - LOAD_OFFSET) { 53 .text : AT(ADDR(.text) - LOAD_OFFSET) {
54 ALIGN_FUNCTION(); 54 ALIGN_FUNCTION();
55 *(.text.head) 55 HEAD_TEXT
56 _text = .; 56 _text = .;
57 *(.text .fixup .text.init.refok .exit.text.refok __ftr_alt_*) 57 *(.text .fixup .text.init.refok .exit.text.refok __ftr_alt_*)
58 SCHED_TEXT 58 SCHED_TEXT
diff --git a/arch/s390/kernel/head.S b/arch/s390/kernel/head.S
index bba14494ee00..22596d70fc2e 100644
--- a/arch/s390/kernel/head.S
+++ b/arch/s390/kernel/head.S
@@ -23,6 +23,7 @@
23 * 23 *
24 */ 24 */
25 25
26#include <linux/init.h>
26#include <asm/setup.h> 27#include <asm/setup.h>
27#include <asm/lowcore.h> 28#include <asm/lowcore.h>
28#include <asm/asm-offsets.h> 29#include <asm/asm-offsets.h>
@@ -35,7 +36,7 @@
35#define ARCH_OFFSET 0 36#define ARCH_OFFSET 0
36#endif 37#endif
37 38
38.section ".text.head","ax" 39__HEAD
39#ifndef CONFIG_IPL 40#ifndef CONFIG_IPL
40 .org 0 41 .org 0
41 .long 0x00080000,0x80000000+startup # Just a restart PSW 42 .long 0x00080000,0x80000000+startup # Just a restart PSW
diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S
index 7a2063eb88f0..89399b8756c2 100644
--- a/arch/s390/kernel/vmlinux.lds.S
+++ b/arch/s390/kernel/vmlinux.lds.S
@@ -29,8 +29,8 @@ SECTIONS
29 . = 0x00000000; 29 . = 0x00000000;
30 .text : { 30 .text : {
31 _text = .; /* Text and read-only data */ 31 _text = .; /* Text and read-only data */
32 *(.text.head) 32 HEAD_TEXT
33 TEXT_TEXT 33 TEXT_TEXT
34 SCHED_TEXT 34 SCHED_TEXT
35 LOCK_TEXT 35 LOCK_TEXT
36 KPROBES_TEXT 36 KPROBES_TEXT
diff --git a/arch/sh/configs/sh7785lcr_defconfig b/arch/sh/configs/sh7785lcr_defconfig
index 8a42bbef1f50..e4fac2efc055 100644
--- a/arch/sh/configs/sh7785lcr_defconfig
+++ b/arch/sh/configs/sh7785lcr_defconfig
@@ -1,10 +1,11 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.29 3# Linux kernel version: 2.6.30-rc2
4# Thu Apr 2 19:15:58 2009 4# Wed Apr 22 19:17:56 2009
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
8# CONFIG_SUPERH64 is not set
8CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig" 9CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig"
9CONFIG_RWSEM_GENERIC_SPINLOCK=y 10CONFIG_RWSEM_GENERIC_SPINLOCK=y
10CONFIG_GENERIC_BUG=y 11CONFIG_GENERIC_BUG=y
@@ -79,6 +80,7 @@ CONFIG_SYSCTL_SYSCALL=y
79CONFIG_KALLSYMS=y 80CONFIG_KALLSYMS=y
80# CONFIG_KALLSYMS_ALL is not set 81# CONFIG_KALLSYMS_ALL is not set
81# CONFIG_KALLSYMS_EXTRA_PASS is not set 82# CONFIG_KALLSYMS_EXTRA_PASS is not set
83# CONFIG_STRIP_ASM_SYMS is not set
82CONFIG_HOTPLUG=y 84CONFIG_HOTPLUG=y
83CONFIG_PRINTK=y 85CONFIG_PRINTK=y
84CONFIG_BUG=y 86CONFIG_BUG=y
@@ -98,6 +100,7 @@ CONFIG_SLAB=y
98# CONFIG_SLUB is not set 100# CONFIG_SLUB is not set
99# CONFIG_SLOB is not set 101# CONFIG_SLOB is not set
100CONFIG_PROFILING=y 102CONFIG_PROFILING=y
103# CONFIG_MARKERS is not set
101# CONFIG_OPROFILE is not set 104# CONFIG_OPROFILE is not set
102CONFIG_HAVE_OPROFILE=y 105CONFIG_HAVE_OPROFILE=y
103# CONFIG_KPROBES is not set 106# CONFIG_KPROBES is not set
@@ -106,6 +109,8 @@ CONFIG_HAVE_KPROBES=y
106CONFIG_HAVE_KRETPROBES=y 109CONFIG_HAVE_KRETPROBES=y
107CONFIG_HAVE_ARCH_TRACEHOOK=y 110CONFIG_HAVE_ARCH_TRACEHOOK=y
108CONFIG_HAVE_CLK=y 111CONFIG_HAVE_CLK=y
112CONFIG_HAVE_DMA_API_DEBUG=y
113# CONFIG_SLOW_WORK is not set
109CONFIG_HAVE_GENERIC_DMA_COHERENT=y 114CONFIG_HAVE_GENERIC_DMA_COHERENT=y
110CONFIG_SLABINFO=y 115CONFIG_SLABINFO=y
111CONFIG_RT_MUTEXES=y 116CONFIG_RT_MUTEXES=y
@@ -118,7 +123,6 @@ CONFIG_MODULE_UNLOAD=y
118# CONFIG_MODULE_SRCVERSION_ALL is not set 123# CONFIG_MODULE_SRCVERSION_ALL is not set
119CONFIG_BLOCK=y 124CONFIG_BLOCK=y
120# CONFIG_LBD is not set 125# CONFIG_LBD is not set
121# CONFIG_BLK_DEV_IO_TRACE is not set
122# CONFIG_BLK_DEV_BSG is not set 126# CONFIG_BLK_DEV_BSG is not set
123# CONFIG_BLK_DEV_INTEGRITY is not set 127# CONFIG_BLK_DEV_INTEGRITY is not set
124 128
@@ -166,6 +170,7 @@ CONFIG_CPU_SHX2=y
166# CONFIG_CPU_SUBTYPE_SH7760 is not set 170# CONFIG_CPU_SUBTYPE_SH7760 is not set
167# CONFIG_CPU_SUBTYPE_SH4_202 is not set 171# CONFIG_CPU_SUBTYPE_SH4_202 is not set
168# CONFIG_CPU_SUBTYPE_SH7723 is not set 172# CONFIG_CPU_SUBTYPE_SH7723 is not set
173# CONFIG_CPU_SUBTYPE_SH7724 is not set
169# CONFIG_CPU_SUBTYPE_SH7763 is not set 174# CONFIG_CPU_SUBTYPE_SH7763 is not set
170# CONFIG_CPU_SUBTYPE_SH7770 is not set 175# CONFIG_CPU_SUBTYPE_SH7770 is not set
171# CONFIG_CPU_SUBTYPE_SH7780 is not set 176# CONFIG_CPU_SUBTYPE_SH7780 is not set
@@ -175,8 +180,6 @@ CONFIG_CPU_SUBTYPE_SH7785=y
175# CONFIG_CPU_SUBTYPE_SH7343 is not set 180# CONFIG_CPU_SUBTYPE_SH7343 is not set
176# CONFIG_CPU_SUBTYPE_SH7722 is not set 181# CONFIG_CPU_SUBTYPE_SH7722 is not set
177# CONFIG_CPU_SUBTYPE_SH7366 is not set 182# CONFIG_CPU_SUBTYPE_SH7366 is not set
178# CONFIG_CPU_SUBTYPE_SH5_101 is not set
179# CONFIG_CPU_SUBTYPE_SH5_103 is not set
180 183
181# 184#
182# Memory management options 185# Memory management options
@@ -186,38 +189,31 @@ CONFIG_MMU=y
186CONFIG_PAGE_OFFSET=0x80000000 189CONFIG_PAGE_OFFSET=0x80000000
187CONFIG_MEMORY_START=0x08000000 190CONFIG_MEMORY_START=0x08000000
188CONFIG_MEMORY_SIZE=0x08000000 191CONFIG_MEMORY_SIZE=0x08000000
189# CONFIG_29BIT is not set 192CONFIG_29BIT=y
190CONFIG_32BIT=y 193# CONFIG_PMB_ENABLE is not set
191CONFIG_PMB_ENABLE=y
192# CONFIG_PMB is not set
193CONFIG_PMB_FIXED=y
194# CONFIG_X2TLB is not set 194# CONFIG_X2TLB is not set
195CONFIG_VSYSCALL=y 195CONFIG_VSYSCALL=y
196# CONFIG_NUMA is not set 196# CONFIG_NUMA is not set
197CONFIG_ARCH_FLATMEM_ENABLE=y 197CONFIG_ARCH_FLATMEM_ENABLE=y
198CONFIG_ARCH_SPARSEMEM_ENABLE=y 198CONFIG_ARCH_SPARSEMEM_ENABLE=y
199CONFIG_ARCH_SPARSEMEM_DEFAULT=y 199CONFIG_ARCH_SPARSEMEM_DEFAULT=y
200CONFIG_MAX_ACTIVE_REGIONS=2 200CONFIG_MAX_ACTIVE_REGIONS=1
201CONFIG_ARCH_POPULATES_NODE_MAP=y 201CONFIG_ARCH_POPULATES_NODE_MAP=y
202CONFIG_ARCH_SELECT_MEMORY_MODEL=y 202CONFIG_ARCH_SELECT_MEMORY_MODEL=y
203CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
204CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
205CONFIG_PAGE_SIZE_4KB=y 203CONFIG_PAGE_SIZE_4KB=y
206# CONFIG_PAGE_SIZE_8KB is not set 204# CONFIG_PAGE_SIZE_8KB is not set
207# CONFIG_PAGE_SIZE_16KB is not set 205# CONFIG_PAGE_SIZE_16KB is not set
208# CONFIG_PAGE_SIZE_64KB is not set 206# CONFIG_PAGE_SIZE_64KB is not set
209CONFIG_ENTRY_OFFSET=0x00001000 207CONFIG_ENTRY_OFFSET=0x00001000
210CONFIG_SELECT_MEMORY_MODEL=y 208CONFIG_SELECT_MEMORY_MODEL=y
211# CONFIG_FLATMEM_MANUAL is not set 209CONFIG_FLATMEM_MANUAL=y
212# CONFIG_DISCONTIGMEM_MANUAL is not set 210# CONFIG_DISCONTIGMEM_MANUAL is not set
213CONFIG_SPARSEMEM_MANUAL=y 211# CONFIG_SPARSEMEM_MANUAL is not set
214CONFIG_SPARSEMEM=y 212CONFIG_FLATMEM=y
215CONFIG_HAVE_MEMORY_PRESENT=y 213CONFIG_FLAT_NODE_MEM_MAP=y
216CONFIG_SPARSEMEM_STATIC=y 214CONFIG_SPARSEMEM_STATIC=y
217# CONFIG_MEMORY_HOTPLUG is not set
218CONFIG_PAGEFLAGS_EXTENDED=y 215CONFIG_PAGEFLAGS_EXTENDED=y
219CONFIG_SPLIT_PTLOCK_CPUS=4 216CONFIG_SPLIT_PTLOCK_CPUS=4
220CONFIG_MIGRATION=y
221# CONFIG_PHYS_ADDR_T_64BIT is not set 217# CONFIG_PHYS_ADDR_T_64BIT is not set
222CONFIG_ZONE_DMA_FLAG=0 218CONFIG_ZONE_DMA_FLAG=0
223CONFIG_NR_QUICK=2 219CONFIG_NR_QUICK=2
@@ -249,6 +245,7 @@ CONFIG_CPU_HAS_FPU=y
249# 245#
250# CONFIG_SH_HIGHLANDER is not set 246# CONFIG_SH_HIGHLANDER is not set
251CONFIG_SH_SH7785LCR=y 247CONFIG_SH_SH7785LCR=y
248CONFIG_SH_SH7785LCR_29BIT_PHYSMAPS=y
252 249
253# 250#
254# Timer and clock configuration 251# Timer and clock configuration
@@ -672,6 +669,7 @@ CONFIG_NETDEV_1000=y
672# CONFIG_E1000E is not set 669# CONFIG_E1000E is not set
673# CONFIG_IP1000 is not set 670# CONFIG_IP1000 is not set
674# CONFIG_IGB is not set 671# CONFIG_IGB is not set
672# CONFIG_IGBVF is not set
675# CONFIG_NS83820 is not set 673# CONFIG_NS83820 is not set
676# CONFIG_HAMACHI is not set 674# CONFIG_HAMACHI is not set
677# CONFIG_YELLOWFIN is not set 675# CONFIG_YELLOWFIN is not set
@@ -1009,15 +1007,17 @@ CONFIG_USB_HID=y
1009# 1007#
1010# Special HID drivers 1008# Special HID drivers
1011# 1009#
1012CONFIG_HID_COMPAT=y
1013CONFIG_HID_A4TECH=y 1010CONFIG_HID_A4TECH=y
1014CONFIG_HID_APPLE=y 1011CONFIG_HID_APPLE=y
1015CONFIG_HID_BELKIN=y 1012CONFIG_HID_BELKIN=y
1016CONFIG_HID_CHERRY=y 1013CONFIG_HID_CHERRY=y
1017CONFIG_HID_CHICONY=y 1014CONFIG_HID_CHICONY=y
1018CONFIG_HID_CYPRESS=y 1015CONFIG_HID_CYPRESS=y
1016# CONFIG_DRAGONRISE_FF is not set
1019CONFIG_HID_EZKEY=y 1017CONFIG_HID_EZKEY=y
1018# CONFIG_HID_KYE is not set
1020CONFIG_HID_GYRATION=y 1019CONFIG_HID_GYRATION=y
1020# CONFIG_HID_KENSINGTON is not set
1021CONFIG_HID_LOGITECH=y 1021CONFIG_HID_LOGITECH=y
1022# CONFIG_LOGITECH_FF is not set 1022# CONFIG_LOGITECH_FF is not set
1023# CONFIG_LOGIRUMBLEPAD2_FF is not set 1023# CONFIG_LOGIRUMBLEPAD2_FF is not set
@@ -1218,6 +1218,7 @@ CONFIG_EXT2_FS=y
1218# CONFIG_EXT2_FS_XATTR is not set 1218# CONFIG_EXT2_FS_XATTR is not set
1219# CONFIG_EXT2_FS_XIP is not set 1219# CONFIG_EXT2_FS_XIP is not set
1220CONFIG_EXT3_FS=y 1220CONFIG_EXT3_FS=y
1221# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1221CONFIG_EXT3_FS_XATTR=y 1222CONFIG_EXT3_FS_XATTR=y
1222# CONFIG_EXT3_FS_POSIX_ACL is not set 1223# CONFIG_EXT3_FS_POSIX_ACL is not set
1223# CONFIG_EXT3_FS_SECURITY is not set 1224# CONFIG_EXT3_FS_SECURITY is not set
@@ -1240,6 +1241,11 @@ CONFIG_INOTIFY_USER=y
1240# CONFIG_FUSE_FS is not set 1241# CONFIG_FUSE_FS is not set
1241 1242
1242# 1243#
1244# Caches
1245#
1246# CONFIG_FSCACHE is not set
1247
1248#
1243# CD-ROM/DVD Filesystems 1249# CD-ROM/DVD Filesystems
1244# 1250#
1245# CONFIG_ISO9660_FS is not set 1251# CONFIG_ISO9660_FS is not set
@@ -1289,6 +1295,7 @@ CONFIG_MINIX_FS=y
1289# CONFIG_ROMFS_FS is not set 1295# CONFIG_ROMFS_FS is not set
1290# CONFIG_SYSV_FS is not set 1296# CONFIG_SYSV_FS is not set
1291# CONFIG_UFS_FS is not set 1297# CONFIG_UFS_FS is not set
1298# CONFIG_NILFS2_FS is not set
1292CONFIG_NETWORK_FILESYSTEMS=y 1299CONFIG_NETWORK_FILESYSTEMS=y
1293CONFIG_NFS_FS=y 1300CONFIG_NFS_FS=y
1294CONFIG_NFS_V3=y 1301CONFIG_NFS_V3=y
@@ -1377,6 +1384,9 @@ CONFIG_DEBUG_KERNEL=y
1377CONFIG_DETECT_SOFTLOCKUP=y 1384CONFIG_DETECT_SOFTLOCKUP=y
1378# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1385# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1379CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1386CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1387CONFIG_DETECT_HUNG_TASK=y
1388# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1389CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1380CONFIG_SCHED_DEBUG=y 1390CONFIG_SCHED_DEBUG=y
1381# CONFIG_SCHEDSTATS is not set 1391# CONFIG_SCHEDSTATS is not set
1382# CONFIG_TIMER_STATS is not set 1392# CONFIG_TIMER_STATS is not set
@@ -1413,6 +1423,7 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y
1413CONFIG_HAVE_FUNCTION_TRACER=y 1423CONFIG_HAVE_FUNCTION_TRACER=y
1414CONFIG_HAVE_DYNAMIC_FTRACE=y 1424CONFIG_HAVE_DYNAMIC_FTRACE=y
1415CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1425CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1426CONFIG_TRACING_SUPPORT=y
1416 1427
1417# 1428#
1418# Tracers 1429# Tracers
@@ -1422,9 +1433,14 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1422# CONFIG_PREEMPT_TRACER is not set 1433# CONFIG_PREEMPT_TRACER is not set
1423# CONFIG_SCHED_TRACER is not set 1434# CONFIG_SCHED_TRACER is not set
1424# CONFIG_CONTEXT_SWITCH_TRACER is not set 1435# CONFIG_CONTEXT_SWITCH_TRACER is not set
1436# CONFIG_EVENT_TRACER is not set
1425# CONFIG_BOOT_TRACER is not set 1437# CONFIG_BOOT_TRACER is not set
1426# CONFIG_TRACE_BRANCH_PROFILING is not set 1438# CONFIG_TRACE_BRANCH_PROFILING is not set
1427# CONFIG_STACK_TRACER is not set 1439# CONFIG_STACK_TRACER is not set
1440# CONFIG_KMEMTRACE is not set
1441# CONFIG_WORKQUEUE_TRACER is not set
1442# CONFIG_BLK_DEV_IO_TRACE is not set
1443# CONFIG_DMA_API_DEBUG is not set
1428# CONFIG_SAMPLES is not set 1444# CONFIG_SAMPLES is not set
1429CONFIG_HAVE_ARCH_KGDB=y 1445CONFIG_HAVE_ARCH_KGDB=y
1430# CONFIG_KGDB is not set 1446# CONFIG_KGDB is not set
@@ -1542,6 +1558,7 @@ CONFIG_CRYPTO_DES=y
1542# 1558#
1543# CONFIG_CRYPTO_ANSI_CPRNG is not set 1559# CONFIG_CRYPTO_ANSI_CPRNG is not set
1544# CONFIG_CRYPTO_HW is not set 1560# CONFIG_CRYPTO_HW is not set
1561# CONFIG_BINARY_PRINTF is not set
1545 1562
1546# 1563#
1547# Library routines 1564# Library routines
diff --git a/arch/sh/include/asm/ptrace.h b/arch/sh/include/asm/ptrace.h
index d3f6caa936b0..68e20ff9aa9b 100644
--- a/arch/sh/include/asm/ptrace.h
+++ b/arch/sh/include/asm/ptrace.h
@@ -9,7 +9,7 @@
9struct pt_regs { 9struct pt_regs {
10 unsigned long long pc; 10 unsigned long long pc;
11 unsigned long long sr; 11 unsigned long long sr;
12 unsigned long long syscall_nr; 12 long long syscall_nr;
13 unsigned long long regs[63]; 13 unsigned long long regs[63];
14 unsigned long long tregs[8]; 14 unsigned long long tregs[8];
15 unsigned long long pad[2]; 15 unsigned long long pad[2];
diff --git a/arch/sh/kernel/head_32.S b/arch/sh/kernel/head_32.S
index 788605ff7088..a78be74b8d3e 100644
--- a/arch/sh/kernel/head_32.S
+++ b/arch/sh/kernel/head_32.S
@@ -10,6 +10,7 @@
10 * 10 *
11 * Head.S contains the SH exception handlers and startup code. 11 * Head.S contains the SH exception handlers and startup code.
12 */ 12 */
13#include <linux/init.h>
13#include <linux/linkage.h> 14#include <linux/linkage.h>
14#include <asm/thread_info.h> 15#include <asm/thread_info.h>
15 16
@@ -40,7 +41,7 @@ ENTRY(empty_zero_page)
401: 411:
41 .skip PAGE_SIZE - empty_zero_page - 1b 42 .skip PAGE_SIZE - empty_zero_page - 1b
42 43
43 .section .text.head, "ax" 44 __HEAD
44 45
45/* 46/*
46 * Condition at the entry of _stext: 47 * Condition at the entry of _stext:
diff --git a/arch/sh/kernel/head_64.S b/arch/sh/kernel/head_64.S
index 7ccfb995a398..3ea765844c74 100644
--- a/arch/sh/kernel/head_64.S
+++ b/arch/sh/kernel/head_64.S
@@ -8,6 +8,9 @@
8 * License. See the file "COPYING" in the main directory of this archive 8 * License. See the file "COPYING" in the main directory of this archive
9 * for more details. 9 * for more details.
10 */ 10 */
11
12#include <linux/init.h>
13
11#include <asm/page.h> 14#include <asm/page.h>
12#include <asm/cache.h> 15#include <asm/cache.h>
13#include <asm/tlb.h> 16#include <asm/tlb.h>
@@ -110,7 +113,7 @@ empty_bad_pte_table:
110fpu_in_use: .quad 0 113fpu_in_use: .quad 0
111 114
112 115
113 .section .text.head, "ax" 116 __HEAD
114 .balign L1_CACHE_BYTES 117 .balign L1_CACHE_BYTES
115/* 118/*
116 * Condition at the entry of __stext: 119 * Condition at the entry of __stext:
diff --git a/arch/sh/kernel/vmlinux_32.lds.S b/arch/sh/kernel/vmlinux_32.lds.S
index d0b2a715cd14..dd9b2ee1312d 100644
--- a/arch/sh/kernel/vmlinux_32.lds.S
+++ b/arch/sh/kernel/vmlinux_32.lds.S
@@ -31,7 +31,7 @@ SECTIONS
31 } = 0 31 } = 0
32 32
33 .text : { 33 .text : {
34 *(.text.head) 34 HEAD_TEXT
35 TEXT_TEXT 35 TEXT_TEXT
36 SCHED_TEXT 36 SCHED_TEXT
37 LOCK_TEXT 37 LOCK_TEXT
diff --git a/arch/sh/kernel/vmlinux_64.lds.S b/arch/sh/kernel/vmlinux_64.lds.S
index 33fa46451406..69664460c688 100644
--- a/arch/sh/kernel/vmlinux_64.lds.S
+++ b/arch/sh/kernel/vmlinux_64.lds.S
@@ -42,7 +42,7 @@ SECTIONS
42 } = 0 42 } = 0
43 43
44 .text : C_PHYS(.text) { 44 .text : C_PHYS(.text) {
45 *(.text.head) 45 HEAD_TEXT
46 TEXT_TEXT 46 TEXT_TEXT
47 *(.text64) 47 *(.text64)
48 *(.text..SHmedia32) 48 *(.text..SHmedia32)
diff --git a/arch/sparc/kernel/head_32.S b/arch/sparc/kernel/head_32.S
index f0b4b516304f..e91f01a57598 100644
--- a/arch/sparc/kernel/head_32.S
+++ b/arch/sparc/kernel/head_32.S
@@ -72,7 +72,7 @@ sun4e_notsup:
72 .align 4 72 .align 4
73 73
74 /* The Sparc trap table, bootloader gives us control at _start. */ 74 /* The Sparc trap table, bootloader gives us control at _start. */
75 .section .text.head,"ax" 75 __HEAD
76 .globl start, _stext, _start, __stext 76 .globl start, _stext, _start, __stext
77 .globl trapbase 77 .globl trapbase
78_start: /* danger danger */ 78_start: /* danger danger */
diff --git a/arch/sparc/kernel/vmlinux.lds.S b/arch/sparc/kernel/vmlinux.lds.S
index 76267085b13b..fcbbd000ec08 100644
--- a/arch/sparc/kernel/vmlinux.lds.S
+++ b/arch/sparc/kernel/vmlinux.lds.S
@@ -41,7 +41,7 @@ SECTIONS
41 .text TEXTSTART : 41 .text TEXTSTART :
42 { 42 {
43 _text = .; 43 _text = .;
44 *(.text.head) 44 HEAD_TEXT
45 TEXT_TEXT 45 TEXT_TEXT
46 SCHED_TEXT 46 SCHED_TEXT
47 LOCK_TEXT 47 LOCK_TEXT
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index c9086e6307a5..df9e885eee14 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -277,6 +277,7 @@ config SPARSE_IRQ
277config NUMA_MIGRATE_IRQ_DESC 277config NUMA_MIGRATE_IRQ_DESC
278 bool "Move irq desc when changing irq smp_affinity" 278 bool "Move irq desc when changing irq smp_affinity"
279 depends on SPARSE_IRQ && NUMA 279 depends on SPARSE_IRQ && NUMA
280 depends on BROKEN
280 default n 281 default n
281 ---help--- 282 ---help---
282 This enables moving irq_desc to cpu/node that irq will use handled. 283 This enables moving irq_desc to cpu/node that irq will use handled.
@@ -664,6 +665,7 @@ config MAXSMP
664 665
665config NR_CPUS 666config NR_CPUS
666 int "Maximum number of CPUs" if SMP && !MAXSMP 667 int "Maximum number of CPUs" if SMP && !MAXSMP
668 range 2 8 if SMP && X86_32 && !X86_BIGSMP
667 range 2 512 if SMP && !MAXSMP 669 range 2 512 if SMP && !MAXSMP
668 default "1" if !SMP 670 default "1" if !SMP
669 default "4096" if MAXSMP 671 default "4096" if MAXSMP
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index f05d8c91d9e5..8c86b72afdc2 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -153,7 +153,7 @@ endif
153 153
154boot := arch/x86/boot 154boot := arch/x86/boot
155 155
156BOOT_TARGETS = bzlilo bzdisk fdimage fdimage144 fdimage288 isoimage install 156BOOT_TARGETS = bzlilo bzdisk fdimage fdimage144 fdimage288 isoimage
157 157
158PHONY += bzImage $(BOOT_TARGETS) 158PHONY += bzImage $(BOOT_TARGETS)
159 159
@@ -171,6 +171,10 @@ bzImage: vmlinux
171$(BOOT_TARGETS): vmlinux 171$(BOOT_TARGETS): vmlinux
172 $(Q)$(MAKE) $(build)=$(boot) $@ 172 $(Q)$(MAKE) $(build)=$(boot) $@
173 173
174PHONY += install
175install:
176 $(Q)$(MAKE) $(build)=$(boot) $@
177
174PHONY += vdso_install 178PHONY += vdso_install
175vdso_install: 179vdso_install:
176 $(Q)$(MAKE) $(build)=arch/x86/vdso $@ 180 $(Q)$(MAKE) $(build)=arch/x86/vdso $@
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index a2789e42e162..30da617d18e4 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -3670,12 +3670,14 @@ int arch_setup_hpet_msi(unsigned int irq)
3670{ 3670{
3671 int ret; 3671 int ret;
3672 struct msi_msg msg; 3672 struct msi_msg msg;
3673 struct irq_desc *desc = irq_to_desc(irq);
3673 3674
3674 ret = msi_compose_msg(NULL, irq, &msg); 3675 ret = msi_compose_msg(NULL, irq, &msg);
3675 if (ret < 0) 3676 if (ret < 0)
3676 return ret; 3677 return ret;
3677 3678
3678 hpet_msi_write(irq, &msg); 3679 hpet_msi_write(irq, &msg);
3680 desc->status |= IRQ_MOVE_PCNTXT;
3679 set_irq_chip_and_handler_name(irq, &hpet_msi_type, handle_edge_irq, 3681 set_irq_chip_and_handler_name(irq, &hpet_msi_type, handle_edge_irq,
3680 "edge"); 3682 "edge");
3681 3683
diff --git a/arch/x86/kernel/apic/nmi.c b/arch/x86/kernel/apic/nmi.c
index d6bd62407152..ce4fbfa315a1 100644
--- a/arch/x86/kernel/apic/nmi.c
+++ b/arch/x86/kernel/apic/nmi.c
@@ -138,7 +138,7 @@ int __init check_nmi_watchdog(void)
138 if (!prev_nmi_count) 138 if (!prev_nmi_count)
139 goto error; 139 goto error;
140 140
141 alloc_cpumask_var(&backtrace_mask, GFP_KERNEL); 141 alloc_cpumask_var(&backtrace_mask, GFP_KERNEL|__GFP_ZERO);
142 printk(KERN_INFO "Testing NMI watchdog ... "); 142 printk(KERN_INFO "Testing NMI watchdog ... ");
143 143
144#ifdef CONFIG_SMP 144#ifdef CONFIG_SMP
@@ -414,7 +414,8 @@ nmi_watchdog_tick(struct pt_regs *regs, unsigned reason)
414 touched = 1; 414 touched = 1;
415 } 415 }
416 416
417 if (cpumask_test_cpu(cpu, backtrace_mask)) { 417 /* We can be called before check_nmi_watchdog, hence NULL check. */
418 if (backtrace_mask != NULL && cpumask_test_cpu(cpu, backtrace_mask)) {
418 static DEFINE_SPINLOCK(lock); /* Serialise the printks */ 419 static DEFINE_SPINLOCK(lock); /* Serialise the printks */
419 420
420 spin_lock(&lock); 421 spin_lock(&lock);
diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c
index de1a50af807b..2bda69352976 100644
--- a/arch/x86/kernel/apic/x2apic_uv_x.c
+++ b/arch/x86/kernel/apic/x2apic_uv_x.c
@@ -19,6 +19,7 @@
19#include <linux/timer.h> 19#include <linux/timer.h>
20#include <linux/cpu.h> 20#include <linux/cpu.h>
21#include <linux/init.h> 21#include <linux/init.h>
22#include <linux/io.h>
22 23
23#include <asm/uv/uv_mmrs.h> 24#include <asm/uv/uv_mmrs.h>
24#include <asm/uv/uv_hub.h> 25#include <asm/uv/uv_hub.h>
@@ -34,6 +35,17 @@ DEFINE_PER_CPU(int, x2apic_extra_bits);
34 35
35static enum uv_system_type uv_system_type; 36static enum uv_system_type uv_system_type;
36 37
38static int early_get_nodeid(void)
39{
40 union uvh_node_id_u node_id;
41 unsigned long *mmr;
42
43 mmr = early_ioremap(UV_LOCAL_MMR_BASE | UVH_NODE_ID, sizeof(*mmr));
44 node_id.v = *mmr;
45 early_iounmap(mmr, sizeof(*mmr));
46 return node_id.s.node_id;
47}
48
37static int uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id) 49static int uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
38{ 50{
39 if (!strcmp(oem_id, "SGI")) { 51 if (!strcmp(oem_id, "SGI")) {
@@ -42,6 +54,8 @@ static int uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
42 else if (!strcmp(oem_table_id, "UVX")) 54 else if (!strcmp(oem_table_id, "UVX"))
43 uv_system_type = UV_X2APIC; 55 uv_system_type = UV_X2APIC;
44 else if (!strcmp(oem_table_id, "UVH")) { 56 else if (!strcmp(oem_table_id, "UVH")) {
57 __get_cpu_var(x2apic_extra_bits) =
58 early_get_nodeid() << (UV_APIC_PNODE_SHIFT - 1);
45 uv_system_type = UV_NON_UNIQUE_APIC; 59 uv_system_type = UV_NON_UNIQUE_APIC;
46 return 1; 60 return 1;
47 } 61 }
@@ -638,6 +652,7 @@ void __init uv_system_init(void)
638 if (uv_node_to_blade[nid] >= 0) 652 if (uv_node_to_blade[nid] >= 0)
639 continue; 653 continue;
640 paddr = node_start_pfn(nid) << PAGE_SHIFT; 654 paddr = node_start_pfn(nid) << PAGE_SHIFT;
655 paddr = uv_soc_phys_ram_to_gpa(paddr);
641 pnode = (paddr >> m_val) & pnode_mask; 656 pnode = (paddr >> m_val) & pnode_mask;
642 blade = boot_pnode_to_blade(pnode); 657 blade = boot_pnode_to_blade(pnode);
643 uv_node_to_blade[nid] = blade; 658 uv_node_to_blade[nid] = blade;
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
index a331ec38af9e..38946c6e8433 100644
--- a/arch/x86/kernel/entry_64.S
+++ b/arch/x86/kernel/entry_64.S
@@ -1410,7 +1410,10 @@ ENTRY(paranoid_exit)
1410paranoid_swapgs: 1410paranoid_swapgs:
1411 TRACE_IRQS_IRETQ 0 1411 TRACE_IRQS_IRETQ 0
1412 SWAPGS_UNSAFE_STACK 1412 SWAPGS_UNSAFE_STACK
1413 RESTORE_ALL 8
1414 jmp irq_return
1413paranoid_restore: 1415paranoid_restore:
1416 TRACE_IRQS_IRETQ 0
1414 RESTORE_ALL 8 1417 RESTORE_ALL 8
1415 jmp irq_return 1418 jmp irq_return
1416paranoid_userspace: 1419paranoid_userspace:
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
index 3f0019e0a229..81408b93f887 100644
--- a/arch/x86/kernel/hpet.c
+++ b/arch/x86/kernel/hpet.c
@@ -236,6 +236,10 @@ static void hpet_stop_counter(void)
236 unsigned long cfg = hpet_readl(HPET_CFG); 236 unsigned long cfg = hpet_readl(HPET_CFG);
237 cfg &= ~HPET_CFG_ENABLE; 237 cfg &= ~HPET_CFG_ENABLE;
238 hpet_writel(cfg, HPET_CFG); 238 hpet_writel(cfg, HPET_CFG);
239}
240
241static void hpet_reset_counter(void)
242{
239 hpet_writel(0, HPET_COUNTER); 243 hpet_writel(0, HPET_COUNTER);
240 hpet_writel(0, HPET_COUNTER + 4); 244 hpet_writel(0, HPET_COUNTER + 4);
241} 245}
@@ -250,6 +254,7 @@ static void hpet_start_counter(void)
250static void hpet_restart_counter(void) 254static void hpet_restart_counter(void)
251{ 255{
252 hpet_stop_counter(); 256 hpet_stop_counter();
257 hpet_reset_counter();
253 hpet_start_counter(); 258 hpet_start_counter();
254} 259}
255 260
@@ -309,7 +314,7 @@ static int hpet_setup_msi_irq(unsigned int irq);
309static void hpet_set_mode(enum clock_event_mode mode, 314static void hpet_set_mode(enum clock_event_mode mode,
310 struct clock_event_device *evt, int timer) 315 struct clock_event_device *evt, int timer)
311{ 316{
312 unsigned long cfg; 317 unsigned long cfg, cmp, now;
313 uint64_t delta; 318 uint64_t delta;
314 319
315 switch (mode) { 320 switch (mode) {
@@ -317,12 +322,23 @@ static void hpet_set_mode(enum clock_event_mode mode,
317 hpet_stop_counter(); 322 hpet_stop_counter();
318 delta = ((uint64_t)(NSEC_PER_SEC/HZ)) * evt->mult; 323 delta = ((uint64_t)(NSEC_PER_SEC/HZ)) * evt->mult;
319 delta >>= evt->shift; 324 delta >>= evt->shift;
325 now = hpet_readl(HPET_COUNTER);
326 cmp = now + (unsigned long) delta;
320 cfg = hpet_readl(HPET_Tn_CFG(timer)); 327 cfg = hpet_readl(HPET_Tn_CFG(timer));
321 /* Make sure we use edge triggered interrupts */ 328 /* Make sure we use edge triggered interrupts */
322 cfg &= ~HPET_TN_LEVEL; 329 cfg &= ~HPET_TN_LEVEL;
323 cfg |= HPET_TN_ENABLE | HPET_TN_PERIODIC | 330 cfg |= HPET_TN_ENABLE | HPET_TN_PERIODIC |
324 HPET_TN_SETVAL | HPET_TN_32BIT; 331 HPET_TN_SETVAL | HPET_TN_32BIT;
325 hpet_writel(cfg, HPET_Tn_CFG(timer)); 332 hpet_writel(cfg, HPET_Tn_CFG(timer));
333 hpet_writel(cmp, HPET_Tn_CMP(timer));
334 udelay(1);
335 /*
336 * HPET on AMD 81xx needs a second write (with HPET_TN_SETVAL
337 * cleared) to T0_CMP to set the period. The HPET_TN_SETVAL
338 * bit is automatically cleared after the first write.
339 * (See AMD-8111 HyperTransport I/O Hub Data Sheet,
340 * Publication # 24674)
341 */
326 hpet_writel((unsigned long) delta, HPET_Tn_CMP(timer)); 342 hpet_writel((unsigned long) delta, HPET_Tn_CMP(timer));
327 hpet_start_counter(); 343 hpet_start_counter();
328 hpet_print_config(); 344 hpet_print_config();
diff --git a/arch/x86/kernel/quirks.c b/arch/x86/kernel/quirks.c
index e95022e4f5d5..7563b31b4f03 100644
--- a/arch/x86/kernel/quirks.c
+++ b/arch/x86/kernel/quirks.c
@@ -261,8 +261,6 @@ static void old_ich_force_enable_hpet_user(struct pci_dev *dev)
261{ 261{
262 if (hpet_force_user) 262 if (hpet_force_user)
263 old_ich_force_enable_hpet(dev); 263 old_ich_force_enable_hpet(dev);
264 else
265 hpet_print_force_info();
266} 264}
267 265
268DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB_1, 266DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB_1,
diff --git a/arch/x86/kernel/uv_time.c b/arch/x86/kernel/uv_time.c
index 2ffb6c53326e..583f11d5c480 100644
--- a/arch/x86/kernel/uv_time.c
+++ b/arch/x86/kernel/uv_time.c
@@ -29,7 +29,7 @@
29 29
30#define RTC_NAME "sgi_rtc" 30#define RTC_NAME "sgi_rtc"
31 31
32static cycle_t uv_read_rtc(void); 32static cycle_t uv_read_rtc(struct clocksource *cs);
33static int uv_rtc_next_event(unsigned long, struct clock_event_device *); 33static int uv_rtc_next_event(unsigned long, struct clock_event_device *);
34static void uv_rtc_timer_setup(enum clock_event_mode, 34static void uv_rtc_timer_setup(enum clock_event_mode,
35 struct clock_event_device *); 35 struct clock_event_device *);
@@ -123,7 +123,7 @@ static int uv_setup_intr(int cpu, u64 expires)
123 /* Initialize comparator value */ 123 /* Initialize comparator value */
124 uv_write_global_mmr64(pnode, UVH_INT_CMPB, expires); 124 uv_write_global_mmr64(pnode, UVH_INT_CMPB, expires);
125 125
126 return (expires < uv_read_rtc() && !uv_intr_pending(pnode)); 126 return (expires < uv_read_rtc(NULL) && !uv_intr_pending(pnode));
127} 127}
128 128
129/* 129/*
@@ -256,7 +256,7 @@ static int uv_rtc_unset_timer(int cpu)
256 256
257 spin_lock_irqsave(&head->lock, flags); 257 spin_lock_irqsave(&head->lock, flags);
258 258
259 if (head->next_cpu == bcpu && uv_read_rtc() >= *t) 259 if (head->next_cpu == bcpu && uv_read_rtc(NULL) >= *t)
260 rc = 1; 260 rc = 1;
261 261
262 *t = ULLONG_MAX; 262 *t = ULLONG_MAX;
@@ -278,7 +278,7 @@ static int uv_rtc_unset_timer(int cpu)
278/* 278/*
279 * Read the RTC. 279 * Read the RTC.
280 */ 280 */
281static cycle_t uv_read_rtc(void) 281static cycle_t uv_read_rtc(struct clocksource *cs)
282{ 282{
283 return (cycle_t)uv_read_local_mmr(UVH_RTC); 283 return (cycle_t)uv_read_local_mmr(UVH_RTC);
284} 284}
@@ -291,7 +291,7 @@ static int uv_rtc_next_event(unsigned long delta,
291{ 291{
292 int ced_cpu = cpumask_first(ced->cpumask); 292 int ced_cpu = cpumask_first(ced->cpumask);
293 293
294 return uv_rtc_set_timer(ced_cpu, delta + uv_read_rtc()); 294 return uv_rtc_set_timer(ced_cpu, delta + uv_read_rtc(NULL));
295} 295}
296 296
297/* 297/*
diff --git a/arch/x86/kernel/xsave.c b/arch/x86/kernel/xsave.c
index 0a5b04aa98f1..c5ee17e8c6d9 100644
--- a/arch/x86/kernel/xsave.c
+++ b/arch/x86/kernel/xsave.c
@@ -89,7 +89,7 @@ int save_i387_xstate(void __user *buf)
89 89
90 if (!used_math()) 90 if (!used_math())
91 return 0; 91 return 0;
92 clear_used_math(); /* trigger finit */ 92
93 if (task_thread_info(tsk)->status & TS_USEDFPU) { 93 if (task_thread_info(tsk)->status & TS_USEDFPU) {
94 /* 94 /*
95 * Start with clearing the user buffer. This will present a 95 * Start with clearing the user buffer. This will present a
@@ -114,6 +114,8 @@ int save_i387_xstate(void __user *buf)
114 return -1; 114 return -1;
115 } 115 }
116 116
117 clear_used_math(); /* trigger finit */
118
117 if (task_thread_info(tsk)->status & TS_XSAVE) { 119 if (task_thread_info(tsk)->status & TS_XSAVE) {
118 struct _fpstate __user *fx = buf; 120 struct _fpstate __user *fx = buf;
119 struct _xstate __user *x = buf; 121 struct _xstate __user *x = buf;
diff --git a/arch/x86/mm/numa_32.c b/arch/x86/mm/numa_32.c
index 3daefa04ace5..d2530062fe00 100644
--- a/arch/x86/mm/numa_32.c
+++ b/arch/x86/mm/numa_32.c
@@ -257,7 +257,7 @@ void resume_map_numa_kva(pgd_t *pgd_base)
257} 257}
258#endif 258#endif
259 259
260static unsigned long calculate_numa_remap_pages(void) 260static __init unsigned long calculate_numa_remap_pages(void)
261{ 261{
262 int nid; 262 int nid;
263 unsigned long size, reserve_pages = 0; 263 unsigned long size, reserve_pages = 0;
diff --git a/arch/x86/mm/numa_64.c b/arch/x86/mm/numa_64.c
index d73aaa892371..2d05a12029dc 100644
--- a/arch/x86/mm/numa_64.c
+++ b/arch/x86/mm/numa_64.c
@@ -188,6 +188,9 @@ void __init setup_node_bootmem(int nodeid, unsigned long start,
188 const int pgdat_size = roundup(sizeof(pg_data_t), PAGE_SIZE); 188 const int pgdat_size = roundup(sizeof(pg_data_t), PAGE_SIZE);
189 int nid; 189 int nid;
190 190
191 if (!end)
192 return;
193
191 start = roundup(start, ZONE_ALIGN); 194 start = roundup(start, ZONE_ALIGN);
192 195
193 printk(KERN_INFO "Bootmem setup node %d %016lx-%016lx\n", nodeid, 196 printk(KERN_INFO "Bootmem setup node %d %016lx-%016lx\n", nodeid,
diff --git a/arch/x86/mm/srat_64.c b/arch/x86/mm/srat_64.c
index c7d272b8574c..33c5fa57e43d 100644
--- a/arch/x86/mm/srat_64.c
+++ b/arch/x86/mm/srat_64.c
@@ -28,6 +28,7 @@ int acpi_numa __initdata;
28static struct acpi_table_slit *acpi_slit; 28static struct acpi_table_slit *acpi_slit;
29 29
30static nodemask_t nodes_parsed __initdata; 30static nodemask_t nodes_parsed __initdata;
31static nodemask_t cpu_nodes_parsed __initdata;
31static struct bootnode nodes[MAX_NUMNODES] __initdata; 32static struct bootnode nodes[MAX_NUMNODES] __initdata;
32static struct bootnode nodes_add[MAX_NUMNODES]; 33static struct bootnode nodes_add[MAX_NUMNODES];
33static int found_add_area __initdata; 34static int found_add_area __initdata;
@@ -141,6 +142,7 @@ acpi_numa_x2apic_affinity_init(struct acpi_srat_x2apic_cpu_affinity *pa)
141 142
142 apic_id = pa->apic_id; 143 apic_id = pa->apic_id;
143 apicid_to_node[apic_id] = node; 144 apicid_to_node[apic_id] = node;
145 node_set(node, cpu_nodes_parsed);
144 acpi_numa = 1; 146 acpi_numa = 1;
145 printk(KERN_INFO "SRAT: PXM %u -> APIC %u -> Node %u\n", 147 printk(KERN_INFO "SRAT: PXM %u -> APIC %u -> Node %u\n",
146 pxm, apic_id, node); 148 pxm, apic_id, node);
@@ -174,6 +176,7 @@ acpi_numa_processor_affinity_init(struct acpi_srat_cpu_affinity *pa)
174 else 176 else
175 apic_id = pa->apic_id; 177 apic_id = pa->apic_id;
176 apicid_to_node[apic_id] = node; 178 apicid_to_node[apic_id] = node;
179 node_set(node, cpu_nodes_parsed);
177 acpi_numa = 1; 180 acpi_numa = 1;
178 printk(KERN_INFO "SRAT: PXM %u -> APIC %u -> Node %u\n", 181 printk(KERN_INFO "SRAT: PXM %u -> APIC %u -> Node %u\n",
179 pxm, apic_id, node); 182 pxm, apic_id, node);
@@ -402,7 +405,8 @@ int __init acpi_scan_nodes(unsigned long start, unsigned long end)
402 return -1; 405 return -1;
403 } 406 }
404 407
405 node_possible_map = nodes_parsed; 408 /* Account for nodes with cpus and no memory */
409 nodes_or(node_possible_map, nodes_parsed, cpu_nodes_parsed);
406 410
407 /* Finally register nodes */ 411 /* Finally register nodes */
408 for_each_node_mask(i, node_possible_map) 412 for_each_node_mask(i, node_possible_map)
diff --git a/arch/xtensa/kernel/head.S b/arch/xtensa/kernel/head.S
index 0817f9db836e..d9ddc1ba761c 100644
--- a/arch/xtensa/kernel/head.S
+++ b/arch/xtensa/kernel/head.S
@@ -19,6 +19,7 @@
19#include <asm/page.h> 19#include <asm/page.h>
20#include <asm/cacheasm.h> 20#include <asm/cacheasm.h>
21 21
22#include <linux/init.h>
22#include <linux/linkage.h> 23#include <linux/linkage.h>
23 24
24/* 25/*
@@ -45,7 +46,7 @@
45 * instruction. 46 * instruction.
46 */ 47 */
47 48
48 .section .head.text, "ax" 49 __HEAD
49 .globl _start 50 .globl _start
50_start: _j 2f 51_start: _j 2f
51 .align 4 52 .align 4
diff --git a/arch/xtensa/kernel/vmlinux.lds.S b/arch/xtensa/kernel/vmlinux.lds.S
index c1be9a4a740c..5accf51053da 100644
--- a/arch/xtensa/kernel/vmlinux.lds.S
+++ b/arch/xtensa/kernel/vmlinux.lds.S
@@ -85,8 +85,8 @@ SECTIONS
85 85
86 .text : 86 .text :
87 { 87 {
88 /* The .head.text section must be the first section! */ 88 /* The HEAD_TEXT section must be the first section! */
89 *(.head.text) 89 HEAD_TEXT
90 *(.literal .text) 90 *(.literal .text)
91 VMLINUX_SYMBOL(__sched_text_start) = .; 91 VMLINUX_SYMBOL(__sched_text_start) = .;
92 *(.sched.literal .sched.text) 92 *(.sched.literal .sched.text)
diff --git a/drivers/input/mouse/maplemouse.c b/drivers/input/mouse/maplemouse.c
index d196abfb68bc..5f278176eb9b 100644
--- a/drivers/input/mouse/maplemouse.c
+++ b/drivers/input/mouse/maplemouse.c
@@ -2,8 +2,8 @@
2 * SEGA Dreamcast mouse driver 2 * SEGA Dreamcast mouse driver
3 * Based on drivers/usb/usbmouse.c 3 * Based on drivers/usb/usbmouse.c
4 * 4 *
5 * Copyright Yaegashi Takeshi, 2001 5 * Copyright (c) Yaegashi Takeshi, 2001
6 * Adrian McMenamin, 2008 6 * Copyright (c) Adrian McMenamin, 2008 - 2009
7 */ 7 */
8 8
9#include <linux/kernel.h> 9#include <linux/kernel.h>
@@ -29,7 +29,7 @@ static void dc_mouse_callback(struct mapleq *mq)
29 struct maple_device *mapledev = mq->dev; 29 struct maple_device *mapledev = mq->dev;
30 struct dc_mouse *mse = maple_get_drvdata(mapledev); 30 struct dc_mouse *mse = maple_get_drvdata(mapledev);
31 struct input_dev *dev = mse->dev; 31 struct input_dev *dev = mse->dev;
32 unsigned char *res = mq->recvbuf; 32 unsigned char *res = mq->recvbuf->buf;
33 33
34 buttons = ~res[8]; 34 buttons = ~res[8];
35 relx = *(unsigned short *)(res + 12) - 512; 35 relx = *(unsigned short *)(res + 12) - 512;
@@ -47,7 +47,7 @@ static void dc_mouse_callback(struct mapleq *mq)
47 47
48static int dc_mouse_open(struct input_dev *dev) 48static int dc_mouse_open(struct input_dev *dev)
49{ 49{
50 struct dc_mouse *mse = dev->dev.platform_data; 50 struct dc_mouse *mse = maple_get_drvdata(to_maple_dev(&dev->dev));
51 51
52 maple_getcond_callback(mse->mdev, dc_mouse_callback, HZ/50, 52 maple_getcond_callback(mse->mdev, dc_mouse_callback, HZ/50,
53 MAPLE_FUNC_MOUSE); 53 MAPLE_FUNC_MOUSE);
@@ -57,29 +57,33 @@ static int dc_mouse_open(struct input_dev *dev)
57 57
58static void dc_mouse_close(struct input_dev *dev) 58static void dc_mouse_close(struct input_dev *dev)
59{ 59{
60 struct dc_mouse *mse = dev->dev.platform_data; 60 struct dc_mouse *mse = maple_get_drvdata(to_maple_dev(&dev->dev));
61 61
62 maple_getcond_callback(mse->mdev, dc_mouse_callback, 0, 62 maple_getcond_callback(mse->mdev, dc_mouse_callback, 0,
63 MAPLE_FUNC_MOUSE); 63 MAPLE_FUNC_MOUSE);
64} 64}
65 65
66 66/* allow the mouse to be used */
67static int __devinit probe_maple_mouse(struct device *dev) 67static int __devinit probe_maple_mouse(struct device *dev)
68{ 68{
69 struct maple_device *mdev = to_maple_dev(dev); 69 struct maple_device *mdev = to_maple_dev(dev);
70 struct maple_driver *mdrv = to_maple_driver(dev->driver); 70 struct maple_driver *mdrv = to_maple_driver(dev->driver);
71 int error;
71 struct input_dev *input_dev; 72 struct input_dev *input_dev;
72 struct dc_mouse *mse; 73 struct dc_mouse *mse;
73 int error;
74 74
75 mse = kzalloc(sizeof(struct dc_mouse), GFP_KERNEL); 75 mse = kzalloc(sizeof(struct dc_mouse), GFP_KERNEL);
76 input_dev = input_allocate_device(); 76 if (!mse) {
77
78 if (!mse || !input_dev) {
79 error = -ENOMEM; 77 error = -ENOMEM;
80 goto fail; 78 goto fail;
81 } 79 }
82 80
81 input_dev = input_allocate_device();
82 if (!input_dev) {
83 error = -ENOMEM;
84 goto fail_nomem;
85 }
86
83 mse->dev = input_dev; 87 mse->dev = input_dev;
84 mse->mdev = mdev; 88 mse->mdev = mdev;
85 89
@@ -89,25 +93,24 @@ static int __devinit probe_maple_mouse(struct device *dev)
89 BIT_MASK(BTN_RIGHT) | BIT_MASK(BTN_MIDDLE); 93 BIT_MASK(BTN_RIGHT) | BIT_MASK(BTN_MIDDLE);
90 input_dev->relbit[0] = BIT_MASK(REL_X) | BIT_MASK(REL_Y) | 94 input_dev->relbit[0] = BIT_MASK(REL_X) | BIT_MASK(REL_Y) |
91 BIT_MASK(REL_WHEEL); 95 BIT_MASK(REL_WHEEL);
92 input_dev->name = mdev->product_name;
93 input_dev->id.bustype = BUS_HOST;
94 input_dev->open = dc_mouse_open; 96 input_dev->open = dc_mouse_open;
95 input_dev->close = dc_mouse_close; 97 input_dev->close = dc_mouse_close;
98 input_dev->name = mdev->product_name;
99 input_dev->id.bustype = BUS_HOST;
100 error = input_register_device(input_dev);
101 if (error)
102 goto fail_register;
96 103
97 mdev->driver = mdrv; 104 mdev->driver = mdrv;
98 maple_set_drvdata(mdev, mse); 105 maple_set_drvdata(mdev, mse);
99 106
100 error = input_register_device(input_dev); 107 return error;
101 if (error)
102 goto fail;
103
104 return 0;
105 108
106fail: 109fail_register:
107 input_free_device(input_dev); 110 input_free_device(input_dev);
108 maple_set_drvdata(mdev, NULL); 111fail_nomem:
109 kfree(mse); 112 kfree(mse);
110 mdev->driver = NULL; 113fail:
111 return error; 114 return error;
112} 115}
113 116
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index 7fa660fd449c..eaa06ef6f7d9 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -1,3 +1,5 @@
1#include <linux/section-names.h>
2
1#ifndef LOAD_OFFSET 3#ifndef LOAD_OFFSET
2#define LOAD_OFFSET 0 4#define LOAD_OFFSET 0
3#endif 5#endif
@@ -331,7 +333,7 @@
331#endif 333#endif
332 334
333/* Section used for early init (in .S files) */ 335/* Section used for early init (in .S files) */
334#define HEAD_TEXT *(.head.text) 336#define HEAD_TEXT *(HEAD_TEXT_SECTION)
335 337
336/* init and exit section handling */ 338/* init and exit section handling */
337#define INIT_DATA \ 339#define INIT_DATA \
diff --git a/include/linux/init.h b/include/linux/init.h
index f121a7a10c3d..20a1334e34e9 100644
--- a/include/linux/init.h
+++ b/include/linux/init.h
@@ -2,6 +2,8 @@
2#define _LINUX_INIT_H 2#define _LINUX_INIT_H
3 3
4#include <linux/compiler.h> 4#include <linux/compiler.h>
5#include <linux/section-names.h>
6#include <linux/stringify.h>
5 7
6/* These macros are used to mark some functions or 8/* These macros are used to mark some functions or
7 * initialized data (doesn't apply to uninitialized data) 9 * initialized data (doesn't apply to uninitialized data)
@@ -107,7 +109,7 @@
107#define __memexitconst __section(.memexit.rodata) 109#define __memexitconst __section(.memexit.rodata)
108 110
109/* For assembly routines */ 111/* For assembly routines */
110#define __HEAD .section ".head.text","ax" 112#define __HEAD .section __stringify(HEAD_TEXT_SECTION),"ax"
111#define __INIT .section ".init.text","ax" 113#define __INIT .section ".init.text","ax"
112#define __FINIT .previous 114#define __FINIT .previous
113 115
diff --git a/include/linux/section-names.h b/include/linux/section-names.h
new file mode 100644
index 000000000000..c956f4eb2adf
--- /dev/null
+++ b/include/linux/section-names.h
@@ -0,0 +1,6 @@
1#ifndef __LINUX_SECTION_NAMES_H
2#define __LINUX_SECTION_NAMES_H
3
4#define HEAD_TEXT_SECTION .head.text
5
6#endif /* !__LINUX_SECTION_NAMES_H */
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 7e2e7dd4cd2f..2734eca59243 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -109,10 +109,9 @@ int irq_set_affinity(unsigned int irq, const struct cpumask *cpumask)
109 spin_lock_irqsave(&desc->lock, flags); 109 spin_lock_irqsave(&desc->lock, flags);
110 110
111#ifdef CONFIG_GENERIC_PENDING_IRQ 111#ifdef CONFIG_GENERIC_PENDING_IRQ
112 if (desc->status & IRQ_MOVE_PCNTXT || desc->status & IRQ_DISABLED) { 112 if (desc->status & IRQ_MOVE_PCNTXT)
113 cpumask_copy(desc->affinity, cpumask);
114 desc->chip->set_affinity(irq, cpumask); 113 desc->chip->set_affinity(irq, cpumask);
115 } else { 114 else {
116 desc->status |= IRQ_MOVE_PENDING; 115 desc->status |= IRQ_MOVE_PENDING;
117 cpumask_copy(desc->pending_mask, cpumask); 116 cpumask_copy(desc->pending_mask, cpumask);
118 } 117 }
diff --git a/kernel/lockdep.c b/kernel/lockdep.c
index b0f011866969..accb40cdb12a 100644
--- a/kernel/lockdep.c
+++ b/kernel/lockdep.c
@@ -2490,13 +2490,20 @@ static int mark_lock(struct task_struct *curr, struct held_lock *this,
2490void lockdep_init_map(struct lockdep_map *lock, const char *name, 2490void lockdep_init_map(struct lockdep_map *lock, const char *name,
2491 struct lock_class_key *key, int subclass) 2491 struct lock_class_key *key, int subclass)
2492{ 2492{
2493 if (unlikely(!debug_locks)) 2493 lock->class_cache = NULL;
2494#ifdef CONFIG_LOCK_STAT
2495 lock->cpu = raw_smp_processor_id();
2496#endif
2497
2498 if (DEBUG_LOCKS_WARN_ON(!name)) {
2499 lock->name = "NULL";
2494 return; 2500 return;
2501 }
2502
2503 lock->name = name;
2495 2504
2496 if (DEBUG_LOCKS_WARN_ON(!key)) 2505 if (DEBUG_LOCKS_WARN_ON(!key))
2497 return; 2506 return;
2498 if (DEBUG_LOCKS_WARN_ON(!name))
2499 return;
2500 /* 2507 /*
2501 * Sanity check, the lock-class key must be persistent: 2508 * Sanity check, the lock-class key must be persistent:
2502 */ 2509 */
@@ -2505,12 +2512,11 @@ void lockdep_init_map(struct lockdep_map *lock, const char *name,
2505 DEBUG_LOCKS_WARN_ON(1); 2512 DEBUG_LOCKS_WARN_ON(1);
2506 return; 2513 return;
2507 } 2514 }
2508 lock->name = name;
2509 lock->key = key; 2515 lock->key = key;
2510 lock->class_cache = NULL; 2516
2511#ifdef CONFIG_LOCK_STAT 2517 if (unlikely(!debug_locks))
2512 lock->cpu = raw_smp_processor_id(); 2518 return;
2513#endif 2519
2514 if (subclass) 2520 if (subclass)
2515 register_lock_class(lock, subclass, 1); 2521 register_lock_class(lock, subclass, 1);
2516} 2522}
diff --git a/kernel/panic.c b/kernel/panic.c
index 934fb377f4b3..3dcaa1661357 100644
--- a/kernel/panic.c
+++ b/kernel/panic.c
@@ -221,7 +221,7 @@ void add_taint(unsigned flag)
221 * post-warning case. 221 * post-warning case.
222 */ 222 */
223 if (flag != TAINT_CRAP && flag != TAINT_WARN && __debug_locks_off()) 223 if (flag != TAINT_CRAP && flag != TAINT_WARN && __debug_locks_off())
224 printk(KERN_WARNING "Disabling lockdep due to kernel taint\n"); 224 printk(KERN_WARNING "Disabling lock debugging due to kernel taint\n");
225 225
226 set_bit(flag, &tainted_mask); 226 set_bit(flag, &tainted_mask);
227} 227}
diff --git a/kernel/ptrace.c b/kernel/ptrace.c
index dfcd83ceee3b..0692ab5a0d67 100644
--- a/kernel/ptrace.c
+++ b/kernel/ptrace.c
@@ -188,7 +188,7 @@ int ptrace_attach(struct task_struct *task)
188 /* Protect exec's credential calculations against our interference; 188 /* Protect exec's credential calculations against our interference;
189 * SUID, SGID and LSM creds get determined differently under ptrace. 189 * SUID, SGID and LSM creds get determined differently under ptrace.
190 */ 190 */
191 retval = mutex_lock_interruptible(&current->cred_exec_mutex); 191 retval = mutex_lock_interruptible(&task->cred_exec_mutex);
192 if (retval < 0) 192 if (retval < 0)
193 goto out; 193 goto out;
194 194
@@ -232,7 +232,7 @@ repeat:
232bad: 232bad:
233 write_unlock_irqrestore(&tasklist_lock, flags); 233 write_unlock_irqrestore(&tasklist_lock, flags);
234 task_unlock(task); 234 task_unlock(task);
235 mutex_unlock(&current->cred_exec_mutex); 235 mutex_unlock(&task->cred_exec_mutex);
236out: 236out:
237 return retval; 237 return retval;
238} 238}