diff options
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 |
16 | swapper_pg_dir=SWAPPER_PGD | 17 | swapper_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); | |||
30 | do { \ | 30 | do { \ |
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 | ||
1529 | syscall_table_size = (. - sys_call_table) | 1531 | syscall_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 |
581 | ENTRY(_stext) | 581 | ENTRY(_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 |
33 | ENTRY(_stext) | 33 | ENTRY(_stext) |
34 | ENTRY(_start) | 34 | ENTRY(_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; \ |
51 | 1: | 52 | 1: |
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 |
56 | 0: | 57 | 0: |
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 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
8 | # CONFIG_SUPERH64 is not set | ||
8 | CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig" | 9 | CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig" |
9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 10 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
10 | CONFIG_GENERIC_BUG=y | 11 | CONFIG_GENERIC_BUG=y |
@@ -79,6 +80,7 @@ CONFIG_SYSCTL_SYSCALL=y | |||
79 | CONFIG_KALLSYMS=y | 80 | CONFIG_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 | ||
82 | CONFIG_HOTPLUG=y | 84 | CONFIG_HOTPLUG=y |
83 | CONFIG_PRINTK=y | 85 | CONFIG_PRINTK=y |
84 | CONFIG_BUG=y | 86 | CONFIG_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 |
100 | CONFIG_PROFILING=y | 102 | CONFIG_PROFILING=y |
103 | # CONFIG_MARKERS is not set | ||
101 | # CONFIG_OPROFILE is not set | 104 | # CONFIG_OPROFILE is not set |
102 | CONFIG_HAVE_OPROFILE=y | 105 | CONFIG_HAVE_OPROFILE=y |
103 | # CONFIG_KPROBES is not set | 106 | # CONFIG_KPROBES is not set |
@@ -106,6 +109,8 @@ CONFIG_HAVE_KPROBES=y | |||
106 | CONFIG_HAVE_KRETPROBES=y | 109 | CONFIG_HAVE_KRETPROBES=y |
107 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 110 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
108 | CONFIG_HAVE_CLK=y | 111 | CONFIG_HAVE_CLK=y |
112 | CONFIG_HAVE_DMA_API_DEBUG=y | ||
113 | # CONFIG_SLOW_WORK is not set | ||
109 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | 114 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
110 | CONFIG_SLABINFO=y | 115 | CONFIG_SLABINFO=y |
111 | CONFIG_RT_MUTEXES=y | 116 | CONFIG_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 |
119 | CONFIG_BLOCK=y | 124 | CONFIG_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 | |||
186 | CONFIG_PAGE_OFFSET=0x80000000 | 189 | CONFIG_PAGE_OFFSET=0x80000000 |
187 | CONFIG_MEMORY_START=0x08000000 | 190 | CONFIG_MEMORY_START=0x08000000 |
188 | CONFIG_MEMORY_SIZE=0x08000000 | 191 | CONFIG_MEMORY_SIZE=0x08000000 |
189 | # CONFIG_29BIT is not set | 192 | CONFIG_29BIT=y |
190 | CONFIG_32BIT=y | 193 | # CONFIG_PMB_ENABLE is not set |
191 | CONFIG_PMB_ENABLE=y | ||
192 | # CONFIG_PMB is not set | ||
193 | CONFIG_PMB_FIXED=y | ||
194 | # CONFIG_X2TLB is not set | 194 | # CONFIG_X2TLB is not set |
195 | CONFIG_VSYSCALL=y | 195 | CONFIG_VSYSCALL=y |
196 | # CONFIG_NUMA is not set | 196 | # CONFIG_NUMA is not set |
197 | CONFIG_ARCH_FLATMEM_ENABLE=y | 197 | CONFIG_ARCH_FLATMEM_ENABLE=y |
198 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | 198 | CONFIG_ARCH_SPARSEMEM_ENABLE=y |
199 | CONFIG_ARCH_SPARSEMEM_DEFAULT=y | 199 | CONFIG_ARCH_SPARSEMEM_DEFAULT=y |
200 | CONFIG_MAX_ACTIVE_REGIONS=2 | 200 | CONFIG_MAX_ACTIVE_REGIONS=1 |
201 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 201 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
202 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y | 202 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y |
203 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | ||
204 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
205 | CONFIG_PAGE_SIZE_4KB=y | 203 | CONFIG_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 |
209 | CONFIG_ENTRY_OFFSET=0x00001000 | 207 | CONFIG_ENTRY_OFFSET=0x00001000 |
210 | CONFIG_SELECT_MEMORY_MODEL=y | 208 | CONFIG_SELECT_MEMORY_MODEL=y |
211 | # CONFIG_FLATMEM_MANUAL is not set | 209 | CONFIG_FLATMEM_MANUAL=y |
212 | # CONFIG_DISCONTIGMEM_MANUAL is not set | 210 | # CONFIG_DISCONTIGMEM_MANUAL is not set |
213 | CONFIG_SPARSEMEM_MANUAL=y | 211 | # CONFIG_SPARSEMEM_MANUAL is not set |
214 | CONFIG_SPARSEMEM=y | 212 | CONFIG_FLATMEM=y |
215 | CONFIG_HAVE_MEMORY_PRESENT=y | 213 | CONFIG_FLAT_NODE_MEM_MAP=y |
216 | CONFIG_SPARSEMEM_STATIC=y | 214 | CONFIG_SPARSEMEM_STATIC=y |
217 | # CONFIG_MEMORY_HOTPLUG is not set | ||
218 | CONFIG_PAGEFLAGS_EXTENDED=y | 215 | CONFIG_PAGEFLAGS_EXTENDED=y |
219 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 216 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
220 | CONFIG_MIGRATION=y | ||
221 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 217 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
222 | CONFIG_ZONE_DMA_FLAG=0 | 218 | CONFIG_ZONE_DMA_FLAG=0 |
223 | CONFIG_NR_QUICK=2 | 219 | CONFIG_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 |
251 | CONFIG_SH_SH7785LCR=y | 247 | CONFIG_SH_SH7785LCR=y |
248 | CONFIG_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 | # |
1012 | CONFIG_HID_COMPAT=y | ||
1013 | CONFIG_HID_A4TECH=y | 1010 | CONFIG_HID_A4TECH=y |
1014 | CONFIG_HID_APPLE=y | 1011 | CONFIG_HID_APPLE=y |
1015 | CONFIG_HID_BELKIN=y | 1012 | CONFIG_HID_BELKIN=y |
1016 | CONFIG_HID_CHERRY=y | 1013 | CONFIG_HID_CHERRY=y |
1017 | CONFIG_HID_CHICONY=y | 1014 | CONFIG_HID_CHICONY=y |
1018 | CONFIG_HID_CYPRESS=y | 1015 | CONFIG_HID_CYPRESS=y |
1016 | # CONFIG_DRAGONRISE_FF is not set | ||
1019 | CONFIG_HID_EZKEY=y | 1017 | CONFIG_HID_EZKEY=y |
1018 | # CONFIG_HID_KYE is not set | ||
1020 | CONFIG_HID_GYRATION=y | 1019 | CONFIG_HID_GYRATION=y |
1020 | # CONFIG_HID_KENSINGTON is not set | ||
1021 | CONFIG_HID_LOGITECH=y | 1021 | CONFIG_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 |
1220 | CONFIG_EXT3_FS=y | 1220 | CONFIG_EXT3_FS=y |
1221 | # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set | ||
1221 | CONFIG_EXT3_FS_XATTR=y | 1222 | CONFIG_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 | ||
1292 | CONFIG_NETWORK_FILESYSTEMS=y | 1299 | CONFIG_NETWORK_FILESYSTEMS=y |
1293 | CONFIG_NFS_FS=y | 1300 | CONFIG_NFS_FS=y |
1294 | CONFIG_NFS_V3=y | 1301 | CONFIG_NFS_V3=y |
@@ -1377,6 +1384,9 @@ CONFIG_DEBUG_KERNEL=y | |||
1377 | CONFIG_DETECT_SOFTLOCKUP=y | 1384 | CONFIG_DETECT_SOFTLOCKUP=y |
1378 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | 1385 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set |
1379 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | 1386 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 |
1387 | CONFIG_DETECT_HUNG_TASK=y | ||
1388 | # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set | ||
1389 | CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 | ||
1380 | CONFIG_SCHED_DEBUG=y | 1390 | CONFIG_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 | |||
1413 | CONFIG_HAVE_FUNCTION_TRACER=y | 1423 | CONFIG_HAVE_FUNCTION_TRACER=y |
1414 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 1424 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
1415 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | 1425 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
1426 | CONFIG_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 |
1429 | CONFIG_HAVE_ARCH_KGDB=y | 1445 | CONFIG_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 @@ | |||
9 | struct pt_regs { | 9 | struct 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) | |||
40 | 1: | 41 | 1: |
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: | |||
110 | fpu_in_use: .quad 0 | 113 | fpu_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 | |||
277 | config NUMA_MIGRATE_IRQ_DESC | 277 | config 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 | ||
665 | config NR_CPUS | 666 | config 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 | ||
154 | boot := arch/x86/boot | 154 | boot := arch/x86/boot |
155 | 155 | ||
156 | BOOT_TARGETS = bzlilo bzdisk fdimage fdimage144 fdimage288 isoimage install | 156 | BOOT_TARGETS = bzlilo bzdisk fdimage fdimage144 fdimage288 isoimage |
157 | 157 | ||
158 | PHONY += bzImage $(BOOT_TARGETS) | 158 | PHONY += 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 | ||
174 | PHONY += install | ||
175 | install: | ||
176 | $(Q)$(MAKE) $(build)=$(boot) $@ | ||
177 | |||
174 | PHONY += vdso_install | 178 | PHONY += vdso_install |
175 | vdso_install: | 179 | vdso_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 | ||
35 | static enum uv_system_type uv_system_type; | 36 | static enum uv_system_type uv_system_type; |
36 | 37 | ||
38 | static 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 | |||
37 | static int uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id) | 49 | static 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) | |||
1410 | paranoid_swapgs: | 1410 | paranoid_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 | ||
1413 | paranoid_restore: | 1415 | paranoid_restore: |
1416 | TRACE_IRQS_IRETQ 0 | ||
1414 | RESTORE_ALL 8 | 1417 | RESTORE_ALL 8 |
1415 | jmp irq_return | 1418 | jmp irq_return |
1416 | paranoid_userspace: | 1419 | paranoid_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 | |||
241 | static 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) | |||
250 | static void hpet_restart_counter(void) | 254 | static 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); | |||
309 | static void hpet_set_mode(enum clock_event_mode mode, | 314 | static 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 | ||
268 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB_1, | 266 | DECLARE_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 | ||
32 | static cycle_t uv_read_rtc(void); | 32 | static cycle_t uv_read_rtc(struct clocksource *cs); |
33 | static int uv_rtc_next_event(unsigned long, struct clock_event_device *); | 33 | static int uv_rtc_next_event(unsigned long, struct clock_event_device *); |
34 | static void uv_rtc_timer_setup(enum clock_event_mode, | 34 | static 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 | */ |
281 | static cycle_t uv_read_rtc(void) | 281 | static 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 | ||
260 | static unsigned long calculate_numa_remap_pages(void) | 260 | static __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; | |||
28 | static struct acpi_table_slit *acpi_slit; | 28 | static struct acpi_table_slit *acpi_slit; |
29 | 29 | ||
30 | static nodemask_t nodes_parsed __initdata; | 30 | static nodemask_t nodes_parsed __initdata; |
31 | static nodemask_t cpu_nodes_parsed __initdata; | ||
31 | static struct bootnode nodes[MAX_NUMNODES] __initdata; | 32 | static struct bootnode nodes[MAX_NUMNODES] __initdata; |
32 | static struct bootnode nodes_add[MAX_NUMNODES]; | 33 | static struct bootnode nodes_add[MAX_NUMNODES]; |
33 | static int found_add_area __initdata; | 34 | static 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 | ||
48 | static int dc_mouse_open(struct input_dev *dev) | 48 | static 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 | ||
58 | static void dc_mouse_close(struct input_dev *dev) | 58 | static 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 */ | |
67 | static int __devinit probe_maple_mouse(struct device *dev) | 67 | static 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 | ||
106 | fail: | 109 | fail_register: |
107 | input_free_device(input_dev); | 110 | input_free_device(input_dev); |
108 | maple_set_drvdata(mdev, NULL); | 111 | fail_nomem: |
109 | kfree(mse); | 112 | kfree(mse); |
110 | mdev->driver = NULL; | 113 | fail: |
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, | |||
2490 | void lockdep_init_map(struct lockdep_map *lock, const char *name, | 2490 | void 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(¤t->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: | |||
232 | bad: | 232 | bad: |
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(¤t->cred_exec_mutex); | 235 | mutex_unlock(&task->cred_exec_mutex); |
236 | out: | 236 | out: |
237 | return retval; | 237 | return retval; |
238 | } | 238 | } |