ipc: use Kconfig options for __ARCH_WANT_[COMPAT_]IPC_PARSE_VERSION
Rather than #define the options manually in the architecture code, add Kconfig options for them and select them there instead. This also allows us to select the compat IPC version parsing automatically for platforms using the old compat IPC interface. Reported-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Will Deacon <will.deacon@arm.com> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Chris Metcalf <cmetcalf@tilera.com> Cc: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
05ba3f1aa1
Коммит
c1d7e01d78
|
@ -248,7 +248,14 @@ config HAVE_CMPXCHG_LOCAL
|
|||
config HAVE_CMPXCHG_DOUBLE
|
||||
bool
|
||||
|
||||
config ARCH_WANT_IPC_PARSE_VERSION
|
||||
bool
|
||||
|
||||
config ARCH_WANT_COMPAT_IPC_PARSE_VERSION
|
||||
bool
|
||||
|
||||
config ARCH_WANT_OLD_COMPAT_IPC
|
||||
select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
|
||||
bool
|
||||
|
||||
config HAVE_ARCH_SECCOMP_FILTER
|
||||
|
|
|
@ -14,6 +14,7 @@ config ALPHA
|
|||
select AUTO_IRQ_AFFINITY if SMP
|
||||
select GENERIC_IRQ_SHOW
|
||||
select ARCH_WANT_OPTIONAL_GPIOLIB
|
||||
select ARCH_WANT_IPC_PARSE_VERSION
|
||||
select ARCH_HAVE_NMI_SAFE_CMPXCHG
|
||||
select GENERIC_SMP_IDLE_THREAD
|
||||
select GENERIC_CMOS_UPDATE
|
||||
|
|
|
@ -470,7 +470,6 @@
|
|||
|
||||
#define NR_SYSCALLS 504
|
||||
|
||||
#define __ARCH_WANT_IPC_PARSE_VERSION
|
||||
#define __ARCH_WANT_OLD_READDIR
|
||||
#define __ARCH_WANT_STAT64
|
||||
#define __ARCH_WANT_SYS_GETHOSTNAME
|
||||
|
|
|
@ -39,6 +39,7 @@ config ARM
|
|||
select GENERIC_IRQ_PROBE
|
||||
select GENERIC_IRQ_SHOW
|
||||
select GENERIC_IRQ_PROBE
|
||||
select ARCH_WANT_IPC_PARSE_VERSION
|
||||
select HARDIRQS_SW_RESEND
|
||||
select CPU_PM if (SUSPEND || CPU_IDLE)
|
||||
select GENERIC_PCI_IOMAP
|
||||
|
|
|
@ -446,7 +446,6 @@
|
|||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#define __ARCH_WANT_IPC_PARSE_VERSION
|
||||
#define __ARCH_WANT_STAT64
|
||||
#define __ARCH_WANT_SYS_GETHOSTNAME
|
||||
#define __ARCH_WANT_SYS_PAUSE
|
||||
|
|
|
@ -12,6 +12,7 @@ config AVR32
|
|||
select HARDIRQS_SW_RESEND
|
||||
select GENERIC_IRQ_SHOW
|
||||
select ARCH_HAVE_CUSTOM_GPIO_H
|
||||
select ARCH_WANT_IPC_PARSE_VERSION
|
||||
select ARCH_HAVE_NMI_SAFE_CMPXCHG
|
||||
select GENERIC_CLOCKEVENTS
|
||||
help
|
||||
|
|
|
@ -318,7 +318,6 @@
|
|||
/* SMP stuff */
|
||||
#define __IGNORE_getcpu
|
||||
|
||||
#define __ARCH_WANT_IPC_PARSE_VERSION
|
||||
#define __ARCH_WANT_STAT64
|
||||
#define __ARCH_WANT_SYS_ALARM
|
||||
#define __ARCH_WANT_SYS_GETHOSTNAME
|
||||
|
|
|
@ -33,6 +33,7 @@ config BLACKFIN
|
|||
select HAVE_PERF_EVENTS
|
||||
select ARCH_HAVE_CUSTOM_GPIO_H
|
||||
select ARCH_WANT_OPTIONAL_GPIOLIB
|
||||
select ARCH_WANT_IPC_PARSE_VERSION
|
||||
select HAVE_GENERIC_HARDIRQS
|
||||
select GENERIC_ATOMIC64
|
||||
select GENERIC_IRQ_PROBE
|
||||
|
|
|
@ -434,7 +434,6 @@
|
|||
#define __IGNORE_getcpu
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#define __ARCH_WANT_IPC_PARSE_VERSION
|
||||
#define __ARCH_WANT_STAT64
|
||||
#define __ARCH_WANT_SYS_ALARM
|
||||
#define __ARCH_WANT_SYS_GETHOSTNAME
|
||||
|
|
|
@ -42,6 +42,7 @@ config CRIS
|
|||
select HAVE_IDE
|
||||
select GENERIC_ATOMIC64
|
||||
select HAVE_GENERIC_HARDIRQS
|
||||
select ARCH_WANT_IPC_PARSE_VERSION
|
||||
select GENERIC_IRQ_SHOW
|
||||
select GENERIC_IOMAP
|
||||
select GENERIC_SMP_IDLE_THREAD if ETRAX_ARCH_V32
|
||||
|
|
|
@ -347,7 +347,6 @@
|
|||
|
||||
#include <arch/unistd.h>
|
||||
|
||||
#define __ARCH_WANT_IPC_PARSE_VERSION
|
||||
#define __ARCH_WANT_OLD_READDIR
|
||||
#define __ARCH_WANT_OLD_STAT
|
||||
#define __ARCH_WANT_STAT64
|
||||
|
|
|
@ -9,6 +9,7 @@ config FRV
|
|||
select GENERIC_IRQ_SHOW
|
||||
select ARCH_HAVE_NMI_SAFE_CMPXCHG
|
||||
select GENERIC_CPU_DEVICES
|
||||
select ARCH_WANT_IPC_PARSE_VERSION
|
||||
|
||||
config ZONE_DMA
|
||||
bool
|
||||
|
|
|
@ -349,7 +349,6 @@
|
|||
|
||||
#define NR_syscalls 338
|
||||
|
||||
#define __ARCH_WANT_IPC_PARSE_VERSION
|
||||
/* #define __ARCH_WANT_OLD_READDIR */
|
||||
#define __ARCH_WANT_OLD_STAT
|
||||
#define __ARCH_WANT_STAT64
|
||||
|
|
|
@ -3,6 +3,7 @@ config H8300
|
|||
default y
|
||||
select HAVE_IDE
|
||||
select HAVE_GENERIC_HARDIRQS
|
||||
select ARCH_WANT_IPC_PARSE_VERSION
|
||||
select GENERIC_IRQ_SHOW
|
||||
select GENERIC_CPU_DEVICES
|
||||
|
||||
|
|
|
@ -331,7 +331,6 @@
|
|||
|
||||
#define NR_syscalls 321
|
||||
|
||||
#define __ARCH_WANT_IPC_PARSE_VERSION
|
||||
#define __ARCH_WANT_OLD_READDIR
|
||||
#define __ARCH_WANT_OLD_STAT
|
||||
#define __ARCH_WANT_STAT64
|
||||
|
|
|
@ -7,6 +7,7 @@ config M32R
|
|||
select HAVE_KERNEL_GZIP
|
||||
select HAVE_KERNEL_BZIP2
|
||||
select HAVE_KERNEL_LZMA
|
||||
select ARCH_WANT_IPC_PARSE_VERSION
|
||||
select HAVE_GENERIC_HARDIRQS
|
||||
select GENERIC_IRQ_PROBE
|
||||
select GENERIC_IRQ_SHOW
|
||||
|
|
|
@ -336,7 +336,6 @@
|
|||
|
||||
#define NR_syscalls 326
|
||||
|
||||
#define __ARCH_WANT_IPC_PARSE_VERSION
|
||||
#define __ARCH_WANT_STAT64
|
||||
#define __ARCH_WANT_SYS_ALARM
|
||||
#define __ARCH_WANT_SYS_GETHOSTNAME
|
||||
|
|
|
@ -10,6 +10,7 @@ config M68K
|
|||
select GENERIC_STRNCPY_FROM_USER if MMU
|
||||
select GENERIC_STRNLEN_USER if MMU
|
||||
select FPU if MMU
|
||||
select ARCH_WANT_IPC_PARSE_VERSION
|
||||
select ARCH_USES_GETTIMEOFFSET if MMU && !COLDFIRE
|
||||
|
||||
config RWSEM_GENERIC_SPINLOCK
|
||||
|
|
|
@ -357,7 +357,6 @@
|
|||
|
||||
#define NR_syscalls 347
|
||||
|
||||
#define __ARCH_WANT_IPC_PARSE_VERSION
|
||||
#define __ARCH_WANT_OLD_READDIR
|
||||
#define __ARCH_WANT_OLD_STAT
|
||||
#define __ARCH_WANT_STAT64
|
||||
|
|
|
@ -15,6 +15,7 @@ config MICROBLAZE
|
|||
select TRACING_SUPPORT
|
||||
select OF
|
||||
select OF_EARLY_FLATTREE
|
||||
select ARCH_WANT_IPC_PARSE_VERSION
|
||||
select IRQ_DOMAIN
|
||||
select HAVE_GENERIC_HARDIRQS
|
||||
select GENERIC_IRQ_PROBE
|
||||
|
|
|
@ -400,7 +400,6 @@
|
|||
#ifdef __KERNEL__
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#define __ARCH_WANT_IPC_PARSE_VERSION
|
||||
/* #define __ARCH_WANT_OLD_READDIR */
|
||||
/* #define __ARCH_WANT_OLD_STAT */
|
||||
#define __ARCH_WANT_STAT64
|
||||
|
|
|
@ -27,6 +27,7 @@ config MIPS
|
|||
select GENERIC_IRQ_PROBE
|
||||
select GENERIC_IRQ_SHOW
|
||||
select HAVE_ARCH_JUMP_LABEL
|
||||
select ARCH_WANT_IPC_PARSE_VERSION
|
||||
select IRQ_FORCED_THREADING
|
||||
select HAVE_MEMBLOCK
|
||||
select HAVE_MEMBLOCK_NODE_MAP
|
||||
|
|
|
@ -1034,7 +1034,6 @@
|
|||
#ifndef __ASSEMBLY__
|
||||
|
||||
#define __ARCH_OMIT_COMPAT_SYS_GETDENTS64
|
||||
#define __ARCH_WANT_IPC_PARSE_VERSION
|
||||
#define __ARCH_WANT_OLD_READDIR
|
||||
#define __ARCH_WANT_SYS_ALARM
|
||||
#define __ARCH_WANT_SYS_GETHOSTNAME
|
||||
|
|
|
@ -3,6 +3,7 @@ config MN10300
|
|||
select HAVE_OPROFILE
|
||||
select HAVE_GENERIC_HARDIRQS
|
||||
select GENERIC_IRQ_SHOW
|
||||
select ARCH_WANT_IPC_PARSE_VERSION
|
||||
select HAVE_ARCH_TRACEHOOK
|
||||
select HAVE_ARCH_KGDB
|
||||
select HAVE_NMI_WATCHDOG if MN10300_WD_TIMER
|
||||
|
|
|
@ -358,7 +358,6 @@
|
|||
/*
|
||||
* specify the deprecated syscalls we want to support on this arch
|
||||
*/
|
||||
#define __ARCH_WANT_IPC_PARSE_VERSION
|
||||
#define __ARCH_WANT_OLD_READDIR
|
||||
#define __ARCH_WANT_OLD_STAT
|
||||
#define __ARCH_WANT_STAT64
|
||||
|
|
|
@ -121,6 +121,7 @@ config PPC
|
|||
select HAVE_REGS_AND_STACK_ACCESS_API
|
||||
select HAVE_HW_BREAKPOINT if PERF_EVENTS && PPC_BOOK3S_64
|
||||
select HAVE_GENERIC_HARDIRQS
|
||||
select ARCH_WANT_IPC_PARSE_VERSION
|
||||
select SPARSE_IRQ
|
||||
select IRQ_PER_CPU
|
||||
select IRQ_DOMAIN
|
||||
|
|
|
@ -389,7 +389,6 @@
|
|||
#include <linux/compiler.h>
|
||||
#include <linux/linkage.h>
|
||||
|
||||
#define __ARCH_WANT_IPC_PARSE_VERSION
|
||||
#define __ARCH_WANT_OLD_READDIR
|
||||
#define __ARCH_WANT_STAT64
|
||||
#define __ARCH_WANT_SYS_ALARM
|
||||
|
|
|
@ -118,6 +118,7 @@ config S390
|
|||
select ARCH_INLINE_WRITE_UNLOCK_BH
|
||||
select ARCH_INLINE_WRITE_UNLOCK_IRQ
|
||||
select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
|
||||
select ARCH_WANT_IPC_PARSE_VERSION
|
||||
select GENERIC_SMP_IDLE_THREAD
|
||||
select GENERIC_TIME_VSYSCALL
|
||||
select GENERIC_CLOCKEVENTS
|
||||
|
|
|
@ -388,7 +388,6 @@
|
|||
#define __IGNORE_recvmmsg
|
||||
#define __IGNORE_sendmmsg
|
||||
|
||||
#define __ARCH_WANT_IPC_PARSE_VERSION
|
||||
#define __ARCH_WANT_OLD_READDIR
|
||||
#define __ARCH_WANT_SYS_ALARM
|
||||
#define __ARCH_WANT_SYS_GETHOSTNAME
|
||||
|
|
|
@ -21,6 +21,7 @@ config SUPERH
|
|||
select HAVE_KERNEL_LZMA
|
||||
select HAVE_KERNEL_XZ
|
||||
select HAVE_KERNEL_LZO
|
||||
select ARCH_WANT_IPC_PARSE_VERSION
|
||||
select HAVE_SYSCALL_TRACEPOINTS
|
||||
select HAVE_REGS_AND_STACK_ACCESS_API
|
||||
select HAVE_GENERIC_HARDIRQS
|
||||
|
@ -50,6 +51,7 @@ config SUPERH32
|
|||
select HAVE_DYNAMIC_FTRACE
|
||||
select HAVE_FUNCTION_TRACE_MCOUNT_TEST
|
||||
select HAVE_FTRACE_NMI_ENTER if DYNAMIC_FTRACE
|
||||
select ARCH_WANT_IPC_PARSE_VERSION
|
||||
select HAVE_FUNCTION_GRAPH_TRACER
|
||||
select HAVE_ARCH_KGDB
|
||||
select HAVE_HW_BREAKPOINT
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
# endif
|
||||
|
||||
# define __ARCH_WANT_SYS_RT_SIGSUSPEND
|
||||
# define __ARCH_WANT_IPC_PARSE_VERSION
|
||||
# define __ARCH_WANT_OLD_READDIR
|
||||
# define __ARCH_WANT_OLD_STAT
|
||||
# define __ARCH_WANT_STAT64
|
||||
|
|
|
@ -27,6 +27,7 @@ config SPARC
|
|||
select HAVE_ARCH_JUMP_LABEL
|
||||
select HAVE_GENERIC_HARDIRQS
|
||||
select GENERIC_IRQ_SHOW
|
||||
select ARCH_WANT_IPC_PARSE_VERSION
|
||||
select USE_GENERIC_SMP_HELPERS if SMP
|
||||
select GENERIC_PCI_IOMAP
|
||||
select HAVE_NMI_WATCHDOG if SPARC64
|
||||
|
|
|
@ -423,7 +423,6 @@
|
|||
#endif
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#define __ARCH_WANT_IPC_PARSE_VERSION
|
||||
#define __ARCH_WANT_OLD_READDIR
|
||||
#define __ARCH_WANT_STAT64
|
||||
#define __ARCH_WANT_SYS_ALARM
|
||||
|
|
|
@ -85,6 +85,7 @@ config X86
|
|||
select GENERIC_IOMAP
|
||||
select DCACHE_WORD_ACCESS
|
||||
select GENERIC_SMP_IDLE_THREAD
|
||||
select ARCH_WANT_IPC_PARSE_VERSION if X86_32
|
||||
select HAVE_ARCH_SECCOMP_FILTER
|
||||
select BUILDTIME_EXTABLE_SORT
|
||||
select GENERIC_CMOS_UPDATE
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
# ifdef CONFIG_X86_32
|
||||
|
||||
# include <asm/unistd_32.h>
|
||||
# define __ARCH_WANT_IPC_PARSE_VERSION
|
||||
# define __ARCH_WANT_STAT64
|
||||
# define __ARCH_WANT_SYS_IPC
|
||||
# define __ARCH_WANT_SYS_OLD_MMAP
|
||||
|
|
|
@ -256,7 +256,6 @@ compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr,
|
|||
compat_size_t __user *len_ptr);
|
||||
|
||||
#ifdef CONFIG_ARCH_WANT_OLD_COMPAT_IPC
|
||||
#define __ARCH_WANT_COMPAT_IPC_PARSE_VERSION
|
||||
long compat_sys_semctl(int first, int second, int third, void __user *uptr);
|
||||
long compat_sys_msgsnd(int first, int second, int third, void __user *uptr);
|
||||
long compat_sys_msgrcv(int first, int second, int msgtyp, int third,
|
||||
|
|
|
@ -118,7 +118,7 @@ extern int sem_ctls[];
|
|||
|
||||
static inline int compat_ipc_parse_version(int *cmd)
|
||||
{
|
||||
#ifdef __ARCH_WANT_COMPAT_IPC_PARSE_VERSION
|
||||
#ifdef CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION
|
||||
int version = *cmd & IPC_64;
|
||||
|
||||
/* this is tricky: architectures that have support for the old
|
||||
|
|
|
@ -804,7 +804,7 @@ out_up:
|
|||
return ERR_PTR(err);
|
||||
}
|
||||
|
||||
#ifdef __ARCH_WANT_IPC_PARSE_VERSION
|
||||
#ifdef CONFIG_ARCH_WANT_IPC_PARSE_VERSION
|
||||
|
||||
|
||||
/**
|
||||
|
@ -826,7 +826,7 @@ int ipc_parse_version (int *cmd)
|
|||
}
|
||||
}
|
||||
|
||||
#endif /* __ARCH_WANT_IPC_PARSE_VERSION */
|
||||
#endif /* CONFIG_ARCH_WANT_IPC_PARSE_VERSION */
|
||||
|
||||
#ifdef CONFIG_PROC_FS
|
||||
struct ipc_proc_iter {
|
||||
|
|
|
@ -130,7 +130,7 @@ struct kern_ipc_perm *ipcctl_pre_down(struct ipc_namespace *ns,
|
|||
struct ipc_ids *ids, int id, int cmd,
|
||||
struct ipc64_perm *perm, int extra_perm);
|
||||
|
||||
#ifndef __ARCH_WANT_IPC_PARSE_VERSION
|
||||
#ifndef CONFIG_ARCH_WANT_IPC_PARSE_VERSION
|
||||
/* On IA-64, we always use the "64-bit version" of the IPC structures. */
|
||||
# define ipc_parse_version(cmd) IPC_64
|
||||
#else
|
||||
|
|
Загрузка…
Ссылка в новой задаче