#
4370b673 |
|
28-Mar-2024 |
Jiaxun Yang <jiaxun.yang@flygoat.com> |
MIPS: scall: Save thread_info.syscall unconditionally on entry thread_info.syscall is used by syscall_get_nr to supply syscall nr over a thread stack frame. Previously, thread_info.syscall is only saved at syscall_trace_enter when syscall tracing is enabled. However rest of the kernel code do expect syscall_get_nr to be available without syscall tracing. The previous design breaks collect_syscall. Move saving process to syscall entry to fix it. Reported-by: Xi Ruoyao <xry111@xry111.site> Link: https://github.com/util-linux/util-linux/issues/2867 Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com> Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
|
#
fa62f39d |
|
25-Jan-2022 |
Thomas Bogendoerfer <tsbogend@alpha.franken.de> |
MIPS: Fix build error due to PTR used in more places Use PTR_WD instead of PTR to avoid clashes with other parts. Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
|
#
ecbba30f |
|
01-Mar-2021 |
Masahiro Yamada <masahiroy@kernel.org> |
mips: syscalls: switch to generic syscalltbl.sh Many architectures duplicate similar shell scripts. This commit converts mips to use scripts/syscalltbl.sh. This also unifies syscall_table_32_o32.h and syscall_table_64_o32.h into syscall_table_o32.h. The offset parameters are unneeded here; __SYSCALL(nr, entry) is defined as 'PTR entry', so the parameter 'nr' is not used in the first place. With this commit, syscall tables and generated files are straight mapped, which makes things easier to understand. syscall_n32.tbl --> syscall_table_n32.h syscall_n64.tbl --> syscall_table_n64.h syscall_o32.tbl --> syscall_table_o32.h Then, the abi parameters are also unneeded. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
|
#
da706e50 |
|
07-May-2020 |
Huacai Chen <chenhuacai@kernel.org> |
MIPS: asm: Rename some macros to avoid build errors Use ASM_ prefix to rename some macros (PANIC and PRINT), in order to avoid build errors (all users are updated as well): 1, PANIC conflicts with drivers/scsi/smartpqi/smartpqi_init.c 2, PRINT conflicts with net/netfilter/nf_conntrack_h323_asn1.c and net/ mac80211/debugfs_sta.c Fixes: d339cd02b888eb8 ("MIPS: Move unaligned load/store helpers to inst.h") Reported-by: kbuild test robot <lkp@intel.com> Signed-off-by: Huacai Chen <chenhc@lemote.com> Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
|
#
dc7077f8 |
|
02-Jan-2019 |
Firoz Khan <firoz.khan@linaro.org> |
mips: remove nargs from __SYSCALL The __SYSCALL macro's arguments are system call number, system call entry name and number of arguments for the system call. Argument- nargs in __SYSCALL(nr, entry, nargs) is neither calculated nor used anywhere. So it would be better to keep the implementaion as __SYSCALL(nr, entry). This will unifies the implementation with some other architetures too. Signed-off-by: Firoz Khan <firoz.khan@linaro.org> Signed-off-by: Paul Burton <paul.burton@mips.com> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: James Hogan <jhogan@kernel.org> Cc: linux-mips@vger.kernel.org Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Philippe Ombredanne <pombredanne@nexb.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Kate Stewart <kstewart@linuxfoundation.org> Cc: y2038@lists.linaro.org Cc: linux-kernel@vger.kernel.org Cc: linux-arch@vger.kernel.org Cc: arnd@arndb.de Cc: deepa.kernel@gmail.com Cc: marcin.juszkiewicz@linaro.org
|
#
79b4a9cf |
|
09-Apr-2019 |
Aurelien Jarno <aurelien@aurel32.net> |
MIPS: scall64-o32: Fix indirect syscall number load Commit 4c21b8fd8f14 (MIPS: seccomp: Handle indirect system calls (o32)) added indirect syscall detection for O32 processes running on MIPS64, but it did not work correctly for big endian kernel/processes. The reason is that the syscall number is loaded from ARG1 using the lw instruction while this is a 64-bit value, so zero is loaded instead of the syscall number. Fix the code by using the ld instruction instead. When running a 32-bit processes on a 64 bit CPU, the values are properly sign-extended, so it ensures the value passed to syscall_trace_enter is correct. Recent systemd versions with seccomp enabled whitelist the getpid syscall for their internal processes (e.g. systemd-journald), but call it through syscall(SYS_getpid). This fix therefore allows O32 big endian systems with a 64-bit kernel to run recent systemd versions. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Cc: <stable@vger.kernel.org> # v3.15+ Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Paul Burton <paul.burton@mips.com> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: James Hogan <jhogan@kernel.org> Cc: linux-mips@vger.kernel.org Cc: linux-kernel@vger.kernel.org
|
#
99bf73eb |
|
13-Dec-2018 |
Firoz Khan <firoz.khan@linaro.org> |
mips: generate uapi header and system call table files System call table generation script must be run to gener- ate unistd_(nr_)n64/n32/o32.h and syscall_table_32_o32/ 64_n64/64_n32/64-o32.h files. This patch will have changes which will invokes the script. This patch will generate unistd_(nr_)n64/n32/o32.h and syscall_table_32_o32/64_n64/64-n32/64-o32.h files by the syscall table generation script invoked by parisc/Make- file and the generated files against the removed files must be identical. The generated uapi header file will be included in uapi/- asm/unistd.h and generated system call table header file will be included by kernel/scall32-o32/64-n64/64-n32/- 64-o32.Sfile. Signed-off-by: Firoz Khan <firoz.khan@linaro.org> Signed-off-by: Paul Burton <paul.burton@mips.com> Cc: linux-mips@vger.kernel.org Cc: Ralf Baechle <ralf@linux-mips.org> Cc: James Hogan <jhogan@kernel.org> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Philippe Ombredanne <pombredanne@nexb.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Kate Stewart <kstewart@linuxfoundation.org> Cc: y2038@lists.linaro.org Cc: linux-kernel@vger.kernel.org Cc: linux-arch@vger.kernel.org Cc: arnd@arndb.de Cc: deepa.kernel@gmail.com Cc: marcin.juszkiewicz@linaro.org
|
#
be856439 |
|
13-Dec-2018 |
Firoz Khan <firoz.khan@linaro.org> |
mips: add +1 to __NR_syscalls in uapi header All other architectures are hold a value for __NR_syscalls will be equal to the last system call number +1. But in mips architecture, __NR_syscalls hold the value equal to total number of system exits in the architecture. One of the patch in this patch series will genarate uapi header files. In order to make the implementation common across all architect- ures, add +1 to __NR_syscalls, which will be equal to the last system call number +1. Signed-off-by: Firoz Khan <firoz.khan@linaro.org> Signed-off-by: Paul Burton <paul.burton@mips.com> Cc: linux-mips@vger.kernel.org Cc: Ralf Baechle <ralf@linux-mips.org> Cc: James Hogan <jhogan@kernel.org> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Philippe Ombredanne <pombredanne@nexb.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Kate Stewart <kstewart@linuxfoundation.org> Cc: y2038@lists.linaro.org Cc: linux-kernel@vger.kernel.org Cc: linux-arch@vger.kernel.org Cc: arnd@arndb.de Cc: deepa.kernel@gmail.com Cc: marcin.juszkiewicz@linaro.org
|
#
4337aac1 |
|
14-Jun-2018 |
Paul Burton <paulburton@kernel.org> |
MIPS: Wire up io_pgetevents syscall Wire up the io_pgetevents syscall that was introduced by commit 7a074e96dee6 ("aio: implement io_pgetevents"). Signed-off-by: Paul Burton <paul.burton@mips.com> Patchwork: https://patchwork.linux-mips.org/patch/19593/ Cc: James Hogan <jhogan@kernel.org> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: linux-mips@linux-mips.org
|
#
e426b375 |
|
14-Jun-2018 |
Paul Burton <paulburton@kernel.org> |
MIPS: Wire up the restartable sequences (rseq) syscall Wire up the restartable sequences (rseq) syscall for MIPS. This was introduced by commit d7822b1e24f2 ("rseq: Introduce restartable sequences system call") & MIPS now supports the prerequisites. Signed-off-by: Paul Burton <paul.burton@mips.com> Reviewed-by: James Hogan <jhogan@kernel.org> Patchwork: https://patchwork.linux-mips.org/patch/19525/ Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: Boqun Feng <boqun.feng@gmail.com> Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org
|
#
5af2ed36 |
|
31-Mar-2017 |
James Cowgill <James.Cowgill@imgtec.com> |
MIPS: Remove pt_regs adjustments in indirect syscall handler If a restartable syscall is called using the indirect o32 syscall handler - eg: syscall(__NR_waitid, ...), then it is possible for the incorrect arguments to be passed to the syscall after it has been restarted. This is because the syscall handler tries to shift all the registers down one place in pt_regs so that when the syscall is restarted, the "real" syscall is called instead. Unfortunately it only shifts the arguments passed in registers, not the arguments on the user stack. This causes the 4th argument to be duplicated when the syscall is restarted. Fix by removing all the pt_regs shifting so that the indirect syscall handler is called again when the syscall is restarted. The comment "some syscalls like execve get their arguments from struct pt_regs" is long out of date so this should now be safe. Signed-off-by: James Cowgill <James.Cowgill@imgtec.com> Reviewed-by: James Hogan <james.hogan@imgtec.com> Tested-by: James Hogan <james.hogan@imgtec.com> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/15856/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
49955d84 |
|
31-May-2017 |
James Hogan <jhogan@kernel.org> |
MIPS: Save static registers before sysmips The MIPS sysmips system call handler may return directly from the MIPS_ATOMIC_SET case (mips_atomic_set()) to syscall_exit. This path restores the static (callee saved) registers, however they won't have been saved on entry to the system call. Use the save_static_function() macro to create a __sys_sysmips wrapper function which saves the static registers before calling sys_sysmips, so that the correct static register state is restored by syscall_exit. Fixes: f1e39a4a616c ("MIPS: Rewrite sysmips(MIPS_ATOMIC_SET, ...) in C with inline assembler") Signed-off-by: James Hogan <james.hogan@imgtec.com> Cc: linux-mips@linux-mips.org Cc: stable@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/16149/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
9cb74b5e |
|
03-Mar-2017 |
James Hogan <jhogan@kernel.org> |
MIPS: Wire up statx system call Wire up the statx system call for MIPS, which was introduced in commit a528d35e8bfc ("statx: Add a system call to make enhanced file info available"). Signed-off-by: James Hogan <james.hogan@imgtec.com> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/15387/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
11ed3e0e |
|
12-Oct-2016 |
Ralf Baechle <ralf@linux-mips.org> |
MIPS: Wire up new pkey_{mprotect,alloc,free} syscalls Signed-off-by: Marcin Nowakowski <marcin.nowakowski@imgtec.com> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/14380/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
#
20f06ed9 |
|
27-Jul-2016 |
David Howells <dhowells@redhat.com> |
KEYS: 64-bit MIPS needs to use compat_sys_keyctl for 32-bit userspace MIPS64 needs to use compat_sys_keyctl for 32-bit userspace rather than calling sys_keyctl. The latter will work in a lot of cases, thereby hiding the issue. Reported-by: Stephan Mueller <smueller@chronox.de> Signed-off-by: David Howells <dhowells@redhat.com> cc: stable@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: linux-security-module@vger.kernel.org Cc: keyrings@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/13832/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
a400bed6 |
|
29-Mar-2016 |
Matt Redfearn <matt.redfearn@mips.com> |
MIPS: scall: Handle seccomp filters which redirect syscalls Commit d218af78492a ("MIPS: scall: Always run the seccomp syscall filters") modified the syscall code to always call the seccomp filters, but missed the case where a filter may redirect the syscall, as revealed by the seccomp_bpf self test. The syscall path now restores the syscall from the stack after the filter rather than saving it locally. Syscall number checking and syscall function table lookup is done after the filter may have run such that redirected syscalls are also checked, and executed. The regular path of syscall number checking and pointer lookup is also made more consistent between ABIs with scall64-64.S being the reference. With this patch in place, the seccomp_bpf self test now passes TRACE_syscall.syscall_redirected and TRACE_syscall.syscall_dropped on all MIPS ABIs. Fixes: d218af78492a ("MIPS: scall: Always run the seccomp syscall filters") Signed-off-by: Matt Redfearn <matt.redfearn@imgtec.com> Acked-by: Kees Cook <keescook@chromium.org> Cc: Eric B Munson <emunson@akamai.com> Cc: James Hogan <james.hogan@imgtec.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: linux-mips@linux-mips.org Cc: IMG-MIPSLinuxKerneldevelopers@imgtec.com Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/12916/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
62d8e644 |
|
03-Apr-2016 |
Ralf Baechle <ralf@linux-mips.org> |
MIPS: Wire up preadv2 and pwrite2 syscalls. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
e6c058f9 |
|
05-Feb-2016 |
Ralf Baechle <ralf@linux-mips.org> |
MIPS: Wire up copy_file_range syscall. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
784567f4 |
|
09-Nov-2015 |
Eric B Munson <emunson@akamai.com> |
mips: add entry for new mlock2 syscall A previous commit introduced the new mlock2 syscall, add entries for the MIPS architecture. Signed-off-by: Eric B Munson <emunson@akamai.com> Acked-by: Ralf Baechle <ralf@linux-mips.org> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Guenter Roeck <linux@roeck-us.net> Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Cc: Michael Kerrisk <mtk.manpages@gmail.com> Cc: Michal Hocko <mhocko@suse.cz> Cc: Shuah Khan <shuahkh@osg.samsung.com> Cc: Stephen Rothwell <sfr@canb.auug.org.au> Cc: Vlastimil Babka <vbabka@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
#
d218af78 |
|
25-Sep-2015 |
Markos Chandras <markos.chandras@imgtec.com> |
MIPS: scall: Always run the seccomp syscall filters The MIPS syscall handler code used to return -ENOSYS on invalid syscalls. Whilst this is expected, it caused problems for seccomp filters because the said filters never had the change to run since the code returned -ENOSYS before triggering them. This caused problems on the chromium testsuite for filters looking for invalid syscalls. This has now changed and the seccomp filters are always run even if the syscall is invalid. We return -ENOSYS once we return from the seccomp filters. Moreover, similar codepaths have been merged in the process which simplifies somewhat the overall syscall code. Signed-off-by: Markos Chandras <markos.chandras@imgtec.com> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11236/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
96fc7a9c |
|
30-Sep-2015 |
Ralf Baechle <ralf@linux-mips.org> |
MIPS: Wire up userfaultfd and membarrier syscalls. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
51d53674 |
|
09-Jul-2015 |
Ralf Baechle <ralf@linux-mips.org> |
MIPS: O32: Use compat_sys_getsockopt. We were using the native syscall and that results in subtle breakage. This is the same issue as fixed in 077d0e65618f27b2199d622e12ada6d8f3dbd862 (MIPS: N32: Use compat getsockopt syscall) but that commit did fix it only for N32. Signed-off-by: Ralf Baechle <ralf@linux-mips.org> Link: https://bugzilla.kernel.org/show_bug.cgi?id=100291
|
#
7928eb03 |
|
07-Jul-2015 |
Ralf Baechle <ralf@linux-mips.org> |
MIPS: O32: Do not handle require 32 bytes from the stack to be readable. Commit 46e12c07b3b9603c60fc1d421ff18618241cb081 (MIPS: O32 / 32-bit: Always copy 4 stack arguments.) change the O32 syscall handler to always load four arguments from the userspace stack even for syscalls that require fewer or no arguments to be copied. This removes a large table from kernel space and need to maintain it. It appeared that it was ok the implementation chosen requires 16 bytes of readable stack space above the user stack pointer. Turned out a few threading implementations munmap the user stack before the thread exits resulting in errors due to the unreadable stack. We now treat any failed load as a if the loaded value was zero and let the actual syscall deal with the situation. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
e967ef02 |
|
12-Jan-2015 |
Ed Swierk <eswierk@skyportsystems.com> |
MIPS: Fix restart of indirect syscalls When 32-bit MIPS userspace invokes a syscall indirectly via syscall(number, arg1, ..., arg7), the kernel looks up the actual syscall based on the given number, shifts the other arguments to the left, and jumps to the syscall. If the syscall is interrupted by a signal and indicates it needs to be restarted by the kernel (by returning ERESTARTNOINTR for example), the syscall must be called directly, since the number is no longer the first argument, and the other arguments are now staged for a direct call. Before shifting the arguments, store the syscall number in pt_regs->regs[2]. This gets copied temporarily into pt_regs->regs[0] after the syscall returns. If the syscall needs to be restarted, handle_signal()/do_signal() copies the number back to pt_regs->reg[2], which ends up in $v0 once control returns to userspace. Signed-off-by: Ed Swierk <eswierk@skyportsystems.com> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/8929/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
389cdc5d |
|
16-Dec-2014 |
Ralf Baechle <ralf@linux-mips.org> |
MIPS: Wire up execveat(2). Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
5df4c8db |
|
26-Oct-2014 |
Ralf Baechle <ralf@linux-mips.org> |
MIPS: Wire up bpf syscall. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
42944521 |
|
25-Aug-2014 |
Ralf Baechle <ralf@linux-mips.org> |
MIPS: Wire up new syscalls getrandom and memfd_create. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
ad61ba23 |
|
23-Jul-2014 |
Markos Chandras <markos.chandras@imgtec.com> |
MIPS: scall64-o32: Fix indirect syscall detection Commit 4c21b8fd8f14 (MIPS: seccomp: Handle indirect system calls (o32)) added indirect syscall detection for O32 processes running on MIPS64 but it did not work as expected. The reason is the the scall64-o32 implementation differs compared to scall32-o32. In the former, the v0 (syscall number) register contains the absolute syscall number (4000 + X) whereas in the latter it contains the relative syscall number (X). Fix the code to avoid doing an extra addition, and load the v0 register directly to the first argument for syscall_trace_enter. Moreover, set the .reorder assembler option in order to have better control on this part of the assembly code. Signed-off-by: Markos Chandras <markos.chandras@imgtec.com> Patchwork: http://patchwork.linux-mips.org/patch/7481/ Cc: <stable@vger.kernel.org> # v3.15+ Signed-off-by: James Hogan <james.hogan@imgtec.com>
|
#
52456899 |
|
23-Jul-2014 |
Markos Chandras <markos.chandras@imgtec.com> |
MIPS: scall64-o32: Fix indirect syscall detection Commit 4c21b8fd8f14 (MIPS: seccomp: Handle indirect system calls (o32)) added indirect syscall detection for O32 processes running on MIPS64 but it did not work as expected. The reason is the the scall64-o32 implementation differs compared to scall32-o32. In the former, the v0 (syscall number) register contains the absolute syscall number (4000 + X) whereas in the latter it contains the relative syscall number (X). Fix the code to avoid doing an extra addition, and load the v0 register directly to the first argument for syscall_trace_enter. Moreover, set the .reorder assembler option in order to have better control on this part of the assembly code. Signed-off-by: Markos Chandras <markos.chandras@imgtec.com> Patchwork: http://patchwork.linux-mips.org/patch/7481/ Cc: <stable@vger.kernel.org> # v3.15+ Signed-off-by: James Hogan <james.hogan@imgtec.com>
|
#
1ff1ad6b |
|
25-Jun-2014 |
Huacai Chen <chenhuacai@kernel.org> |
MIPS: Add numa api support Enable sys_mbind()/sys_get_mempolicy()/sys_set_mempolicy() for O32, N32, and N64 ABIs. By the way, O32/N32 should use the compat version of sys_migrate_pages()/sys_move_pages(), so fix that. Signed-off-by: Huacai Chen <chenhc@lemote.com> Cc: John Crispin <john@phrozen.org> Cc: Steven J. Hill <Steven.Hill@imgtec.com> Cc: Aurelien Jarno <aurelien@aurel32.net> Cc: linux-mips@linux-mips.org Cc: Fuxin Zhang <zhangfx@lemote.com> Cc: Zhangjin Wu <wuzhangjin@gmail.com> Patchwork: https://patchwork.linux-mips.org/patch/7186/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
8855d608 |
|
10-Jun-2014 |
Kees Cook <keescook@chromium.org> |
MIPS: add seccomp syscall Wires up the new seccomp syscall. Signed-off-by: Kees Cook <keescook@chromium.org> Reviewed-by: Oleg Nesterov <oleg@redhat.com>
|
#
367f0b50 |
|
13-May-2014 |
Ralf Baechle <ralf@linux-mips.org> |
MIPS: Wire up renameat2 syscall. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
4c21b8fd |
|
22-Jan-2014 |
Markos Chandras <markos.chandras@imgtec.com> |
MIPS: seccomp: Handle indirect system calls (o32) When userland uses syscall() to perform an indirect system call the actually system call that needs to be checked by the filter is on the first argument. The kernel code needs to handle this case by looking at the original syscall number in v0 and if it's NR_syscall, then it needs to examine the first argument to identify the real system call that will be executed. Similarly, we need to 'virtually' shift the syscall() arguments so the syscall_get_arguments() function can fetch the correct arguments for the indirect system call. Signed-off-by: Markos Chandras <markos.chandras@imgtec.com> Reviewed-by: James Hogan <james.hogan@imgtec.com> Reviewed-by: Paul Burton <paul.burton@imgtec.com> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/6404/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
9d37c405 |
|
22-Jan-2014 |
Markos Chandras <markos.chandras@imgtec.com> |
MIPS: kernel: scalls: Skip the syscall if denied by the seccomp filter Signed-off-by: Markos Chandras <markos.chandras@imgtec.com> Reviewed-by: Paul Burton <paul.burton@imgtec.com> Reviewed-by: James Hogan <james.hogan@imgtec.com> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/6399/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
6776254b |
|
03-Feb-2014 |
James Hogan <jhogan@kernel.org> |
MIPS: Wire up sched_setattr/sched_getattr syscalls Wire up for MIPS the new sched_setattr and sched_getattr system calls added in commit d50dde5a10f3 (sched: Add new scheduler syscalls to support an extended scheduling parameters ABI) merged in v3.14-rc1. Signed-off-by: James Hogan <james.hogan@imgtec.com> Reviewed-by: Markos Chandras <markos.chandras@imgtec.com> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/6502/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
2a9c2751 |
|
12-Jul-2012 |
Ralf Baechle <ralf@linux-mips.org> |
MIPS: compat: Export O32 syscall table and rename to avoid duplicate symbol. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
e7f3b48a |
|
28-May-2013 |
Ralf Baechle <ralf@linux-mips.org> |
MIPS: Cleanup flags in syscall flags handlers. This will simplify further modifications. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
91c2e0bc |
|
05-Mar-2013 |
Al Viro <viro@zeniv.linux.org.uk> |
unify compat fanotify_mark(2), switch to COMPAT_SYSCALL_DEFINE Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
56e41d3c |
|
21-Jan-2013 |
Al Viro <viro@zeniv.linux.org.uk> |
merge compat sys_ipc instances Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
d5dc77bf |
|
25-Feb-2013 |
Al Viro <viro@zeniv.linux.org.uk> |
consolidate compat lookup_dcookie() Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
19f4fc3a |
|
24-Feb-2013 |
Al Viro <viro@zeniv.linux.org.uk> |
convert sendfile{,64} to COMPAT_SYSCALL_DEFINE Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
3f6d078d |
|
24-Feb-2013 |
Al Viro <viro@zeniv.linux.org.uk> |
fix compat truncate/ftruncate Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
50150d2b |
|
26-Dec-2012 |
Al Viro <viro@zeniv.linux.org.uk> |
mips: switch to generic sys_fork() and sys_clone() we still need the wrappers to store callee-saved registers in pt_regs, but once that done we can jump to kernel/fork.c variants. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
5e392b8d |
|
25-Dec-2012 |
Al Viro <viro@zeniv.linux.org.uk> |
mips: don't bother with compat_sys_futex() wrappers ... it's COMPAT_SYSCALL_DEFINE now Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
aa584802 |
|
25-Dec-2012 |
Al Viro <viro@zeniv.linux.org.uk> |
mips: switch to generic compat rt_sigaction() Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
0450d22f |
|
25-Dec-2012 |
Al Viro <viro@zeniv.linux.org.uk> |
mips: switch to generic compat sched_rr_get_interval() Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
ea5d83db |
|
25-Dec-2012 |
Al Viro <viro@zeniv.linux.org.uk> |
mips: switch to generic compat rt_sigqueueinfo() Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
45cb66f7 |
|
25-Dec-2012 |
Al Viro <viro@zeniv.linux.org.uk> |
mips: switch to generic compat rt_sigpending() Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
056a0608 |
|
25-Dec-2012 |
Al Viro <viro@zeniv.linux.org.uk> |
mips: switch to generic compat rt_sigprocmask() Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
bde208d2 |
|
24-Nov-2012 |
Al Viro <viro@zeniv.linux.org.uk> |
switch mips to generic rt_sigsuspend(), make it unconditional mips was the last architecture not using the generic variant. Both native and compat variants switched to generic, which is made unconditional now. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
1c37ea82 |
|
23-Dec-2012 |
Al Viro <viro@zeniv.linux.org.uk> |
mips: switch to compat_sys_waitid() Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
ea536ad4 |
|
23-Dec-2012 |
Al Viro <viro@zeniv.linux.org.uk> |
mips: switch to generic sigaltstack Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
70342287 |
|
21-Jan-2013 |
Ralf Baechle <ralf@linux-mips.org> |
MIPS: Whitespace cleanup. Having received another series of whitespace patches I decided to do this once and for all rather than dealing with this kind of patches trickling in forever. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
6295150b |
|
28-Dec-2012 |
Ralf Baechle <ralf@linux-mips.org> |
MIPS: Wire up finit_module syscall. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
baf9ff74 |
|
09-Oct-2012 |
Ralf Baechle <ralf@linux-mips.org> |
MIPS: Switch over to generic sys_execve and kernel_execve. This version contains a few updates by David Daney, in particular it's now using __builtin_frame_address() instead of asm() which depending on personal taste, is slightly more appealing. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
45111b53 |
|
05-May-2012 |
Al Viro <viro@zeniv.linux.org.uk> |
mips: merge the identical "return from syscall" per-ABI code No need to keep 4 copies of that stuff; merged and taken to entry.S, unused public symbols there killed off. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
ce71d24c |
|
14-Sep-2012 |
Ralf Baechle <ralf@linux-mips.org> |
MIPS: Wire kcmp syscall. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
02f884ed |
|
05-May-2012 |
Al Viro <viro@zeniv.linux.org.uk> |
MIPS: Merge the identical "return from syscall" per-ABI code No need to keep 4 copies of that stuff; merged and taken to entry.S, unused public symbols there killed off. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
8ff8584e |
|
08-Nov-2011 |
David Daney <david.daney@cavium.com> |
MIPS: Hook up process_vm_readv and process_vm_writev system calls. Signed-off-by: David Daney <david.daney@cavium.com> To: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/2918/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
1eec6cd0 |
|
15-Aug-2011 |
Yong Zhang <yong.zhang@windriver.com> |
MIPS: Compat: Use 32-bit wrapper for compat_sys_futex. We can't trust userspace to pass signed-extend arguments. Not correctly sign-extended arguments to futex-wait result in architecturally undefined operation of 32-bit arithmetic instructions. For example, if 'val' is too big and bit-31 is 1, the caller may enter endless loop at: futex_wait_setup() { ... if (uval != val) { queue_unlock(q, *hb); ret = -EWOULDBLOCK; ... } Signed-off-by: Yong Zhang <yong.zhang@windriver.com> To: linux-mips@linux-mips.org To: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/2714/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
f5b94099 |
|
26-Aug-2011 |
NeilBrown <neilb@suse.de> |
All Arch: remove linkage for sys_nfsservctl system call The nfsservctl system call is now gone, so we should remove all linkage for it. Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: J. Bruce Fields <bfields@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
#
b12acf16 |
|
28-May-2011 |
Ralf Baechle <ralf@linux-mips.org> |
MIPS: Wire up sendmmsg and renumber setns syscall. Renumbering was necessary because I had already wired up setns(2) in the linux-mips.org tree in commit c3fce54644cabbb90700cc3acc040718a377f609 [MIPS: Wire up new sendmmsg syscall.] but the same syscall numbers were used by 7b21fddd087678a70ad64afc0f632e0f1071b092 [ns: Wire up the setns system call] resulting in a conflict. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
7b21fddd |
|
27-May-2011 |
Eric W. Biederman <ebiederm@xmission.com> |
ns: Wire up the setns system call 32bit and 64bit on x86 are tested and working. The rest I have looked at closely and I can't find any problems. setns is an easy system call to wire up. It just takes two ints so I don't expect any weird architecture porting problems. While doing this I have noticed that we have some architectures that are very slow to get new system calls. cris seems to be the slowest where the last system calls wired up were preadv and pwritev. avr32 is weird in that recvmmsg was wired up but never declared in unistd.h. frv is behind with perf_event_open being the last syscall wired up. On h8300 the last system call wired up was epoll_wait. On m32r the last system call wired up was fallocate. mn10300 has recvmmsg as the last system call wired up. The rest seem to at least have syncfs wired up which was new in the 2.6.39. v2: Most of the architecture support added by Daniel Lezcano <dlezcano@fr.ibm.com> v3: ported to v2.6.36-rc4 by: Eric W. Biederman <ebiederm@xmission.com> v4: Moved wiring up of the system call to another patch v5: ported to v2.6.39-rc6 v6: rebased onto parisc-next and net-next to avoid syscall conflicts. v7: ported to Linus's latest post 2.6.39 tree. > arch/blackfin/include/asm/unistd.h | 3 ++- > arch/blackfin/mach-common/entry.S | 1 + Acked-by: Mike Frysinger <vapier@gentoo.org> Oh - ia64 wiring looks good. Acked-by: Tony Luck <tony.luck@intel.com> Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
#
8b659a39 |
|
19-May-2011 |
Ralf Baechle <ralf@linux-mips.org> |
MIPS: Split do_syscall_trace into two functions. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
8bdd5142 |
|
13-Apr-2011 |
Ralf Baechle <ralf@linux-mips.org> |
MIPS: Document former use of timerfd(2) syscall number. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
1bbf2875 |
|
25-Mar-2011 |
Ralf Baechle <ralf@linux-mips.org> |
MIPS: Wire up syncfs(2). Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
84ed9432 |
|
18-Mar-2011 |
David Daney <ddaney@caviumnetworks.com> |
MIPS: Hook up name_to_handle_at, open_by_handle_at and clock_adjtime syscalls. These system calls we recently added. 32-bit ABIs need compat handling for sys_clock_adjtime(). o32 also needs compat handling for sys_open_by_handle_at(); Signed-off-by: David Daney <ddaney@caviumnetworks.com> To: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/2165/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
e2cc502c |
|
28-Sep-2010 |
Michel Thebeau <michel.thebeau@windriver.com> |
MIPS: O32 compat/N32: Fix to use compat syscall wrappers for AIO syscalls. [Ralf: Michel's original patch only fixed N32; I replicated the same fix for O32.] Signed-off-by: Michel Thebeau <michel.thebeau@windriver.com> Cc: paul.gortmaker@windriver.com Cc: bruce.ashfield@windriver.com Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
5b89c004 |
|
28-Sep-2010 |
Al Viro <viro@ftp.linux.org.uk> |
MIPS: Fix error values in case of bad_stack We want EFAULT, not -<syscall number> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Cc: linux-kernel@vger.kernel.org Cc: linux-arch@vger.kernel.org Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/1699/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
8f5a00eb |
|
28-Sep-2010 |
Al Viro <viro@ftp.linux.org.uk> |
MIPS: Sanitize restart logics Put the original syscall number into ->regs[0] when we leave syscall with error. Use it in restart logics. Everything else will have it 0 since we pass through SAVE_SOME on all the ways in. Note that in places like bad_stack and inllegal_syscall we leave it 0 - it's not restartable. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Cc: linux-kernel@vger.kernel.org Cc: linux-arch@vger.kernel.org Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/1698/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
5e844b31 |
|
23-Aug-2010 |
David Daney <ddaney@caviumnetworks.com> |
MIPS: Hookup fanotify_init, fanotify_mark, and prlimit64 syscalls. Signed-off-by: David Daney <ddaney@caviumnetworks.com> To: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/1553/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
e28cbf22 |
|
10-Mar-2010 |
Christoph Hellwig <hch@lst.de> |
improve sys_newuname() for compat architectures On an architecture that supports 32-bit compat we need to override the reported machine in uname with the 32-bit value. Instead of doing this separately in every architecture introduce a COMPAT_UTS_MACHINE define in <asm/compat.h> and apply it directly in sys_newuname(). Signed-off-by: Christoph Hellwig <hch@lst.de> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mundt <lethal@linux-sh.org> Cc: Jeff Dike <jdike@addtoit.com> Cc: Hirokazu Takata <takata@linux-m32r.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@elte.hu> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: "Luck, Tony" <tony.luck@intel.com> Cc: James Morris <jmorris@namei.org> Cc: Andreas Schwab <schwab@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
#
aff639cd |
|
03-Apr-2009 |
Eric W. Biederman <ebiederm@xmission.com> |
sysctl: mips Use the compat_sys_sysctl Now that we have a generic 32bit compatibility implementation there is no need for mips to implement it's own. Cc: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
|
#
049a31af |
|
20-Oct-2009 |
Arnaud Patard <apatard@mandriva.com> |
MIPS: O32: Fix ppoll sys_ppoll syscall needs to use a compat handler on 64bit kernels with o32 user-space. Signed-off-by: Arnaud Patard <apatard@mandriva.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
80b8585b |
|
10-Oct-2009 |
Wu Zhangjin <wuzhangjin@gmail.com> |
MIPS: 64-bit: Fix o32 lookup_dcookie syscall An o32 aplication passes a 64-bit value in a pair of registers; a 64-bit kernel expects a 64-bit argument in a single register. Signed-off-by: Chen Jie <chenj@lemote.com> Signed-off-by: Hu Hongbing <huhb@lemote.com> Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
a2e27255 |
|
13-Oct-2009 |
Arnaldo Carvalho de Melo <acme@redhat.com> |
net: Introduce recvmmsg socket syscall Meaning receive multiple messages, reducing the number of syscalls and net stack entry/exit operations. Next patches will introduce mechanisms where protocols that want to optimize this operation will provide an unlocked_recvmsg operation. This takes into account comments made by: . Paul Moore: sock_recvmsg is called only for the first datagram, sock_recvmsg_nosec is used for the rest. . Caitlin Bestler: recvmmsg now has a struct timespec timeout, that works in the same fashion as the ppoll one. If the underlying protocol returns a datagram with MSG_OOB set, this will make recvmmsg return right away with as many datagrams (+ the OOB one) it has received so far. . Rémi Denis-Courmont & Steven Whitehouse: If we receive N < vlen datagrams and then recvmsg returns an error, recvmmsg will return the successfully received datagrams, store the error and return it in the next call. This paves the way for a subsequent optimization, sk_prot->unlocked_recvmsg, where we will be able to acquire the lock only at batch start and end, not at every underlying recvmsg call. Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|
#
cdd6c482 |
|
20-Sep-2009 |
Ingo Molnar <mingo@elte.hu> |
perf: Do the big rename: Performance Counters -> Performance Events Bye-bye Performance Counters, welcome Performance Events! In the past few months the perfcounters subsystem has grown out its initial role of counting hardware events, and has become (and is becoming) a much broader generic event enumeration, reporting, logging, monitoring, analysis facility. Naming its core object 'perf_counter' and naming the subsystem 'perfcounters' has become more and more of a misnomer. With pending code like hw-breakpoints support the 'counter' name is less and less appropriate. All in one, we've decided to rename the subsystem to 'performance events' and to propagate this rename through all fields, variables and API names. (in an ABI compatible fashion) The word 'event' is also a bit shorter than 'counter' - which makes it slightly more convenient to write/handle as well. Thanks goes to Stephane Eranian who first observed this misnomer and suggested a rename. User-space tooling and ABI compatibility is not affected - this patch should be function-invariant. (Also, defconfigs were not touched to keep the size down.) This patch has been generated via the following script: FILES=$(find * -type f | grep -vE 'oprofile|[^K]config') sed -i \ -e 's/PERF_EVENT_/PERF_RECORD_/g' \ -e 's/PERF_COUNTER/PERF_EVENT/g' \ -e 's/perf_counter/perf_event/g' \ -e 's/nb_counters/nb_events/g' \ -e 's/swcounter/swevent/g' \ -e 's/tpcounter_event/tp_event/g' \ $FILES for N in $(find . -name perf_counter.[ch]); do M=$(echo $N | sed 's/perf_counter/perf_event/g') mv $N $M done FILES=$(find . -name perf_event.*) sed -i \ -e 's/COUNTER_MASK/REG_MASK/g' \ -e 's/COUNTER/EVENT/g' \ -e 's/\<event\>/event_id/g' \ -e 's/counter/event/g' \ -e 's/Counter/Event/g' \ $FILES ... to keep it as correct as possible. This script can also be used by anyone who has pending perfcounters patches - it converts a Linux kernel tree over to the new naming. We tried to time this change to the point in time where the amount of pending patches is the smallest: the end of the merge window. Namespace clashes were fixed up in a preparatory patch - and some stylistic fallout will be fixed up in a subsequent patch. ( NOTE: 'counters' are still the proper terminology when we deal with hardware registers - and these sed scripts are a bit over-eager in renaming them. I've undone some of that, but in case there's something left where 'counter' would be better than 'event' we can undo that on an individual basis instead of touching an otherwise nicely automated patch. ) Suggested-by: Stephane Eranian <eranian@google.com> Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Acked-by: Paul Mackerras <paulus@samba.org> Reviewed-by: Arjan van de Ven <arjan@linux.intel.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: David Howells <dhowells@redhat.com> Cc: Kyle McMartin <kyle@mcmartin.ca> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: <linux-arch@vger.kernel.org> LKML-Reference: <new-submission> Signed-off-by: Ingo Molnar <mingo@elte.hu>
|
#
54822de7 |
|
03-Aug-2009 |
Ralf Baechle <ralf@linux-mips.org> |
MIPS: Wire up accept4 syscall. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
1dacc76d |
|
01-Jul-2009 |
Johannes Berg <johannes@sipsolutions.net> |
net/compat/wext: send different messages to compat tasks Wireless extensions have the unfortunate problem that events are multicast netlink messages, and are not independent of pointer size. Thus, currently 32-bit tasks on 64-bit platforms cannot properly receive events and fail with all kinds of strange problems, for instance wpa_supplicant never notices disassociations, due to the way the 64-bit event looks (to a 32-bit process), the fact that the address is all zeroes is lost, it thinks instead it is 00:00:00:00:01:00. The same problem existed with the ioctls, until David Miller fixed those some time ago in an heroic effort. A different problem caused by this is that we cannot send the ASSOCREQIE/ASSOCRESPIE events because sending them causes a 32-bit wpa_supplicant on a 64-bit system to overwrite its internal information, which is worse than it not getting the information at all -- so we currently resort to sending a custom string event that it then parses. This, however, has a severe size limitation we are frequently hitting with modern access points; this limitation would can be lifted after this patch by sending the correct binary, not custom, event. A similar problem apparently happens for some other netlink users on x86_64 with 32-bit tasks due to the alignment for 64-bit quantities. In order to fix these problems, I have implemented a way to send compat messages to tasks. When sending an event, we send the non-compat event data together with a compat event data in skb_shinfo(main_skb)->frag_list. Then, when the event is read from the socket, the netlink code makes sure to pass out only the skb that is compatible with the task. This approach was suggested by David Miller, my original approach required always sending two skbs but that had various small problems. To determine whether compat is needed or not, I have used the MSG_CMSG_COMPAT flag, and adjusted the call path for recv and recvfrom to include it, even if those calls do not have a cmsg parameter. I have not solved one small part of the problem, and I don't think it is necessary to: if a 32-bit application uses read() rather than any form of recvmsg() it will still get the wrong (64-bit) event. However, neither do applications actually do this, nor would it be a regression. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: David S. Miller <davem@davemloft.net>
|
#
69f16c9a |
|
26-Jun-2009 |
David Daney <ddaney@caviumnetworks.com> |
MIPS: Hookup new syscalls sys_rt_tgsigqueueinfo and sys_perf_counter_open. [Ralf: I fixed up the numbering in the comment in scall64-n32.S.] Signed-off-by: David Daney <ddaney@caviumnetworks.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
c7d16736 |
|
16-Apr-2009 |
David Daney <ddaney@caviumnetworks.com> |
MIPS: Compat: Use generic 32-bit wrapers for sys_timerfd_{g,s}ettime The LTP timerfd01 test is failing (blocking forever) on the 32-bit ABIs. We need to use the compat_* wrappers for these system calls. Signed-off-by: David Daney <ddaney@caviumnetworks.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
ddd9e91b |
|
02-Apr-2009 |
Ralf Baechle <ralf@linux-mips.org> |
preadv/pwritev: MIPS: Add preadv(2) and pwritev(2) syscalls. Signed-off-by: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: <linux-api@vger.kernel.org> Cc: <linux-arch@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
#
2b1c6bd7 |
|
28-Nov-2008 |
Christoph Hellwig <hch@lst.de> |
generic compat_sys_ustat Due to a different size of ino_t ustat needs a compat handler, but currently only x86 and mips provide one. Add a generic compat_sys_ustat and switch all architectures over to it. Instead of doing various user copy hacks compat_sys_ustat just reimplements sys_ustat as it's trivial. This was suggested by Arnd Bergmann. Found by Eric Sandeen when running xfstests/017 on ppc64, which causes stack smashing warnings on RHEL/Fedora due to the too large amount of data writen by the syscall. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
dbda6ac0 |
|
08-Feb-2009 |
Ralf Baechle <ralf@linux-mips.org> |
MIPS: CVE-2009-0029: Enable syscall wrappers. Thanks to David Daney helping with debugging and testing. Signed-off-by: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: David Daney <ddaney@caviumnetworks.com>
|
#
c6cb4df9 |
|
31-Oct-2008 |
David Daney <ddaney@caviumnetworks.com> |
MIPS: Return ENOSYS from sys32_syscall on 64bit kernels like elsewhere. When the o32 errno was changed to ENOSYS, we forgot to update the code for 64bit kernels. Signed-off-by: David Daney <ddaney@caviumnetworks.com> Acked-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
8d13cb26 |
|
03-Dec-2008 |
Ralf Baechle <ralf@linux-mips.org> |
MIPS: 64-bit: vmsplice needs to use the compat wrapper for o32 and N32. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
e807f957 |
|
18-Nov-2008 |
Vlad Malov <Vlad.Malov@caviumnetworks.com> |
MIPS: Fix potential DOS by untrusted user app. On a 64 bit kernel if an o32 syscall was made with a syscall number less than 4000, we would read the function from outside of the bounds of the syscall table. This led to non-deterministic behavior including system crashes. While we were at it we reworked the 32 bit version as well to use fewer instructions. Both 32 and 64 bit versions are use the same code now. Signed-off-by: Vlad Malov <Vlad.Malov@caviumnetworks.com> Signed-off-by: David Daney <ddaney@caviumnetworks.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
b418da16 |
|
15-Oct-2008 |
Christoph Hellwig <hch@lst.de> |
compat: generic compat get/settimeofday Nothing arch specific in get/settimeofday. The details of the timeval conversion varied a little from arch to arch, but all with the same results. Also add an extern declaration for sys_tz to linux/time.h because externs in .c files are fowned upon. I'll kill the externs in various other files in a sparate patch. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Christoph Hellwig <hch@lst.de> Acked-by: David S. Miller <davem@davemloft.net> [ sparc bits ] Cc: "Luck, Tony" <tony.luck@intel.com> Cc: Ralf Baechle <ralf@linux-mips.org> Acked-by: Kyle McMartin <kyle@mcmartin.ca> Cc: Matthew Wilcox <matthew@wil.cx> Cc: Grant Grundler <grundler@parisc-linux.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: "H. Peter Anvin" <hpa@zytor.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
#
5d9a76cd |
|
17-Aug-2008 |
Thomas Bogendoerfer <tsbogend@alpha.franken.de> |
MIPS: Use compat_sys_ptrace This replaces mips's sys_ptrace32 with a compat_arch_ptrace and enables the new generic definition of compat_sys_ptrace instead. Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
3885b71b |
|
31-Jul-2008 |
Ralf Baechle <ralf@linux-mips.org> |
[MIPS] Wire up new syscalls. signalfd4, eventfd2, epoll_create1, dup3, pipe2 and inotify_init1. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
8213bbf9 |
|
20-Jul-2008 |
Ralf Baechle <ralf@linux-mips.org> |
[MIPS] Rename MIPS sys_pipe syscall entry point to something MIPS-specific. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
6783fe62 |
|
18-Feb-2008 |
Dmitri Vorobiev <dmitri.vorobiev@gmail.com> |
[MIPS] Wire up the timerfd_*() o32 system calls This patch enables the system calls timerfd_create(), timerfd_settime() and timerfd_gettime() for MIPS architecture. Please see the following Bugzilla entry for more details: http://bugzilla.kernel.org/show_bug.cgi?id=10038 This was tested using a Malta 4Kc board in both little-endian and big-endian modes. The unit test program is available from the URL above. Signed-off-by: Dmitri Vorobiev <dmitri.vorobiev@gmail.com> [Ralf: Added N64, N32 and O32 bits on 64-bit kernels.] Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
4d672e7a |
|
04-Feb-2008 |
Davide Libenzi <davidel@xmailserver.org> |
timerfd: new timerfd API This is the new timerfd API as it is implemented by the following patch: int timerfd_create(int clockid, int flags); int timerfd_settime(int ufd, int flags, const struct itimerspec *utmr, struct itimerspec *otmr); int timerfd_gettime(int ufd, struct itimerspec *otmr); The timerfd_create() API creates an un-programmed timerfd fd. The "clockid" parameter can be either CLOCK_MONOTONIC or CLOCK_REALTIME. The timerfd_settime() API give new settings by the timerfd fd, by optionally retrieving the previous expiration time (in case the "otmr" parameter is not NULL). The time value specified in "utmr" is absolute, if the TFD_TIMER_ABSTIME bit is set in the "flags" parameter. Otherwise it's a relative time. The timerfd_gettime() API returns the next expiration time of the timer, or {0, 0} if the timerfd has not been set yet. Like the previous timerfd API implementation, read(2) and poll(2) are supported (with the same interface). Here's a simple test program I used to exercise the new timerfd APIs: http://www.xmailserver.org/timerfd-test2.c [akpm@linux-foundation.org: coding-style cleanups] [akpm@linux-foundation.org: fix ia64 build] [akpm@linux-foundation.org: fix m68k build] [akpm@linux-foundation.org: fix mips build] [akpm@linux-foundation.org: fix alpha, arm, blackfin, cris, m68k, s390, sparc and sparc64 builds] [heiko.carstens@de.ibm.com: fix s390] [akpm@linux-foundation.org: fix powerpc build] [akpm@linux-foundation.org: fix sparc64 more] Signed-off-by: Davide Libenzi <davidel@xmailserver.org> Cc: Michael Kerrisk <mtk-manpages@gmx.net> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Davide Libenzi <davidel@xmailserver.org> Cc: Michael Kerrisk <mtk-manpages@gmx.net> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Michael Kerrisk <mtk.manpages@gmail.com> Cc: Davide Libenzi <davidel@xmailserver.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
#
422efb17 |
|
28-Sep-2007 |
Kyle McMartin <kyle@mcmartin.ca> |
[MIPS] Fix fallocate on o32 binary compat ABI MIPS was mistakenly forgetting to use the fallocate compat wrapper, which I noticed while cleaning up all the duplicate fallocate wrappers. Signed-off-by: Kyle McMartin <kyle@mcmartin.ca> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
4dc46775 |
|
25-Jul-2007 |
Ralf Baechle <ralf@linux-mips.org> |
[MIPS] Wire up the fallocate syscall. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
7a6d4f38 |
|
29-May-2007 |
Atsushi Nemoto <anemo@mba.ocn.ne.jp> |
[MIPS] Wire up utimensat, signalfd, timerfd, eventfd Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
8676d2e0 |
|
17-May-2007 |
Atsushi Nemoto <anemo@mba.ocn.ne.jp> |
[MIPS] Fix some system calls with long long arguments * O32 fadvise64() pass long long arguments by register pairs. Add sys32 version for 64 bit kernel. * N32 readahead() can pass a long long argument by one register. No need to use sys32_readahead. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
08253b39 |
|
06-Mar-2007 |
Ralf Baechle <ralf@linux-mips.org> |
[MIPS] Wire up ioprio_set and ioprio_get. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
821d313c |
|
26-Feb-2007 |
Ralf Baechle <ralf@linux-mips.org> |
[MIPS] Replace sys32_timer_create with the generic compat_sys_timer_create. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
08274cef |
|
26-Feb-2007 |
Ralf Baechle <ralf@linux-mips.org> |
[MIPS] Replace sys32_socketcall with the generic compat_sys_socketcall. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
e016c38d |
|
24-Feb-2007 |
Ralf Baechle <ralf@linux-mips.org> |
[MIPS] Fix foobar in wiring up compat_sys_epoll_pwait syscall. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
d4d23add |
|
10-Feb-2007 |
Kyle McMartin <kyle@parisc-linux.org> |
[PATCH] Common compat_sys_sysinfo I noticed that almost all architectures implemented exactly the same sys32_sysinfo... except parisc, where a bug was to be found in handling of the uptime. So let's remove a whole whack of code for fun and profit. Cribbed compat_sys_sysinfo from x86_64's implementation, since I figured it would be the best tested. This patch incorporates Arnd's suggestion of not using set_fs/get_fs, but instead extracting out the common code from sys_sysinfo. Cc: Christoph Hellwig <hch@infradead.org> Cc: <linux-arch@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
#
99d233fa |
|
09-Jan-2007 |
Joseph S. Myers <joseph@codesourcery.com> |
[MIPS] Use compat_sys_pselect6 The N32 and O32 pselect6 syscalls need to use compat_sys_pselect6 to translate arguments from 32-bit to 64-bit layout. Signed-off-by: Joseph Myers <joseph@codesourcery.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
583bb86f |
|
18-Oct-2006 |
Nicolas Schichan <nschichan@freebox.fr> |
[MIPS] Add support for kexec A tiny userland application loading the kernel and invoking kexec_load for mips is available here: http://chac.le-poulpe.net/~nico/kexec/kexec-2006-10-18.tar.gz Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
991ea26d |
|
29-Oct-2006 |
Ralf Baechle <ralf@linux-mips.org> |
[MIPS] Wire up getcpu(2) and epoll_wait(2) syscalls. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
d2bcf87d |
|
18-Oct-2006 |
Ralf Baechle <ralf@linux-mips.org> |
[MIPS] Reserve syscall numbers for kexec_load. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
089c7e7f |
|
16-Oct-2006 |
Ralf Baechle <ralf@linux-mips.org> |
[MIPS] Use compat_sys_mount. This fixes mount problems with smbfs, ncpfs and NFSv4. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
eae6c0da |
|
26-Sep-2006 |
Atsushi Nemoto <anemo@mba.ocn.ne.jp> |
[MIPS] lockdep: fix TRACE_IRQFLAGS_SUPPORT In handle_sys and its variants, we must reload some registers which might be clobbered by trace_hardirqs_on(). Also we must make sure trace_hardirqs_on() called in kernel level (not exception level). Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
63415dbb |
|
17-Sep-2006 |
Richard Sandiford <richard@codesourcery.com> |
[MIPS] The o32 fstatat syscall behaves differently on 32 and 64 bit kernels While working on a glibc patch to support the fstatat() functions[1], I noticed that the o32 implementation behaves differently on 32-bit and 64-bit kernels; the former provides a stat64 while the latter provides a plain (o32) stat. I think the former is what's intended, as there is no separate fstatat64. It's also what x86 does. I think this is just a case of a compat too far. [1] I've seen Khem's patch, but I don't think it's right. Signed-off-by: Richard Sandiford <richard@codesourcery.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
7fdeb048 |
|
06-Sep-2006 |
Atsushi Nemoto <anemo@mba.ocn.ne.jp> |
[MIPS] Wire up set_robust_list(2) and get_robust_list(2) Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
192ef366 |
|
07-Jul-2006 |
Ralf Baechle <ralf@linux-mips.org> |
[MIPS] TRACE_IRQFLAGS_SUPPORT support. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
722cfd90 |
|
02-Jul-2006 |
Ralf Baechle <ralf@linux-mips.org> |
[MIPS] Wire up vmsplice(2) and move_pages(2). Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
6ab3d562 |
|
30-Jun-2006 |
Jörn Engel <joern@wohnheim.fh-wedel.de> |
Remove obsolete #include <linux/config.h> Signed-off-by: Jörn Engel <joern@wohnheim.fh-wedel.de> Signed-off-by: Adrian Bunk <bunk@stusta.de>
|
#
136d47d3 |
|
15-Apr-2006 |
Ralf Baechle <ralf@linux-mips.org> |
[MIPS] Wire up tee(2). Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
7155262e |
|
28-May-2006 |
Thiemo Seufer <ths@networkno.de> |
[MIPS] open() forces O_LARGEFILE for o32 on 64bit kernels open() always sets the O_LARGEFILE flag for the o32 ABI implementation of a 64bit kernel. The appended patch fixes it. Signed-off-by: Thiemo Seufer <ths@networkno.de> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
a8d587a7 |
|
31-Mar-2006 |
Ralf Baechle <ralf@linux-mips.org> |
[MIPS] Wire up sync_file_range(2). Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
f115da9c |
|
31-Mar-2006 |
Ralf Baechle <ralf@linux-mips.org> |
[MIPS] Wire splice syscall. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
3158e941 |
|
26-Mar-2006 |
Stephen Rothwell <sfr@canb.auug.org.au> |
[PATCH] consolidate sys32/compat_adjtimex Create compat_sys_adjtimex and use it an all appropriate places. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Cc: Arnd Bergmann <arnd@arndb.de> Acked-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
|
#
2fd628fe |
|
20-Feb-2006 |
Atsushi Nemoto <anemo@mba.ocn.ne.jp> |
[MIPS] Use generic compat routines for readdir, getdents Not just cleanup but also fixes O32 readdir(2) emulation. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
72bf8914 |
|
08-Feb-2006 |
Ralf Baechle <ralf@linux-mips.org> |
[MIPS] Wire up new syscalls. Signed-off-by: Ralf Baechle <ralf@linux-mips.org> ---
|
#
04a7052c |
|
30-Nov-2005 |
Ralf Baechle <ralf@linux-mips.org> |
[MIPS] Fix register handling in syscalls when debugging. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
7db36c85 |
|
13-Jul-2005 |
Ralf Baechle <ralf@linux-mips.org> |
Add inotify syscalls for MIPS. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
d547c5cc |
|
06-May-2005 |
Maciej W. Rozycki <macro@linux-mips.org> |
sys_nfsservctl() needs translation. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
3c37026d |
|
13-Apr-2005 |
Ralf Baechle <ralf@linux-mips.org> |
NPTL, round one. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
d1abb6a2 |
|
16-Feb-2005 |
Ralf Baechle <ralf@linux-mips.org> |
32-bit compatibility for various timer-related system calls. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
54f2da75 |
|
16-Feb-2005 |
Ralf Baechle <ralf@linux-mips.org> |
Implement 32-bit compatibility for waitid(2). Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
b6e203d8 |
|
16-Feb-2005 |
Ralf Baechle <ralf@linux-mips.org> |
Use generic compat_sys_wait4 to implement 32-bit wait4(2). Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
#
1da177e4 |
|
16-Apr-2005 |
Linus Torvalds <torvalds@ppc970.osdl.org> |
Linux-2.6.12-rc2 Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
|