diff options
Diffstat (limited to 'arch/sparc')
-rw-r--r-- | arch/sparc/include/uapi/asm/unistd.h | 3 | ||||
-rw-r--r-- | arch/sparc/kernel/syscalls.S | 10 | ||||
-rw-r--r-- | arch/sparc/kernel/systbls_32.S | 1 | ||||
-rw-r--r-- | arch/sparc/kernel/systbls_64.S | 2 | ||||
-rw-r--r-- | arch/sparc/mm/init_64.c | 2 |
5 files changed, 16 insertions, 2 deletions
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 | ||
9 | sys64_execveat: | ||
10 | set sys_execveat, %g1 | ||
11 | jmpl %g1, %g0 | ||
12 | flushw | ||
13 | |||
9 | #ifdef CONFIG_COMPAT | 14 | #ifdef CONFIG_COMPAT |
10 | sunos_execv: | 15 | sunos_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 | |||
22 | sys32_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 |
1624 | void kernel_map_pages(struct page *page, int numpages, int enable) | 1624 | void __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); |