aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-12-13 16:00:36 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2014-12-13 16:00:36 -0500
commit78a45c6f067824cf5d0a9fedea7339ac2e28603c (patch)
treeb4f78c8b6b9059ddace0a18c11629b8d2045f793 /arch
parentf96fe225677b3efb74346ebd56fafe3997b02afa (diff)
parent29d293b6007b91a4463f05bc8d0b26e0e65c5816 (diff)
Merge branch 'akpm' (second patch-bomb from Andrew)
Merge second patchbomb from Andrew Morton: - the rest of MM - misc fs fixes - add execveat() syscall - new ratelimit feature for fault-injection - decompressor updates - ipc/ updates - fallocate feature creep - fsnotify cleanups - a few other misc things * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (99 commits) cgroups: Documentation: fix trivial typos and wrong paragraph numberings parisc: percpu: update comments referring to __get_cpu_var percpu: update local_ops.txt to reflect this_cpu operations percpu: remove __get_cpu_var and __raw_get_cpu_var macros fsnotify: remove destroy_list from fsnotify_mark fsnotify: unify inode and mount marks handling fallocate: create FAN_MODIFY and IN_MODIFY events mm/cma: make kmemleak ignore CMA regions slub: fix cpuset check in get_any_partial slab: fix cpuset check in fallback_alloc shmdt: use i_size_read() instead of ->i_size ipc/shm.c: fix overly aggressive shmdt() when calls span multiple segments ipc/msg: increase MSGMNI, remove scaling ipc/sem.c: increase SEMMSL, SEMMNI, SEMOPM ipc/sem.c: change memory barrier in sem_lock() to smp_rmb() lib/decompress.c: consistency of compress formats for kernel image decompress_bunzip2: off by one in get_next_block() usr/Kconfig: make initrd compression algorithm selection not expert fault-inject: add ratelimit option ratelimit: add initialization macro ...
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/Kconfig1
-rw-r--r--arch/arm64/Kconfig1
-rw-r--r--arch/microblaze/Kconfig1
-rw-r--r--arch/parisc/lib/fixup.S4
-rw-r--r--arch/powerpc/Kconfig1
-rw-r--r--arch/powerpc/mm/hash_utils_64.c2
-rw-r--r--arch/powerpc/mm/pgtable_32.c2
-rw-r--r--arch/s390/Kconfig1
-rw-r--r--arch/s390/mm/pageattr.c2
-rw-r--r--arch/sh/Kconfig1
-rw-r--r--arch/sparc/include/uapi/asm/unistd.h3
-rw-r--r--arch/sparc/kernel/syscalls.S10
-rw-r--r--arch/sparc/kernel/systbls_32.S1
-rw-r--r--arch/sparc/kernel/systbls_64.S2
-rw-r--r--arch/sparc/mm/init_64.c2
-rw-r--r--arch/x86/Kconfig1
-rw-r--r--arch/x86/ia32/audit.c1
-rw-r--r--arch/x86/ia32/ia32entry.S1
-rw-r--r--arch/x86/kernel/audit_64.c1
-rw-r--r--arch/x86/kernel/entry_64.S28
-rw-r--r--arch/x86/mm/pageattr.c2
-rw-r--r--arch/x86/syscalls/syscall_32.tbl1
-rw-r--r--arch/x86/syscalls/syscall_64.tbl2
-rw-r--r--arch/x86/um/sys_call_table_64.c1
24 files changed, 64 insertions, 8 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 0bee1fe209b1..97d07ed60a0b 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -5,6 +5,7 @@ config ARM
5 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE 5 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
6 select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST 6 select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
7 select ARCH_HAVE_CUSTOM_GPIO_H 7 select ARCH_HAVE_CUSTOM_GPIO_H
8 select ARCH_HAS_GCOV_PROFILE_ALL
8 select ARCH_MIGHT_HAVE_PC_PARPORT 9 select ARCH_MIGHT_HAVE_PC_PARPORT
9 select ARCH_SUPPORTS_ATOMIC_RMW 10 select ARCH_SUPPORTS_ATOMIC_RMW
10 select ARCH_USE_BUILTIN_BSWAP 11 select ARCH_USE_BUILTIN_BSWAP
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 6b1ebd964c10..688db03ef5b8 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -2,6 +2,7 @@ config ARM64
2 def_bool y 2 def_bool y
3 select ARCH_BINFMT_ELF_RANDOMIZE_PIE 3 select ARCH_BINFMT_ELF_RANDOMIZE_PIE
4 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE 4 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
5 select ARCH_HAS_GCOV_PROFILE_ALL
5 select ARCH_HAS_SG_CHAIN 6 select ARCH_HAS_SG_CHAIN
6 select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST 7 select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
7 select ARCH_USE_CMPXCHG_LOCKREF 8 select ARCH_USE_CMPXCHG_LOCKREF
diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig
index a7736fa0580c..0bce820428fc 100644
--- a/arch/microblaze/Kconfig
+++ b/arch/microblaze/Kconfig
@@ -1,5 +1,6 @@
1config MICROBLAZE 1config MICROBLAZE
2 def_bool y 2 def_bool y
3 select ARCH_HAS_GCOV_PROFILE_ALL
3 select ARCH_MIGHT_HAVE_PC_PARPORT 4 select ARCH_MIGHT_HAVE_PC_PARPORT
4 select ARCH_WANT_IPC_PARSE_VERSION 5 select ARCH_WANT_IPC_PARSE_VERSION
5 select ARCH_WANT_OPTIONAL_GPIOLIB 6 select ARCH_WANT_OPTIONAL_GPIOLIB
diff --git a/arch/parisc/lib/fixup.S b/arch/parisc/lib/fixup.S
index f8c45cc2947d..536ef66bb94b 100644
--- a/arch/parisc/lib/fixup.S
+++ b/arch/parisc/lib/fixup.S
@@ -38,14 +38,14 @@
38 LDREGX \t2(\t1),\t2 38 LDREGX \t2(\t1),\t2
39 addil LT%exception_data,%r27 39 addil LT%exception_data,%r27
40 LDREG RT%exception_data(%r1),\t1 40 LDREG RT%exception_data(%r1),\t1
41 /* t1 = &__get_cpu_var(exception_data) */ 41 /* t1 = this_cpu_ptr(&exception_data) */
42 add,l \t1,\t2,\t1 42 add,l \t1,\t2,\t1
43 /* t1 = t1->fault_ip */ 43 /* t1 = t1->fault_ip */
44 LDREG EXCDATA_IP(\t1), \t1 44 LDREG EXCDATA_IP(\t1), \t1
45 .endm 45 .endm
46#else 46#else
47 .macro get_fault_ip t1 t2 47 .macro get_fault_ip t1 t2
48 /* t1 = &__get_cpu_var(exception_data) */ 48 /* t1 = this_cpu_ptr(&exception_data) */
49 addil LT%exception_data,%r27 49 addil LT%exception_data,%r27
50 LDREG RT%exception_data(%r1),\t2 50 LDREG RT%exception_data(%r1),\t2
51 /* t1 = t2->fault_ip */ 51 /* t1 = t2->fault_ip */
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index af696874248b..a2a168e2dfe7 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -129,6 +129,7 @@ config PPC
129 select HAVE_BPF_JIT if PPC64 129 select HAVE_BPF_JIT if PPC64
130 select HAVE_ARCH_JUMP_LABEL 130 select HAVE_ARCH_JUMP_LABEL
131 select ARCH_HAVE_NMI_SAFE_CMPXCHG 131 select ARCH_HAVE_NMI_SAFE_CMPXCHG
132 select ARCH_HAS_GCOV_PROFILE_ALL
132 select GENERIC_SMP_IDLE_THREAD 133 select GENERIC_SMP_IDLE_THREAD
133 select GENERIC_CMOS_UPDATE 134 select GENERIC_CMOS_UPDATE
134 select GENERIC_TIME_VSYSCALL_OLD 135 select GENERIC_TIME_VSYSCALL_OLD
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c
index e56a307bc676..2c2022d16059 100644
--- a/arch/powerpc/mm/hash_utils_64.c
+++ b/arch/powerpc/mm/hash_utils_64.c
@@ -1514,7 +1514,7 @@ static void kernel_unmap_linear_page(unsigned long vaddr, unsigned long lmi)
1514 mmu_kernel_ssize, 0); 1514 mmu_kernel_ssize, 0);
1515} 1515}
1516 1516
1517void kernel_map_pages(struct page *page, int numpages, int enable) 1517void __kernel_map_pages(struct page *page, int numpages, int enable)
1518{ 1518{
1519 unsigned long flags, vaddr, lmi; 1519 unsigned long flags, vaddr, lmi;
1520 int i; 1520 int i;
diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c
index d545b1231594..50fad3801f30 100644
--- a/arch/powerpc/mm/pgtable_32.c
+++ b/arch/powerpc/mm/pgtable_32.c
@@ -429,7 +429,7 @@ static int change_page_attr(struct page *page, int numpages, pgprot_t prot)
429} 429}
430 430
431 431
432void kernel_map_pages(struct page *page, int numpages, int enable) 432void __kernel_map_pages(struct page *page, int numpages, int enable)
433{ 433{
434 if (PageHighMem(page)) 434 if (PageHighMem(page))
435 return; 435 return;
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index f2cf1f90295b..68b68d755fdf 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -65,6 +65,7 @@ config S390
65 def_bool y 65 def_bool y
66 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE 66 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
67 select ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS 67 select ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
68 select ARCH_HAS_GCOV_PROFILE_ALL
68 select ARCH_HAVE_NMI_SAFE_CMPXCHG 69 select ARCH_HAVE_NMI_SAFE_CMPXCHG
69 select ARCH_INLINE_READ_LOCK 70 select ARCH_INLINE_READ_LOCK
70 select ARCH_INLINE_READ_LOCK_BH 71 select ARCH_INLINE_READ_LOCK_BH
diff --git a/arch/s390/mm/pageattr.c b/arch/s390/mm/pageattr.c
index 3fef3b299665..426c9d462d1c 100644
--- a/arch/s390/mm/pageattr.c
+++ b/arch/s390/mm/pageattr.c
@@ -120,7 +120,7 @@ static void ipte_range(pte_t *pte, unsigned long address, int nr)
120 } 120 }
121} 121}
122 122
123void kernel_map_pages(struct page *page, int numpages, int enable) 123void __kernel_map_pages(struct page *page, int numpages, int enable)
124{ 124{
125 unsigned long address; 125 unsigned long address;
126 int nr, i, j; 126 int nr, i, j;
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index a1403470f80e..c6b6ee5f38b2 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -16,6 +16,7 @@ config SUPERH
16 select HAVE_DEBUG_BUGVERBOSE 16 select HAVE_DEBUG_BUGVERBOSE
17 select ARCH_HAVE_CUSTOM_GPIO_H 17 select ARCH_HAVE_CUSTOM_GPIO_H
18 select ARCH_HAVE_NMI_SAFE_CMPXCHG if (GUSA_RB || CPU_SH4A) 18 select ARCH_HAVE_NMI_SAFE_CMPXCHG if (GUSA_RB || CPU_SH4A)
19 select ARCH_HAS_GCOV_PROFILE_ALL
19 select PERF_USE_VMALLOC 20 select PERF_USE_VMALLOC
20 select HAVE_DEBUG_KMEMLEAK 21 select HAVE_DEBUG_KMEMLEAK
21 select HAVE_KERNEL_GZIP 22 select HAVE_KERNEL_GZIP
diff --git a/arch/sparc/include/uapi/asm/unistd.h b/arch/sparc/include/uapi/asm/unistd.h
index 46d83842eddc..6f35f4df17f2 100644
--- a/arch/sparc/include/uapi/asm/unistd.h
+++ b/arch/sparc/include/uapi/asm/unistd.h
@@ -415,8 +415,9 @@
415#define __NR_getrandom 347 415#define __NR_getrandom 347
416#define __NR_memfd_create 348 416#define __NR_memfd_create 348
417#define __NR_bpf 349 417#define __NR_bpf 349
418#define __NR_execveat 350
418 419
419#define NR_syscalls 350 420#define NR_syscalls 351
420 421
421/* Bitmask values returned from kern_features system call. */ 422/* Bitmask values returned from kern_features system call. */
422#define KERN_FEATURE_MIXED_MODE_STACK 0x00000001 423#define KERN_FEATURE_MIXED_MODE_STACK 0x00000001
diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S
index 33a17e7b3ccd..bb0008927598 100644
--- a/arch/sparc/kernel/syscalls.S
+++ b/arch/sparc/kernel/syscalls.S
@@ -6,6 +6,11 @@ sys64_execve:
6 jmpl %g1, %g0 6 jmpl %g1, %g0
7 flushw 7 flushw
8 8
9sys64_execveat:
10 set sys_execveat, %g1
11 jmpl %g1, %g0
12 flushw
13
9#ifdef CONFIG_COMPAT 14#ifdef CONFIG_COMPAT
10sunos_execv: 15sunos_execv:
11 mov %g0, %o2 16 mov %g0, %o2
@@ -13,6 +18,11 @@ sys32_execve:
13 set compat_sys_execve, %g1 18 set compat_sys_execve, %g1
14 jmpl %g1, %g0 19 jmpl %g1, %g0
15 flushw 20 flushw
21
22sys32_execveat:
23 set compat_sys_execveat, %g1
24 jmpl %g1, %g0
25 flushw
16#endif 26#endif
17 27
18 .align 32 28 .align 32
diff --git a/arch/sparc/kernel/systbls_32.S b/arch/sparc/kernel/systbls_32.S
index ad0cdf497b78..e31a9056a303 100644
--- a/arch/sparc/kernel/systbls_32.S
+++ b/arch/sparc/kernel/systbls_32.S
@@ -87,3 +87,4 @@ sys_call_table:
87/*335*/ .long sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev 87/*335*/ .long sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev
88/*340*/ .long sys_ni_syscall, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr 88/*340*/ .long sys_ni_syscall, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr
89/*345*/ .long sys_renameat2, sys_seccomp, sys_getrandom, sys_memfd_create, sys_bpf 89/*345*/ .long sys_renameat2, sys_seccomp, sys_getrandom, sys_memfd_create, sys_bpf
90/*350*/ .long sys_execveat
diff --git a/arch/sparc/kernel/systbls_64.S b/arch/sparc/kernel/systbls_64.S
index 580cde9370c9..d72f76ae70eb 100644
--- a/arch/sparc/kernel/systbls_64.S
+++ b/arch/sparc/kernel/systbls_64.S
@@ -88,6 +88,7 @@ sys_call_table32:
88 .word sys_syncfs, compat_sys_sendmmsg, sys_setns, compat_sys_process_vm_readv, compat_sys_process_vm_writev 88 .word sys_syncfs, compat_sys_sendmmsg, sys_setns, compat_sys_process_vm_readv, compat_sys_process_vm_writev
89/*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr 89/*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr
90 .word sys32_renameat2, sys_seccomp, sys_getrandom, sys_memfd_create, sys_bpf 90 .word sys32_renameat2, sys_seccomp, sys_getrandom, sys_memfd_create, sys_bpf
91/*350*/ .word sys32_execveat
91 92
92#endif /* CONFIG_COMPAT */ 93#endif /* CONFIG_COMPAT */
93 94
@@ -167,3 +168,4 @@ sys_call_table:
167 .word sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev 168 .word sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev
168/*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr 169/*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr
169 .word sys_renameat2, sys_seccomp, sys_getrandom, sys_memfd_create, sys_bpf 170 .word sys_renameat2, sys_seccomp, sys_getrandom, sys_memfd_create, sys_bpf
171/*350*/ .word sys64_execveat
diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
index 2d91c62f7f5f..3ea267c53320 100644
--- a/arch/sparc/mm/init_64.c
+++ b/arch/sparc/mm/init_64.c
@@ -1621,7 +1621,7 @@ static void __init kernel_physical_mapping_init(void)
1621} 1621}
1622 1622
1623#ifdef CONFIG_DEBUG_PAGEALLOC 1623#ifdef CONFIG_DEBUG_PAGEALLOC
1624void kernel_map_pages(struct page *page, int numpages, int enable) 1624void __kernel_map_pages(struct page *page, int numpages, int enable)
1625{ 1625{
1626 unsigned long phys_start = page_to_pfn(page) << PAGE_SHIFT; 1626 unsigned long phys_start = page_to_pfn(page) << PAGE_SHIFT;
1627 unsigned long phys_end = phys_start + (numpages * PAGE_SIZE); 1627 unsigned long phys_end = phys_start + (numpages * PAGE_SIZE);
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index bea3a0159496..d69f1cd87fd9 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -24,6 +24,7 @@ config X86
24 select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI 24 select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI
25 select ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS 25 select ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
26 select ARCH_HAS_FAST_MULTIPLIER 26 select ARCH_HAS_FAST_MULTIPLIER
27 select ARCH_HAS_GCOV_PROFILE_ALL
27 select ARCH_MIGHT_HAVE_PC_PARPORT 28 select ARCH_MIGHT_HAVE_PC_PARPORT
28 select ARCH_MIGHT_HAVE_PC_SERIO 29 select ARCH_MIGHT_HAVE_PC_SERIO
29 select HAVE_AOUT if X86_32 30 select HAVE_AOUT if X86_32
diff --git a/arch/x86/ia32/audit.c b/arch/x86/ia32/audit.c
index 5d7b381da692..2eccc8932ae6 100644
--- a/arch/x86/ia32/audit.c
+++ b/arch/x86/ia32/audit.c
@@ -35,6 +35,7 @@ int ia32_classify_syscall(unsigned syscall)
35 case __NR_socketcall: 35 case __NR_socketcall:
36 return 4; 36 return 4;
37 case __NR_execve: 37 case __NR_execve:
38 case __NR_execveat:
38 return 5; 39 return 5;
39 default: 40 default:
40 return 1; 41 return 1;
diff --git a/arch/x86/ia32/ia32entry.S b/arch/x86/ia32/ia32entry.S
index ffe71228fc10..82e8a1d44658 100644
--- a/arch/x86/ia32/ia32entry.S
+++ b/arch/x86/ia32/ia32entry.S
@@ -480,6 +480,7 @@ GLOBAL(\label)
480 PTREGSCALL stub32_rt_sigreturn, sys32_rt_sigreturn 480 PTREGSCALL stub32_rt_sigreturn, sys32_rt_sigreturn
481 PTREGSCALL stub32_sigreturn, sys32_sigreturn 481 PTREGSCALL stub32_sigreturn, sys32_sigreturn
482 PTREGSCALL stub32_execve, compat_sys_execve 482 PTREGSCALL stub32_execve, compat_sys_execve
483 PTREGSCALL stub32_execveat, compat_sys_execveat
483 PTREGSCALL stub32_fork, sys_fork 484 PTREGSCALL stub32_fork, sys_fork
484 PTREGSCALL stub32_vfork, sys_vfork 485 PTREGSCALL stub32_vfork, sys_vfork
485 486
diff --git a/arch/x86/kernel/audit_64.c b/arch/x86/kernel/audit_64.c
index 06d3e5a14d9d..f3672508b249 100644
--- a/arch/x86/kernel/audit_64.c
+++ b/arch/x86/kernel/audit_64.c
@@ -50,6 +50,7 @@ int audit_classify_syscall(int abi, unsigned syscall)
50 case __NR_openat: 50 case __NR_openat:
51 return 3; 51 return 3;
52 case __NR_execve: 52 case __NR_execve:
53 case __NR_execveat:
53 return 5; 54 return 5;
54 default: 55 default:
55 return 0; 56 return 0;
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
index c0226ab54106..90878aa38dbd 100644
--- a/arch/x86/kernel/entry_64.S
+++ b/arch/x86/kernel/entry_64.S
@@ -652,6 +652,20 @@ ENTRY(stub_execve)
652 CFI_ENDPROC 652 CFI_ENDPROC
653END(stub_execve) 653END(stub_execve)
654 654
655ENTRY(stub_execveat)
656 CFI_STARTPROC
657 addq $8, %rsp
658 PARTIAL_FRAME 0
659 SAVE_REST
660 FIXUP_TOP_OF_STACK %r11
661 call sys_execveat
662 RESTORE_TOP_OF_STACK %r11
663 movq %rax,RAX(%rsp)
664 RESTORE_REST
665 jmp int_ret_from_sys_call
666 CFI_ENDPROC
667END(stub_execveat)
668
655/* 669/*
656 * sigreturn is special because it needs to restore all registers on return. 670 * sigreturn is special because it needs to restore all registers on return.
657 * This cannot be done with SYSRET, so use the IRET return path instead. 671 * This cannot be done with SYSRET, so use the IRET return path instead.
@@ -697,6 +711,20 @@ ENTRY(stub_x32_execve)
697 CFI_ENDPROC 711 CFI_ENDPROC
698END(stub_x32_execve) 712END(stub_x32_execve)
699 713
714ENTRY(stub_x32_execveat)
715 CFI_STARTPROC
716 addq $8, %rsp
717 PARTIAL_FRAME 0
718 SAVE_REST
719 FIXUP_TOP_OF_STACK %r11
720 call compat_sys_execveat
721 RESTORE_TOP_OF_STACK %r11
722 movq %rax,RAX(%rsp)
723 RESTORE_REST
724 jmp int_ret_from_sys_call
725 CFI_ENDPROC
726END(stub_x32_execveat)
727
700#endif 728#endif
701 729
702/* 730/*
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
index a3a5d46605d2..dfaf2e0f5f8f 100644
--- a/arch/x86/mm/pageattr.c
+++ b/arch/x86/mm/pageattr.c
@@ -1817,7 +1817,7 @@ static int __set_pages_np(struct page *page, int numpages)
1817 return __change_page_attr_set_clr(&cpa, 0); 1817 return __change_page_attr_set_clr(&cpa, 0);
1818} 1818}
1819 1819
1820void kernel_map_pages(struct page *page, int numpages, int enable) 1820void __kernel_map_pages(struct page *page, int numpages, int enable)
1821{ 1821{
1822 if (PageHighMem(page)) 1822 if (PageHighMem(page))
1823 return; 1823 return;
diff --git a/arch/x86/syscalls/syscall_32.tbl b/arch/x86/syscalls/syscall_32.tbl
index 9fe1b5d002f0..b3560ece1c9f 100644
--- a/arch/x86/syscalls/syscall_32.tbl
+++ b/arch/x86/syscalls/syscall_32.tbl
@@ -364,3 +364,4 @@
364355 i386 getrandom sys_getrandom 364355 i386 getrandom sys_getrandom
365356 i386 memfd_create sys_memfd_create 365356 i386 memfd_create sys_memfd_create
366357 i386 bpf sys_bpf 366357 i386 bpf sys_bpf
367358 i386 execveat sys_execveat stub32_execveat
diff --git a/arch/x86/syscalls/syscall_64.tbl b/arch/x86/syscalls/syscall_64.tbl
index 281150b539a2..8d656fbb57aa 100644
--- a/arch/x86/syscalls/syscall_64.tbl
+++ b/arch/x86/syscalls/syscall_64.tbl
@@ -328,6 +328,7 @@
328319 common memfd_create sys_memfd_create 328319 common memfd_create sys_memfd_create
329320 common kexec_file_load sys_kexec_file_load 329320 common kexec_file_load sys_kexec_file_load
330321 common bpf sys_bpf 330321 common bpf sys_bpf
331322 64 execveat stub_execveat
331 332
332# 333#
333# x32-specific system call numbers start at 512 to avoid cache impact 334# x32-specific system call numbers start at 512 to avoid cache impact
@@ -366,3 +367,4 @@
366542 x32 getsockopt compat_sys_getsockopt 367542 x32 getsockopt compat_sys_getsockopt
367543 x32 io_setup compat_sys_io_setup 368543 x32 io_setup compat_sys_io_setup
368544 x32 io_submit compat_sys_io_submit 369544 x32 io_submit compat_sys_io_submit
370545 x32 execveat stub_x32_execveat
diff --git a/arch/x86/um/sys_call_table_64.c b/arch/x86/um/sys_call_table_64.c
index f2f0723070ca..20c3649d0691 100644
--- a/arch/x86/um/sys_call_table_64.c
+++ b/arch/x86/um/sys_call_table_64.c
@@ -31,6 +31,7 @@
31#define stub_fork sys_fork 31#define stub_fork sys_fork
32#define stub_vfork sys_vfork 32#define stub_vfork sys_vfork
33#define stub_execve sys_execve 33#define stub_execve sys_execve
34#define stub_execveat sys_execveat
34#define stub_rt_sigreturn sys_rt_sigreturn 35#define stub_rt_sigreturn sys_rt_sigreturn
35 36
36#define __SYSCALL_COMMON(nr, sym, compat) __SYSCALL_64(nr, sym, compat) 37#define __SYSCALL_COMMON(nr, sym, compat) __SYSCALL_64(nr, sym, compat)