Merge branch 'parisc-4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux
Pull parisc fixes from Helge Deller: "We wire up the copy_file_range syscall, fix two bugs in the parisc ptrace code and have a trivial fix for floppy.h to clarify an expression with parentheses" * 'parisc-4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: parisc: Wire up copy_file_range syscall parisc: Fix ptrace syscall number and return value modification parisc: Use parentheses around expression in floppy.h
This commit is contained in:
commit
f983cd32cd
|
@ -33,7 +33,7 @@
|
||||||
* floppy accesses go through the track buffer.
|
* floppy accesses go through the track buffer.
|
||||||
*/
|
*/
|
||||||
#define _CROSS_64KB(a,s,vdma) \
|
#define _CROSS_64KB(a,s,vdma) \
|
||||||
(!vdma && ((unsigned long)(a)/K_64 != ((unsigned long)(a) + (s) - 1) / K_64))
|
(!(vdma) && ((unsigned long)(a)/K_64 != ((unsigned long)(a) + (s) - 1) / K_64))
|
||||||
|
|
||||||
#define CROSS_64KB(a,s) _CROSS_64KB(a,s,use_virtual_dma & 1)
|
#define CROSS_64KB(a,s) _CROSS_64KB(a,s,use_virtual_dma & 1)
|
||||||
|
|
||||||
|
|
|
@ -361,8 +361,9 @@
|
||||||
#define __NR_membarrier (__NR_Linux + 343)
|
#define __NR_membarrier (__NR_Linux + 343)
|
||||||
#define __NR_userfaultfd (__NR_Linux + 344)
|
#define __NR_userfaultfd (__NR_Linux + 344)
|
||||||
#define __NR_mlock2 (__NR_Linux + 345)
|
#define __NR_mlock2 (__NR_Linux + 345)
|
||||||
|
#define __NR_copy_file_range (__NR_Linux + 346)
|
||||||
|
|
||||||
#define __NR_Linux_syscalls (__NR_mlock2 + 1)
|
#define __NR_Linux_syscalls (__NR_copy_file_range + 1)
|
||||||
|
|
||||||
|
|
||||||
#define __IGNORE_select /* newselect */
|
#define __IGNORE_select /* newselect */
|
||||||
|
|
|
@ -269,14 +269,19 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
|
||||||
|
|
||||||
long do_syscall_trace_enter(struct pt_regs *regs)
|
long do_syscall_trace_enter(struct pt_regs *regs)
|
||||||
{
|
{
|
||||||
long ret = 0;
|
|
||||||
|
|
||||||
/* Do the secure computing check first. */
|
/* Do the secure computing check first. */
|
||||||
secure_computing_strict(regs->gr[20]);
|
secure_computing_strict(regs->gr[20]);
|
||||||
|
|
||||||
if (test_thread_flag(TIF_SYSCALL_TRACE) &&
|
if (test_thread_flag(TIF_SYSCALL_TRACE) &&
|
||||||
tracehook_report_syscall_entry(regs))
|
tracehook_report_syscall_entry(regs)) {
|
||||||
ret = -1L;
|
/*
|
||||||
|
* Tracing decided this syscall should not happen or the
|
||||||
|
* debugger stored an invalid system call number. Skip
|
||||||
|
* the system call and the system call restart handling.
|
||||||
|
*/
|
||||||
|
regs->gr[20] = -1UL;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_64BIT
|
#ifdef CONFIG_64BIT
|
||||||
if (!is_compat_task())
|
if (!is_compat_task())
|
||||||
|
@ -290,7 +295,8 @@ long do_syscall_trace_enter(struct pt_regs *regs)
|
||||||
regs->gr[24] & 0xffffffff,
|
regs->gr[24] & 0xffffffff,
|
||||||
regs->gr[23] & 0xffffffff);
|
regs->gr[23] & 0xffffffff);
|
||||||
|
|
||||||
return ret ? : regs->gr[20];
|
out:
|
||||||
|
return regs->gr[20];
|
||||||
}
|
}
|
||||||
|
|
||||||
void do_syscall_trace_exit(struct pt_regs *regs)
|
void do_syscall_trace_exit(struct pt_regs *regs)
|
||||||
|
|
|
@ -343,7 +343,7 @@ tracesys_next:
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
comiclr,>>= __NR_Linux_syscalls, %r20, %r0
|
comiclr,>>= __NR_Linux_syscalls, %r20, %r0
|
||||||
b,n .Lsyscall_nosys
|
b,n .Ltracesys_nosys
|
||||||
|
|
||||||
LDREGX %r20(%r19), %r19
|
LDREGX %r20(%r19), %r19
|
||||||
|
|
||||||
|
@ -359,6 +359,9 @@ tracesys_next:
|
||||||
be 0(%sr7,%r19)
|
be 0(%sr7,%r19)
|
||||||
ldo R%tracesys_exit(%r2),%r2
|
ldo R%tracesys_exit(%r2),%r2
|
||||||
|
|
||||||
|
.Ltracesys_nosys:
|
||||||
|
ldo -ENOSYS(%r0),%r28 /* set errno */
|
||||||
|
|
||||||
/* Do *not* call this function on the gateway page, because it
|
/* Do *not* call this function on the gateway page, because it
|
||||||
makes a direct call to syscall_trace. */
|
makes a direct call to syscall_trace. */
|
||||||
|
|
||||||
|
|
|
@ -441,6 +441,7 @@
|
||||||
ENTRY_SAME(membarrier)
|
ENTRY_SAME(membarrier)
|
||||||
ENTRY_SAME(userfaultfd)
|
ENTRY_SAME(userfaultfd)
|
||||||
ENTRY_SAME(mlock2) /* 345 */
|
ENTRY_SAME(mlock2) /* 345 */
|
||||||
|
ENTRY_SAME(copy_file_range)
|
||||||
|
|
||||||
|
|
||||||
.ifne (. - 90b) - (__NR_Linux_syscalls * (91b - 90b))
|
.ifne (. - 90b) - (__NR_Linux_syscalls * (91b - 90b))
|
||||||
|
|
Loading…
Reference in New Issue