aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/Kconfig7
-rw-r--r--arch/alpha/Kconfig1
-rw-r--r--arch/alpha/include/asm/unistd.h1
-rw-r--r--arch/alpha/kernel/smc37c669.c12
-rw-r--r--arch/arm/Kconfig2
-rw-r--r--arch/arm/include/asm/unistd.h1
-rw-r--r--arch/arm/lib/io-acorn.S3
-rw-r--r--arch/arm/mach-netx/fb.c23
-rw-r--r--arch/arm/vfp/vfphw.S7
-rw-r--r--arch/avr32/Kconfig1
-rw-r--r--arch/avr32/boards/atstk1000/atstk1002.c2
-rw-r--r--arch/avr32/include/asm/unistd.h1
-rw-r--r--arch/avr32/mm/fault.c33
-rw-r--r--arch/blackfin/Kconfig1
-rw-r--r--arch/blackfin/include/asm/unistd.h1
-rw-r--r--arch/cris/Kconfig1
-rw-r--r--arch/cris/include/asm/unistd.h1
-rw-r--r--arch/frv/Kconfig1
-rw-r--r--arch/frv/include/asm/unistd.h1
-rw-r--r--arch/frv/kernel/kernel_thread.S2
-rw-r--r--arch/h8300/Kconfig1
-rw-r--r--arch/h8300/include/asm/unistd.h1
-rw-r--r--arch/m32r/Kconfig1
-rw-r--r--arch/m32r/include/asm/unistd.h1
-rw-r--r--arch/m68k/Kconfig1
-rw-r--r--arch/m68k/include/asm/unistd.h1
-rw-r--r--arch/microblaze/Kconfig1
-rw-r--r--arch/microblaze/include/asm/unistd.h1
-rw-r--r--arch/mips/Kconfig2
-rw-r--r--arch/mips/include/asm/unistd.h1
-rw-r--r--arch/mn10300/Kconfig1
-rw-r--r--arch/mn10300/include/asm/unistd.h1
-rw-r--r--arch/powerpc/Kconfig2
-rw-r--r--arch/powerpc/include/asm/unistd.h1
-rw-r--r--arch/s390/Kconfig2
-rw-r--r--arch/s390/include/asm/unistd.h1
-rw-r--r--arch/sh/Kconfig2
-rw-r--r--arch/sh/include/asm/unistd.h1
-rw-r--r--arch/sparc/Kconfig1
-rw-r--r--arch/sparc/include/asm/unistd.h1
-rw-r--r--arch/sparc/kernel/sys_sparc_64.c2
-rw-r--r--arch/x86/Kconfig2
-rw-r--r--arch/x86/include/asm/unistd.h1
-rw-r--r--arch/x86/kernel/e820.c2
-rw-r--r--arch/xtensa/kernel/syscall.c2
-rw-r--r--arch/xtensa/mm/fault.c29
46 files changed, 90 insertions, 74 deletions
diff --git a/arch/Kconfig b/arch/Kconfig
index 8c3d957fa8e2..72f2fa189cc5 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -248,7 +248,14 @@ config HAVE_CMPXCHG_LOCAL
248config HAVE_CMPXCHG_DOUBLE 248config HAVE_CMPXCHG_DOUBLE
249 bool 249 bool
250 250
251config ARCH_WANT_IPC_PARSE_VERSION
252 bool
253
254config ARCH_WANT_COMPAT_IPC_PARSE_VERSION
255 bool
256
251config ARCH_WANT_OLD_COMPAT_IPC 257config ARCH_WANT_OLD_COMPAT_IPC
258 select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
252 bool 259 bool
253 260
254config HAVE_ARCH_SECCOMP_FILTER 261config HAVE_ARCH_SECCOMP_FILTER
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig
index 3de74c9f9610..d5b9b5e645cc 100644
--- a/arch/alpha/Kconfig
+++ b/arch/alpha/Kconfig
@@ -14,6 +14,7 @@ config ALPHA
14 select AUTO_IRQ_AFFINITY if SMP 14 select AUTO_IRQ_AFFINITY if SMP
15 select GENERIC_IRQ_SHOW 15 select GENERIC_IRQ_SHOW
16 select ARCH_WANT_OPTIONAL_GPIOLIB 16 select ARCH_WANT_OPTIONAL_GPIOLIB
17 select ARCH_WANT_IPC_PARSE_VERSION
17 select ARCH_HAVE_NMI_SAFE_CMPXCHG 18 select ARCH_HAVE_NMI_SAFE_CMPXCHG
18 select GENERIC_SMP_IDLE_THREAD 19 select GENERIC_SMP_IDLE_THREAD
19 select GENERIC_CMOS_UPDATE 20 select GENERIC_CMOS_UPDATE
diff --git a/arch/alpha/include/asm/unistd.h b/arch/alpha/include/asm/unistd.h
index d1f23b722df4..633b23b0664a 100644
--- a/arch/alpha/include/asm/unistd.h
+++ b/arch/alpha/include/asm/unistd.h
@@ -470,7 +470,6 @@
470 470
471#define NR_SYSCALLS 504 471#define NR_SYSCALLS 504
472 472
473#define __ARCH_WANT_IPC_PARSE_VERSION
474#define __ARCH_WANT_OLD_READDIR 473#define __ARCH_WANT_OLD_READDIR
475#define __ARCH_WANT_STAT64 474#define __ARCH_WANT_STAT64
476#define __ARCH_WANT_SYS_GETHOSTNAME 475#define __ARCH_WANT_SYS_GETHOSTNAME
diff --git a/arch/alpha/kernel/smc37c669.c b/arch/alpha/kernel/smc37c669.c
index 0435921d41c6..c803fc76ae4f 100644
--- a/arch/alpha/kernel/smc37c669.c
+++ b/arch/alpha/kernel/smc37c669.c
@@ -933,18 +933,6 @@ void SMC37c669_display_device_info(
933 * 933 *
934 *-- 934 *--
935 */ 935 */
936#if 0
937/* $INCLUDE_OPTIONS$ */
938#include "cp$inc:platform_io.h"
939/* $INCLUDE_OPTIONS_END$ */
940#include "cp$src:common.h"
941#include "cp$inc:prototypes.h"
942#include "cp$src:kernel_def.h"
943#include "cp$src:msg_def.h"
944#include "cp$src:smcc669_def.h"
945/* Platform-specific includes */
946#include "cp$src:platform.h"
947#endif
948 936
949#ifndef TRUE 937#ifndef TRUE
950#define TRUE 1 938#define TRUE 1
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 6b86bb963a28..7980873525b2 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -11,6 +11,7 @@ config ARM
11 select RTC_LIB 11 select RTC_LIB
12 select SYS_SUPPORTS_APM_EMULATION 12 select SYS_SUPPORTS_APM_EMULATION
13 select GENERIC_ATOMIC64 if (CPU_V6 || !CPU_32v6K || !AEABI) 13 select GENERIC_ATOMIC64 if (CPU_V6 || !CPU_32v6K || !AEABI)
14 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
14 select HAVE_OPROFILE if (HAVE_PERF_EVENTS) 15 select HAVE_OPROFILE if (HAVE_PERF_EVENTS)
15 select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL 16 select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
16 select HAVE_ARCH_KGDB 17 select HAVE_ARCH_KGDB
@@ -38,6 +39,7 @@ config ARM
38 select GENERIC_IRQ_PROBE 39 select GENERIC_IRQ_PROBE
39 select GENERIC_IRQ_SHOW 40 select GENERIC_IRQ_SHOW
40 select GENERIC_IRQ_PROBE 41 select GENERIC_IRQ_PROBE
42 select ARCH_WANT_IPC_PARSE_VERSION
41 select HARDIRQS_SW_RESEND 43 select HARDIRQS_SW_RESEND
42 select CPU_PM if (SUSPEND || CPU_IDLE) 44 select CPU_PM if (SUSPEND || CPU_IDLE)
43 select GENERIC_PCI_IOMAP 45 select GENERIC_PCI_IOMAP
diff --git a/arch/arm/include/asm/unistd.h b/arch/arm/include/asm/unistd.h
index 512cd1473454..0cab47d4a83f 100644
--- a/arch/arm/include/asm/unistd.h
+++ b/arch/arm/include/asm/unistd.h
@@ -446,7 +446,6 @@
446 446
447#ifdef __KERNEL__ 447#ifdef __KERNEL__
448 448
449#define __ARCH_WANT_IPC_PARSE_VERSION
450#define __ARCH_WANT_STAT64 449#define __ARCH_WANT_STAT64
451#define __ARCH_WANT_SYS_GETHOSTNAME 450#define __ARCH_WANT_SYS_GETHOSTNAME
452#define __ARCH_WANT_SYS_PAUSE 451#define __ARCH_WANT_SYS_PAUSE
diff --git a/arch/arm/lib/io-acorn.S b/arch/arm/lib/io-acorn.S
index 1b197ea7aab3..69719bad674d 100644
--- a/arch/arm/lib/io-acorn.S
+++ b/arch/arm/lib/io-acorn.S
@@ -11,13 +11,14 @@
11 * 11 *
12 */ 12 */
13#include <linux/linkage.h> 13#include <linux/linkage.h>
14#include <linux/kern_levels.h>
14#include <asm/assembler.h> 15#include <asm/assembler.h>
15 16
16 .text 17 .text
17 .align 18 .align
18 19
19.Liosl_warning: 20.Liosl_warning:
20 .ascii "<4>insl/outsl not implemented, called from %08lX\0" 21 .ascii KERN_WARNING "insl/outsl not implemented, called from %08lX\0"
21 .align 22 .align
22 23
23/* 24/*
diff --git a/arch/arm/mach-netx/fb.c b/arch/arm/mach-netx/fb.c
index 2cdf6ef69bee..d122ee6ab991 100644
--- a/arch/arm/mach-netx/fb.c
+++ b/arch/arm/mach-netx/fb.c
@@ -69,29 +69,6 @@ void netx_clcd_remove(struct clcd_fb *fb)
69 fb->fb.screen_base, fb->fb.fix.smem_start); 69 fb->fb.screen_base, fb->fb.fix.smem_start);
70} 70}
71 71
72void clk_disable(struct clk *clk)
73{
74}
75
76int clk_set_rate(struct clk *clk, unsigned long rate)
77{
78 return 0;
79}
80
81int clk_enable(struct clk *clk)
82{
83 return 0;
84}
85
86struct clk *clk_get(struct device *dev, const char *id)
87{
88 return dev && strcmp(dev_name(dev), "fb") == 0 ? NULL : ERR_PTR(-ENOENT);
89}
90
91void clk_put(struct clk *clk)
92{
93}
94
95static AMBA_AHB_DEVICE(fb, "fb", 0, 0x00104000, { NETX_IRQ_LCD }, NULL); 72static AMBA_AHB_DEVICE(fb, "fb", 0, 0x00104000, { NETX_IRQ_LCD }, NULL);
96 73
97int netx_fb_init(struct clcd_board *board, struct clcd_panel *panel) 74int netx_fb_init(struct clcd_board *board, struct clcd_panel *panel)
diff --git a/arch/arm/vfp/vfphw.S b/arch/arm/vfp/vfphw.S
index 2d30c7f6edd3..d50f0e486cf2 100644
--- a/arch/arm/vfp/vfphw.S
+++ b/arch/arm/vfp/vfphw.S
@@ -16,6 +16,7 @@
16 */ 16 */
17#include <asm/thread_info.h> 17#include <asm/thread_info.h>
18#include <asm/vfpmacros.h> 18#include <asm/vfpmacros.h>
19#include <linux/kern_levels.h>
19#include "../kernel/entry-header.S" 20#include "../kernel/entry-header.S"
20 21
21 .macro DBGSTR, str 22 .macro DBGSTR, str
@@ -24,7 +25,7 @@
24 add r0, pc, #4 25 add r0, pc, #4
25 bl printk 26 bl printk
26 b 1f 27 b 1f
27 .asciz "<7>VFP: \str\n" 28 .asciz KERN_DEBUG "VFP: \str\n"
28 .balign 4 29 .balign 4
291: ldmfd sp!, {r0-r3, ip, lr} 301: ldmfd sp!, {r0-r3, ip, lr}
30#endif 31#endif
@@ -37,7 +38,7 @@
37 add r0, pc, #4 38 add r0, pc, #4
38 bl printk 39 bl printk
39 b 1f 40 b 1f
40 .asciz "<7>VFP: \str\n" 41 .asciz KERN_DEBUG "VFP: \str\n"
41 .balign 4 42 .balign 4
421: ldmfd sp!, {r0-r3, ip, lr} 431: ldmfd sp!, {r0-r3, ip, lr}
43#endif 44#endif
@@ -52,7 +53,7 @@
52 add r0, pc, #4 53 add r0, pc, #4
53 bl printk 54 bl printk
54 b 1f 55 b 1f
55 .asciz "<7>VFP: \str\n" 56 .asciz KERN_DEBUG "VFP: \str\n"
56 .balign 4 57 .balign 4
571: ldmfd sp!, {r0-r3, ip, lr} 581: ldmfd sp!, {r0-r3, ip, lr}
58#endif 59#endif
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig
index 71d38c76726c..5ade51c8a87f 100644
--- a/arch/avr32/Kconfig
+++ b/arch/avr32/Kconfig
@@ -12,6 +12,7 @@ config AVR32
12 select HARDIRQS_SW_RESEND 12 select HARDIRQS_SW_RESEND
13 select GENERIC_IRQ_SHOW 13 select GENERIC_IRQ_SHOW
14 select ARCH_HAVE_CUSTOM_GPIO_H 14 select ARCH_HAVE_CUSTOM_GPIO_H
15 select ARCH_WANT_IPC_PARSE_VERSION
15 select ARCH_HAVE_NMI_SAFE_CMPXCHG 16 select ARCH_HAVE_NMI_SAFE_CMPXCHG
16 select GENERIC_CLOCKEVENTS 17 select GENERIC_CLOCKEVENTS
17 help 18 help
diff --git a/arch/avr32/boards/atstk1000/atstk1002.c b/arch/avr32/boards/atstk1000/atstk1002.c
index dc5263321480..6c80aba7bf96 100644
--- a/arch/avr32/boards/atstk1000/atstk1002.c
+++ b/arch/avr32/boards/atstk1000/atstk1002.c
@@ -97,7 +97,7 @@ static struct atmel_nand_data atstk1006_nand_data __initdata = {
97 .enable_pin = GPIO_PIN_PB(29), 97 .enable_pin = GPIO_PIN_PB(29),
98 .ecc_mode = NAND_ECC_SOFT, 98 .ecc_mode = NAND_ECC_SOFT,
99 .parts = nand_partitions, 99 .parts = nand_partitions,
100 .num_parts = ARRAY_SIZE(num_partitions), 100 .num_parts = ARRAY_SIZE(nand_partitions),
101}; 101};
102#endif 102#endif
103 103
diff --git a/arch/avr32/include/asm/unistd.h b/arch/avr32/include/asm/unistd.h
index f714544e5560..1358e366f4be 100644
--- a/arch/avr32/include/asm/unistd.h
+++ b/arch/avr32/include/asm/unistd.h
@@ -318,7 +318,6 @@
318/* SMP stuff */ 318/* SMP stuff */
319#define __IGNORE_getcpu 319#define __IGNORE_getcpu
320 320
321#define __ARCH_WANT_IPC_PARSE_VERSION
322#define __ARCH_WANT_STAT64 321#define __ARCH_WANT_STAT64
323#define __ARCH_WANT_SYS_ALARM 322#define __ARCH_WANT_SYS_ALARM
324#define __ARCH_WANT_SYS_GETHOSTNAME 323#define __ARCH_WANT_SYS_GETHOSTNAME
diff --git a/arch/avr32/mm/fault.c b/arch/avr32/mm/fault.c
index f7040a1e399f..b92e60958617 100644
--- a/arch/avr32/mm/fault.c
+++ b/arch/avr32/mm/fault.c
@@ -61,10 +61,10 @@ asmlinkage void do_page_fault(unsigned long ecr, struct pt_regs *regs)
61 const struct exception_table_entry *fixup; 61 const struct exception_table_entry *fixup;
62 unsigned long address; 62 unsigned long address;
63 unsigned long page; 63 unsigned long page;
64 int writeaccess;
65 long signr; 64 long signr;
66 int code; 65 int code;
67 int fault; 66 int fault;
67 unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
68 68
69 if (notify_page_fault(regs, ecr)) 69 if (notify_page_fault(regs, ecr))
70 return; 70 return;
@@ -86,6 +86,7 @@ asmlinkage void do_page_fault(unsigned long ecr, struct pt_regs *regs)
86 86
87 local_irq_enable(); 87 local_irq_enable();
88 88
89retry:
89 down_read(&mm->mmap_sem); 90 down_read(&mm->mmap_sem);
90 91
91 vma = find_vma(mm, address); 92 vma = find_vma(mm, address);
@@ -104,7 +105,6 @@ asmlinkage void do_page_fault(unsigned long ecr, struct pt_regs *regs)
104 */ 105 */
105good_area: 106good_area:
106 code = SEGV_ACCERR; 107 code = SEGV_ACCERR;
107 writeaccess = 0;
108 108
109 switch (ecr) { 109 switch (ecr) {
110 case ECR_PROTECTION_X: 110 case ECR_PROTECTION_X:
@@ -121,7 +121,7 @@ good_area:
121 case ECR_TLB_MISS_W: 121 case ECR_TLB_MISS_W:
122 if (!(vma->vm_flags & VM_WRITE)) 122 if (!(vma->vm_flags & VM_WRITE))
123 goto bad_area; 123 goto bad_area;
124 writeaccess = 1; 124 flags |= FAULT_FLAG_WRITE;
125 break; 125 break;
126 default: 126 default:
127 panic("Unhandled case %lu in do_page_fault!", ecr); 127 panic("Unhandled case %lu in do_page_fault!", ecr);
@@ -132,7 +132,11 @@ good_area:
132 * sure we exit gracefully rather than endlessly redo the 132 * sure we exit gracefully rather than endlessly redo the
133 * fault. 133 * fault.
134 */ 134 */
135 fault = handle_mm_fault(mm, vma, address, writeaccess ? FAULT_FLAG_WRITE : 0); 135 fault = handle_mm_fault(mm, vma, address, flags);
136
137 if ((fault & VM_FAULT_RETRY) && fatal_signal_pending(current))
138 return;
139
136 if (unlikely(fault & VM_FAULT_ERROR)) { 140 if (unlikely(fault & VM_FAULT_ERROR)) {
137 if (fault & VM_FAULT_OOM) 141 if (fault & VM_FAULT_OOM)
138 goto out_of_memory; 142 goto out_of_memory;
@@ -140,10 +144,23 @@ good_area:
140 goto do_sigbus; 144 goto do_sigbus;
141 BUG(); 145 BUG();
142 } 146 }
143 if (fault & VM_FAULT_MAJOR) 147
144 tsk->maj_flt++; 148 if (flags & FAULT_FLAG_ALLOW_RETRY) {
145 else 149 if (fault & VM_FAULT_MAJOR)
146 tsk->min_flt++; 150 tsk->maj_flt++;
151 else
152 tsk->min_flt++;
153 if (fault & VM_FAULT_RETRY) {
154 flags &= ~FAULT_FLAG_ALLOW_RETRY;
155
156 /*
157 * No need to up_read(&mm->mmap_sem) as we would have
158 * already released it in __lock_page_or_retry() in
159 * mm/filemap.c.
160 */
161 goto retry;
162 }
163 }
147 164
148 up_read(&mm->mmap_sem); 165 up_read(&mm->mmap_sem);
149 return; 166 return;
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig
index ec44fc6c34ca..f34861920634 100644
--- a/arch/blackfin/Kconfig
+++ b/arch/blackfin/Kconfig
@@ -33,6 +33,7 @@ config BLACKFIN
33 select HAVE_PERF_EVENTS 33 select HAVE_PERF_EVENTS
34 select ARCH_HAVE_CUSTOM_GPIO_H 34 select ARCH_HAVE_CUSTOM_GPIO_H
35 select ARCH_WANT_OPTIONAL_GPIOLIB 35 select ARCH_WANT_OPTIONAL_GPIOLIB
36 select ARCH_WANT_IPC_PARSE_VERSION
36 select HAVE_GENERIC_HARDIRQS 37 select HAVE_GENERIC_HARDIRQS
37 select GENERIC_ATOMIC64 38 select GENERIC_ATOMIC64
38 select GENERIC_IRQ_PROBE 39 select GENERIC_IRQ_PROBE
diff --git a/arch/blackfin/include/asm/unistd.h b/arch/blackfin/include/asm/unistd.h
index 3287222cba34..5b2a0748d7d3 100644
--- a/arch/blackfin/include/asm/unistd.h
+++ b/arch/blackfin/include/asm/unistd.h
@@ -434,7 +434,6 @@
434#define __IGNORE_getcpu 434#define __IGNORE_getcpu
435 435
436#ifdef __KERNEL__ 436#ifdef __KERNEL__
437#define __ARCH_WANT_IPC_PARSE_VERSION
438#define __ARCH_WANT_STAT64 437#define __ARCH_WANT_STAT64
439#define __ARCH_WANT_SYS_ALARM 438#define __ARCH_WANT_SYS_ALARM
440#define __ARCH_WANT_SYS_GETHOSTNAME 439#define __ARCH_WANT_SYS_GETHOSTNAME
diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig
index bb344650a14f..e92215428a37 100644
--- a/arch/cris/Kconfig
+++ b/arch/cris/Kconfig
@@ -42,6 +42,7 @@ config CRIS
42 select HAVE_IDE 42 select HAVE_IDE
43 select GENERIC_ATOMIC64 43 select GENERIC_ATOMIC64
44 select HAVE_GENERIC_HARDIRQS 44 select HAVE_GENERIC_HARDIRQS
45 select ARCH_WANT_IPC_PARSE_VERSION
45 select GENERIC_IRQ_SHOW 46 select GENERIC_IRQ_SHOW
46 select GENERIC_IOMAP 47 select GENERIC_IOMAP
47 select GENERIC_SMP_IDLE_THREAD if ETRAX_ARCH_V32 48 select GENERIC_SMP_IDLE_THREAD if ETRAX_ARCH_V32
diff --git a/arch/cris/include/asm/unistd.h b/arch/cris/include/asm/unistd.h
index f921b8b0f97e..51873a446f87 100644
--- a/arch/cris/include/asm/unistd.h
+++ b/arch/cris/include/asm/unistd.h
@@ -347,7 +347,6 @@
347 347
348#include <arch/unistd.h> 348#include <arch/unistd.h>
349 349
350#define __ARCH_WANT_IPC_PARSE_VERSION
351#define __ARCH_WANT_OLD_READDIR 350#define __ARCH_WANT_OLD_READDIR
352#define __ARCH_WANT_OLD_STAT 351#define __ARCH_WANT_OLD_STAT
353#define __ARCH_WANT_STAT64 352#define __ARCH_WANT_STAT64
diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig
index a685910d2d5c..971c0a19facb 100644
--- a/arch/frv/Kconfig
+++ b/arch/frv/Kconfig
@@ -9,6 +9,7 @@ config FRV
9 select GENERIC_IRQ_SHOW 9 select GENERIC_IRQ_SHOW
10 select ARCH_HAVE_NMI_SAFE_CMPXCHG 10 select ARCH_HAVE_NMI_SAFE_CMPXCHG
11 select GENERIC_CPU_DEVICES 11 select GENERIC_CPU_DEVICES
12 select ARCH_WANT_IPC_PARSE_VERSION
12 13
13config ZONE_DMA 14config ZONE_DMA
14 bool 15 bool
diff --git a/arch/frv/include/asm/unistd.h b/arch/frv/include/asm/unistd.h
index a569dff7cd59..67f23a311db6 100644
--- a/arch/frv/include/asm/unistd.h
+++ b/arch/frv/include/asm/unistd.h
@@ -349,7 +349,6 @@
349 349
350#define NR_syscalls 338 350#define NR_syscalls 338
351 351
352#define __ARCH_WANT_IPC_PARSE_VERSION
353/* #define __ARCH_WANT_OLD_READDIR */ 352/* #define __ARCH_WANT_OLD_READDIR */
354#define __ARCH_WANT_OLD_STAT 353#define __ARCH_WANT_OLD_STAT
355#define __ARCH_WANT_STAT64 354#define __ARCH_WANT_STAT64
diff --git a/arch/frv/kernel/kernel_thread.S b/arch/frv/kernel/kernel_thread.S
index 4531c830d20b..f0e52943f923 100644
--- a/arch/frv/kernel/kernel_thread.S
+++ b/arch/frv/kernel/kernel_thread.S
@@ -10,10 +10,10 @@
10 */ 10 */
11 11
12#include <linux/linkage.h> 12#include <linux/linkage.h>
13#include <linux/kern_levels.h>
13#include <asm/unistd.h> 14#include <asm/unistd.h>
14 15
15#define CLONE_VM 0x00000100 /* set if VM shared between processes */ 16#define CLONE_VM 0x00000100 /* set if VM shared between processes */
16#define KERN_ERR "<3>"
17 17
18 .section .rodata 18 .section .rodata
19kernel_thread_emsg: 19kernel_thread_emsg:
diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig
index 56e890df5053..5e8a0d9a09ce 100644
--- a/arch/h8300/Kconfig
+++ b/arch/h8300/Kconfig
@@ -3,6 +3,7 @@ config H8300
3 default y 3 default y
4 select HAVE_IDE 4 select HAVE_IDE
5 select HAVE_GENERIC_HARDIRQS 5 select HAVE_GENERIC_HARDIRQS
6 select ARCH_WANT_IPC_PARSE_VERSION
6 select GENERIC_IRQ_SHOW 7 select GENERIC_IRQ_SHOW
7 select GENERIC_CPU_DEVICES 8 select GENERIC_CPU_DEVICES
8 9
diff --git a/arch/h8300/include/asm/unistd.h b/arch/h8300/include/asm/unistd.h
index 718511303b4e..5cd882801d79 100644
--- a/arch/h8300/include/asm/unistd.h
+++ b/arch/h8300/include/asm/unistd.h
@@ -331,7 +331,6 @@
331 331
332#define NR_syscalls 321 332#define NR_syscalls 321
333 333
334#define __ARCH_WANT_IPC_PARSE_VERSION
335#define __ARCH_WANT_OLD_READDIR 334#define __ARCH_WANT_OLD_READDIR
336#define __ARCH_WANT_OLD_STAT 335#define __ARCH_WANT_OLD_STAT
337#define __ARCH_WANT_STAT64 336#define __ARCH_WANT_STAT64
diff --git a/arch/m32r/Kconfig b/arch/m32r/Kconfig
index b638d5bfa14d..49498bbb9616 100644
--- a/arch/m32r/Kconfig
+++ b/arch/m32r/Kconfig
@@ -7,6 +7,7 @@ config M32R
7 select HAVE_KERNEL_GZIP 7 select HAVE_KERNEL_GZIP
8 select HAVE_KERNEL_BZIP2 8 select HAVE_KERNEL_BZIP2
9 select HAVE_KERNEL_LZMA 9 select HAVE_KERNEL_LZMA
10 select ARCH_WANT_IPC_PARSE_VERSION
10 select HAVE_GENERIC_HARDIRQS 11 select HAVE_GENERIC_HARDIRQS
11 select GENERIC_IRQ_PROBE 12 select GENERIC_IRQ_PROBE
12 select GENERIC_IRQ_SHOW 13 select GENERIC_IRQ_SHOW
diff --git a/arch/m32r/include/asm/unistd.h b/arch/m32r/include/asm/unistd.h
index 3e1db561aacc..d5e66a480782 100644
--- a/arch/m32r/include/asm/unistd.h
+++ b/arch/m32r/include/asm/unistd.h
@@ -336,7 +336,6 @@
336 336
337#define NR_syscalls 326 337#define NR_syscalls 326
338 338
339#define __ARCH_WANT_IPC_PARSE_VERSION
340#define __ARCH_WANT_STAT64 339#define __ARCH_WANT_STAT64
341#define __ARCH_WANT_SYS_ALARM 340#define __ARCH_WANT_SYS_ALARM
342#define __ARCH_WANT_SYS_GETHOSTNAME 341#define __ARCH_WANT_SYS_GETHOSTNAME
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig
index 147120128260..0b0f8b8c4a26 100644
--- a/arch/m68k/Kconfig
+++ b/arch/m68k/Kconfig
@@ -10,6 +10,7 @@ config M68K
10 select GENERIC_STRNCPY_FROM_USER if MMU 10 select GENERIC_STRNCPY_FROM_USER if MMU
11 select GENERIC_STRNLEN_USER if MMU 11 select GENERIC_STRNLEN_USER if MMU
12 select FPU if MMU 12 select FPU if MMU
13 select ARCH_WANT_IPC_PARSE_VERSION
13 select ARCH_USES_GETTIMEOFFSET if MMU && !COLDFIRE 14 select ARCH_USES_GETTIMEOFFSET if MMU && !COLDFIRE
14 15
15config RWSEM_GENERIC_SPINLOCK 16config RWSEM_GENERIC_SPINLOCK
diff --git a/arch/m68k/include/asm/unistd.h b/arch/m68k/include/asm/unistd.h
index ea0b502f845e..045cfd6a9e31 100644
--- a/arch/m68k/include/asm/unistd.h
+++ b/arch/m68k/include/asm/unistd.h
@@ -357,7 +357,6 @@
357 357
358#define NR_syscalls 347 358#define NR_syscalls 347
359 359
360#define __ARCH_WANT_IPC_PARSE_VERSION
361#define __ARCH_WANT_OLD_READDIR 360#define __ARCH_WANT_OLD_READDIR
362#define __ARCH_WANT_OLD_STAT 361#define __ARCH_WANT_OLD_STAT
363#define __ARCH_WANT_STAT64 362#define __ARCH_WANT_STAT64
diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig
index 0bf44231aaf9..ab9afcaa7f6a 100644
--- a/arch/microblaze/Kconfig
+++ b/arch/microblaze/Kconfig
@@ -15,6 +15,7 @@ config MICROBLAZE
15 select TRACING_SUPPORT 15 select TRACING_SUPPORT
16 select OF 16 select OF
17 select OF_EARLY_FLATTREE 17 select OF_EARLY_FLATTREE
18 select ARCH_WANT_IPC_PARSE_VERSION
18 select IRQ_DOMAIN 19 select IRQ_DOMAIN
19 select HAVE_GENERIC_HARDIRQS 20 select HAVE_GENERIC_HARDIRQS
20 select GENERIC_IRQ_PROBE 21 select GENERIC_IRQ_PROBE
diff --git a/arch/microblaze/include/asm/unistd.h b/arch/microblaze/include/asm/unistd.h
index d20ffbc86beb..6985e6e9d826 100644
--- a/arch/microblaze/include/asm/unistd.h
+++ b/arch/microblaze/include/asm/unistd.h
@@ -400,7 +400,6 @@
400#ifdef __KERNEL__ 400#ifdef __KERNEL__
401#ifndef __ASSEMBLY__ 401#ifndef __ASSEMBLY__
402 402
403#define __ARCH_WANT_IPC_PARSE_VERSION
404/* #define __ARCH_WANT_OLD_READDIR */ 403/* #define __ARCH_WANT_OLD_READDIR */
405/* #define __ARCH_WANT_OLD_STAT */ 404/* #define __ARCH_WANT_OLD_STAT */
406#define __ARCH_WANT_STAT64 405#define __ARCH_WANT_STAT64
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 750429018534..e3efc06e6409 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -20,12 +20,14 @@ config MIPS
20 select ARCH_BINFMT_ELF_RANDOMIZE_PIE 20 select ARCH_BINFMT_ELF_RANDOMIZE_PIE
21 select RTC_LIB if !MACH_LOONGSON 21 select RTC_LIB if !MACH_LOONGSON
22 select GENERIC_ATOMIC64 if !64BIT 22 select GENERIC_ATOMIC64 if !64BIT
23 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
23 select HAVE_DMA_ATTRS 24 select HAVE_DMA_ATTRS
24 select HAVE_DMA_API_DEBUG 25 select HAVE_DMA_API_DEBUG
25 select HAVE_GENERIC_HARDIRQS 26 select HAVE_GENERIC_HARDIRQS
26 select GENERIC_IRQ_PROBE 27 select GENERIC_IRQ_PROBE
27 select GENERIC_IRQ_SHOW 28 select GENERIC_IRQ_SHOW
28 select HAVE_ARCH_JUMP_LABEL 29 select HAVE_ARCH_JUMP_LABEL
30 select ARCH_WANT_IPC_PARSE_VERSION
29 select IRQ_FORCED_THREADING 31 select IRQ_FORCED_THREADING
30 select HAVE_MEMBLOCK 32 select HAVE_MEMBLOCK
31 select HAVE_MEMBLOCK_NODE_MAP 33 select HAVE_MEMBLOCK_NODE_MAP
diff --git a/arch/mips/include/asm/unistd.h b/arch/mips/include/asm/unistd.h
index d8dad5340ea3..bebbde01be92 100644
--- a/arch/mips/include/asm/unistd.h
+++ b/arch/mips/include/asm/unistd.h
@@ -1034,7 +1034,6 @@
1034#ifndef __ASSEMBLY__ 1034#ifndef __ASSEMBLY__
1035 1035
1036#define __ARCH_OMIT_COMPAT_SYS_GETDENTS64 1036#define __ARCH_OMIT_COMPAT_SYS_GETDENTS64
1037#define __ARCH_WANT_IPC_PARSE_VERSION
1038#define __ARCH_WANT_OLD_READDIR 1037#define __ARCH_WANT_OLD_READDIR
1039#define __ARCH_WANT_SYS_ALARM 1038#define __ARCH_WANT_SYS_ALARM
1040#define __ARCH_WANT_SYS_GETHOSTNAME 1039#define __ARCH_WANT_SYS_GETHOSTNAME
diff --git a/arch/mn10300/Kconfig b/arch/mn10300/Kconfig
index 687f9b4a2ed6..5cfb086b3903 100644
--- a/arch/mn10300/Kconfig
+++ b/arch/mn10300/Kconfig
@@ -3,6 +3,7 @@ config MN10300
3 select HAVE_OPROFILE 3 select HAVE_OPROFILE
4 select HAVE_GENERIC_HARDIRQS 4 select HAVE_GENERIC_HARDIRQS
5 select GENERIC_IRQ_SHOW 5 select GENERIC_IRQ_SHOW
6 select ARCH_WANT_IPC_PARSE_VERSION
6 select HAVE_ARCH_TRACEHOOK 7 select HAVE_ARCH_TRACEHOOK
7 select HAVE_ARCH_KGDB 8 select HAVE_ARCH_KGDB
8 select HAVE_NMI_WATCHDOG if MN10300_WD_TIMER 9 select HAVE_NMI_WATCHDOG if MN10300_WD_TIMER
diff --git a/arch/mn10300/include/asm/unistd.h b/arch/mn10300/include/asm/unistd.h
index 9051f921cbc7..866eb14749d7 100644
--- a/arch/mn10300/include/asm/unistd.h
+++ b/arch/mn10300/include/asm/unistd.h
@@ -358,7 +358,6 @@
358/* 358/*
359 * specify the deprecated syscalls we want to support on this arch 359 * specify the deprecated syscalls we want to support on this arch
360 */ 360 */
361#define __ARCH_WANT_IPC_PARSE_VERSION
362#define __ARCH_WANT_OLD_READDIR 361#define __ARCH_WANT_OLD_READDIR
363#define __ARCH_WANT_OLD_STAT 362#define __ARCH_WANT_OLD_STAT
364#define __ARCH_WANT_STAT64 363#define __ARCH_WANT_STAT64
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 9a5d3cdc3e12..352f416269ce 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -115,11 +115,13 @@ config PPC
115 select HAVE_OPROFILE 115 select HAVE_OPROFILE
116 select HAVE_SYSCALL_WRAPPERS if PPC64 116 select HAVE_SYSCALL_WRAPPERS if PPC64
117 select GENERIC_ATOMIC64 if PPC32 117 select GENERIC_ATOMIC64 if PPC32
118 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
118 select HAVE_IRQ_WORK 119 select HAVE_IRQ_WORK
119 select HAVE_PERF_EVENTS 120 select HAVE_PERF_EVENTS
120 select HAVE_REGS_AND_STACK_ACCESS_API 121 select HAVE_REGS_AND_STACK_ACCESS_API
121 select HAVE_HW_BREAKPOINT if PERF_EVENTS && PPC_BOOK3S_64 122 select HAVE_HW_BREAKPOINT if PERF_EVENTS && PPC_BOOK3S_64
122 select HAVE_GENERIC_HARDIRQS 123 select HAVE_GENERIC_HARDIRQS
124 select ARCH_WANT_IPC_PARSE_VERSION
123 select SPARSE_IRQ 125 select SPARSE_IRQ
124 select IRQ_PER_CPU 126 select IRQ_PER_CPU
125 select IRQ_DOMAIN 127 select IRQ_DOMAIN
diff --git a/arch/powerpc/include/asm/unistd.h b/arch/powerpc/include/asm/unistd.h
index d3d1b5efd7eb..bd377a368611 100644
--- a/arch/powerpc/include/asm/unistd.h
+++ b/arch/powerpc/include/asm/unistd.h
@@ -389,7 +389,6 @@
389#include <linux/compiler.h> 389#include <linux/compiler.h>
390#include <linux/linkage.h> 390#include <linux/linkage.h>
391 391
392#define __ARCH_WANT_IPC_PARSE_VERSION
393#define __ARCH_WANT_OLD_READDIR 392#define __ARCH_WANT_OLD_READDIR
394#define __ARCH_WANT_STAT64 393#define __ARCH_WANT_STAT64
395#define __ARCH_WANT_SYS_ALARM 394#define __ARCH_WANT_SYS_ALARM
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index a39b4690c171..296cd32466df 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -85,6 +85,7 @@ config S390
85 select HAVE_ARCH_MUTEX_CPU_RELAX 85 select HAVE_ARCH_MUTEX_CPU_RELAX
86 select HAVE_ARCH_JUMP_LABEL if !MARCH_G5 86 select HAVE_ARCH_JUMP_LABEL if !MARCH_G5
87 select ARCH_SAVE_PAGE_KEYS if HIBERNATION 87 select ARCH_SAVE_PAGE_KEYS if HIBERNATION
88 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
88 select HAVE_MEMBLOCK 89 select HAVE_MEMBLOCK
89 select HAVE_MEMBLOCK_NODE_MAP 90 select HAVE_MEMBLOCK_NODE_MAP
90 select HAVE_CMPXCHG_LOCAL 91 select HAVE_CMPXCHG_LOCAL
@@ -117,6 +118,7 @@ config S390
117 select ARCH_INLINE_WRITE_UNLOCK_BH 118 select ARCH_INLINE_WRITE_UNLOCK_BH
118 select ARCH_INLINE_WRITE_UNLOCK_IRQ 119 select ARCH_INLINE_WRITE_UNLOCK_IRQ
119 select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE 120 select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
121 select ARCH_WANT_IPC_PARSE_VERSION
120 select GENERIC_SMP_IDLE_THREAD 122 select GENERIC_SMP_IDLE_THREAD
121 select GENERIC_TIME_VSYSCALL 123 select GENERIC_TIME_VSYSCALL
122 select GENERIC_CLOCKEVENTS 124 select GENERIC_CLOCKEVENTS
diff --git a/arch/s390/include/asm/unistd.h b/arch/s390/include/asm/unistd.h
index 2e37157ba6a9..6756e78f4808 100644
--- a/arch/s390/include/asm/unistd.h
+++ b/arch/s390/include/asm/unistd.h
@@ -388,7 +388,6 @@
388#define __IGNORE_recvmmsg 388#define __IGNORE_recvmmsg
389#define __IGNORE_sendmmsg 389#define __IGNORE_sendmmsg
390 390
391#define __ARCH_WANT_IPC_PARSE_VERSION
392#define __ARCH_WANT_OLD_READDIR 391#define __ARCH_WANT_OLD_READDIR
393#define __ARCH_WANT_SYS_ALARM 392#define __ARCH_WANT_SYS_ALARM
394#define __ARCH_WANT_SYS_GETHOSTNAME 393#define __ARCH_WANT_SYS_GETHOSTNAME
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index a24595d83ad6..36f5141e8041 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -21,6 +21,7 @@ config SUPERH
21 select HAVE_KERNEL_LZMA 21 select HAVE_KERNEL_LZMA
22 select HAVE_KERNEL_XZ 22 select HAVE_KERNEL_XZ
23 select HAVE_KERNEL_LZO 23 select HAVE_KERNEL_LZO
24 select ARCH_WANT_IPC_PARSE_VERSION
24 select HAVE_SYSCALL_TRACEPOINTS 25 select HAVE_SYSCALL_TRACEPOINTS
25 select HAVE_REGS_AND_STACK_ACCESS_API 26 select HAVE_REGS_AND_STACK_ACCESS_API
26 select HAVE_GENERIC_HARDIRQS 27 select HAVE_GENERIC_HARDIRQS
@@ -50,6 +51,7 @@ config SUPERH32
50 select HAVE_DYNAMIC_FTRACE 51 select HAVE_DYNAMIC_FTRACE
51 select HAVE_FUNCTION_TRACE_MCOUNT_TEST 52 select HAVE_FUNCTION_TRACE_MCOUNT_TEST
52 select HAVE_FTRACE_NMI_ENTER if DYNAMIC_FTRACE 53 select HAVE_FTRACE_NMI_ENTER if DYNAMIC_FTRACE
54 select ARCH_WANT_IPC_PARSE_VERSION
53 select HAVE_FUNCTION_GRAPH_TRACER 55 select HAVE_FUNCTION_GRAPH_TRACER
54 select HAVE_ARCH_KGDB 56 select HAVE_ARCH_KGDB
55 select HAVE_HW_BREAKPOINT 57 select HAVE_HW_BREAKPOINT
diff --git a/arch/sh/include/asm/unistd.h b/arch/sh/include/asm/unistd.h
index e800a38c9f8d..7bc67076baac 100644
--- a/arch/sh/include/asm/unistd.h
+++ b/arch/sh/include/asm/unistd.h
@@ -6,7 +6,6 @@
6# endif 6# endif
7 7
8# define __ARCH_WANT_SYS_RT_SIGSUSPEND 8# define __ARCH_WANT_SYS_RT_SIGSUSPEND
9# define __ARCH_WANT_IPC_PARSE_VERSION
10# define __ARCH_WANT_OLD_READDIR 9# define __ARCH_WANT_OLD_READDIR
11# define __ARCH_WANT_OLD_STAT 10# define __ARCH_WANT_OLD_STAT
12# define __ARCH_WANT_STAT64 11# define __ARCH_WANT_STAT64
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index e74ff1377626..67f1f6f5f4e1 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -27,6 +27,7 @@ config SPARC
27 select HAVE_ARCH_JUMP_LABEL 27 select HAVE_ARCH_JUMP_LABEL
28 select HAVE_GENERIC_HARDIRQS 28 select HAVE_GENERIC_HARDIRQS
29 select GENERIC_IRQ_SHOW 29 select GENERIC_IRQ_SHOW
30 select ARCH_WANT_IPC_PARSE_VERSION
30 select USE_GENERIC_SMP_HELPERS if SMP 31 select USE_GENERIC_SMP_HELPERS if SMP
31 select GENERIC_PCI_IOMAP 32 select GENERIC_PCI_IOMAP
32 select HAVE_NMI_WATCHDOG if SPARC64 33 select HAVE_NMI_WATCHDOG if SPARC64
diff --git a/arch/sparc/include/asm/unistd.h b/arch/sparc/include/asm/unistd.h
index c7cb0af0eb59..fb2693464807 100644
--- a/arch/sparc/include/asm/unistd.h
+++ b/arch/sparc/include/asm/unistd.h
@@ -423,7 +423,6 @@
423#endif 423#endif
424 424
425#ifdef __KERNEL__ 425#ifdef __KERNEL__
426#define __ARCH_WANT_IPC_PARSE_VERSION
427#define __ARCH_WANT_OLD_READDIR 426#define __ARCH_WANT_OLD_READDIR
428#define __ARCH_WANT_STAT64 427#define __ARCH_WANT_STAT64
429#define __ARCH_WANT_SYS_ALARM 428#define __ARCH_WANT_SYS_ALARM
diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc_64.c
index c38e5aaae56f..0dc1f5786081 100644
--- a/arch/sparc/kernel/sys_sparc_64.c
+++ b/arch/sparc/kernel/sys_sparc_64.c
@@ -470,7 +470,7 @@ SYSCALL_DEFINE6(sparc_ipc, unsigned int, call, int, first, unsigned long, second
470 switch (call) { 470 switch (call) {
471 case SHMAT: { 471 case SHMAT: {
472 ulong raddr; 472 ulong raddr;
473 err = do_shmat(first, ptr, (int)second, &raddr); 473 err = do_shmat(first, ptr, (int)second, &raddr, SHMLBA);
474 if (!err) { 474 if (!err) {
475 if (put_user(raddr, 475 if (put_user(raddr,
476 (ulong __user *) third)) 476 (ulong __user *) third))
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index c70684f859e1..ba2657c49217 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -70,6 +70,7 @@ config X86
70 select HAVE_ARCH_JUMP_LABEL 70 select HAVE_ARCH_JUMP_LABEL
71 select HAVE_TEXT_POKE_SMP 71 select HAVE_TEXT_POKE_SMP
72 select HAVE_GENERIC_HARDIRQS 72 select HAVE_GENERIC_HARDIRQS
73 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
73 select SPARSE_IRQ 74 select SPARSE_IRQ
74 select GENERIC_FIND_FIRST_BIT 75 select GENERIC_FIND_FIRST_BIT
75 select GENERIC_IRQ_PROBE 76 select GENERIC_IRQ_PROBE
@@ -84,6 +85,7 @@ config X86
84 select GENERIC_IOMAP 85 select GENERIC_IOMAP
85 select DCACHE_WORD_ACCESS 86 select DCACHE_WORD_ACCESS
86 select GENERIC_SMP_IDLE_THREAD 87 select GENERIC_SMP_IDLE_THREAD
88 select ARCH_WANT_IPC_PARSE_VERSION if X86_32
87 select HAVE_ARCH_SECCOMP_FILTER 89 select HAVE_ARCH_SECCOMP_FILTER
88 select BUILDTIME_EXTABLE_SORT 90 select BUILDTIME_EXTABLE_SORT
89 select GENERIC_CMOS_UPDATE 91 select GENERIC_CMOS_UPDATE
diff --git a/arch/x86/include/asm/unistd.h b/arch/x86/include/asm/unistd.h
index 4437001d8e3d..0d9776e9e2dc 100644
--- a/arch/x86/include/asm/unistd.h
+++ b/arch/x86/include/asm/unistd.h
@@ -15,7 +15,6 @@
15# ifdef CONFIG_X86_32 15# ifdef CONFIG_X86_32
16 16
17# include <asm/unistd_32.h> 17# include <asm/unistd_32.h>
18# define __ARCH_WANT_IPC_PARSE_VERSION
19# define __ARCH_WANT_STAT64 18# define __ARCH_WANT_STAT64
20# define __ARCH_WANT_SYS_IPC 19# define __ARCH_WANT_SYS_IPC
21# define __ARCH_WANT_SYS_OLD_MMAP 20# define __ARCH_WANT_SYS_OLD_MMAP
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
index 41857970517f..ed858e9e9a74 100644
--- a/arch/x86/kernel/e820.c
+++ b/arch/x86/kernel/e820.c
@@ -944,7 +944,7 @@ void __init e820_reserve_resources(void)
944 for (i = 0; i < e820_saved.nr_map; i++) { 944 for (i = 0; i < e820_saved.nr_map; i++) {
945 struct e820entry *entry = &e820_saved.map[i]; 945 struct e820entry *entry = &e820_saved.map[i];
946 firmware_map_add_early(entry->addr, 946 firmware_map_add_early(entry->addr,
947 entry->addr + entry->size - 1, 947 entry->addr + entry->size,
948 e820_type_to_string(entry->type)); 948 e820_type_to_string(entry->type));
949 } 949 }
950} 950}
diff --git a/arch/xtensa/kernel/syscall.c b/arch/xtensa/kernel/syscall.c
index 816e6d0d686c..05b3f093d5d7 100644
--- a/arch/xtensa/kernel/syscall.c
+++ b/arch/xtensa/kernel/syscall.c
@@ -44,7 +44,7 @@ asmlinkage long xtensa_shmat(int shmid, char __user *shmaddr, int shmflg)
44 unsigned long ret; 44 unsigned long ret;
45 long err; 45 long err;
46 46
47 err = do_shmat(shmid, shmaddr, shmflg, &ret); 47 err = do_shmat(shmid, shmaddr, shmflg, &ret, SHMLBA);
48 if (err) 48 if (err)
49 return err; 49 return err;
50 return (long)ret; 50 return (long)ret;
diff --git a/arch/xtensa/mm/fault.c b/arch/xtensa/mm/fault.c
index b17885a0b508..5a74c53bc69c 100644
--- a/arch/xtensa/mm/fault.c
+++ b/arch/xtensa/mm/fault.c
@@ -44,6 +44,7 @@ void do_page_fault(struct pt_regs *regs)
44 44
45 int is_write, is_exec; 45 int is_write, is_exec;
46 int fault; 46 int fault;
47 unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
47 48
48 info.si_code = SEGV_MAPERR; 49 info.si_code = SEGV_MAPERR;
49 50
@@ -71,6 +72,7 @@ void do_page_fault(struct pt_regs *regs)
71 address, exccause, regs->pc, is_write? "w":"", is_exec? "x":""); 72 address, exccause, regs->pc, is_write? "w":"", is_exec? "x":"");
72#endif 73#endif
73 74
75retry:
74 down_read(&mm->mmap_sem); 76 down_read(&mm->mmap_sem);
75 vma = find_vma(mm, address); 77 vma = find_vma(mm, address);
76 78
@@ -93,6 +95,7 @@ good_area:
93 if (is_write) { 95 if (is_write) {
94 if (!(vma->vm_flags & VM_WRITE)) 96 if (!(vma->vm_flags & VM_WRITE))
95 goto bad_area; 97 goto bad_area;
98 flags |= FAULT_FLAG_WRITE;
96 } else if (is_exec) { 99 } else if (is_exec) {
97 if (!(vma->vm_flags & VM_EXEC)) 100 if (!(vma->vm_flags & VM_EXEC))
98 goto bad_area; 101 goto bad_area;
@@ -104,7 +107,11 @@ good_area:
104 * make sure we exit gracefully rather than endlessly redo 107 * make sure we exit gracefully rather than endlessly redo
105 * the fault. 108 * the fault.
106 */ 109 */
107 fault = handle_mm_fault(mm, vma, address, is_write ? FAULT_FLAG_WRITE : 0); 110 fault = handle_mm_fault(mm, vma, address, flags);
111
112 if ((fault & VM_FAULT_RETRY) && fatal_signal_pending(current))
113 return;
114
108 if (unlikely(fault & VM_FAULT_ERROR)) { 115 if (unlikely(fault & VM_FAULT_ERROR)) {
109 if (fault & VM_FAULT_OOM) 116 if (fault & VM_FAULT_OOM)
110 goto out_of_memory; 117 goto out_of_memory;
@@ -112,10 +119,22 @@ good_area:
112 goto do_sigbus; 119 goto do_sigbus;
113 BUG(); 120 BUG();
114 } 121 }
115 if (fault & VM_FAULT_MAJOR) 122 if (flags & FAULT_FLAG_ALLOW_RETRY) {
116 current->maj_flt++; 123 if (fault & VM_FAULT_MAJOR)
117 else 124 current->maj_flt++;
118 current->min_flt++; 125 else
126 current->min_flt++;
127 if (fault & VM_FAULT_RETRY) {
128 flags &= ~FAULT_FLAG_ALLOW_RETRY;
129
130 /* No need to up_read(&mm->mmap_sem) as we would
131 * have already released it in __lock_page_or_retry
132 * in mm/filemap.c.
133 */
134
135 goto retry;
136 }
137 }
119 138
120 up_read(&mm->mmap_sem); 139 up_read(&mm->mmap_sem);
121 return; 140 return;