Selaa lähdekoodia

CRIS: Add missing syscalls

Complete list of syscalls for CRISv10 and CRISv32.
Clean up some whitespace at the same time.

Signed-off-by: Jesper Nilsson <jesper.nilsson@axis.com>
Jesper Nilsson 11 vuotta sitten
vanhempi
commit
bb1d2a9453

+ 98 - 82
arch/cris/arch-v10/kernel/entry.S

@@ -13,8 +13,8 @@
  * after a timer-interrupt and after each system call.
  * after a timer-interrupt and after each system call.
  *
  *
  * Stack layout in 'ret_from_system_call':
  * Stack layout in 'ret_from_system_call':
- * 	ptrace needs to have all regs on the stack.
- *	if the order here is changed, it needs to be 
+ *	ptrace needs to have all regs on the stack.
+ *	if the order here is changed, it needs to be
  *	updated in fork.c:copy_process, signal.c:do_signal,
  *	updated in fork.c:copy_process, signal.c:do_signal,
  *	ptrace.c and ptrace.h
  *	ptrace.c and ptrace.h
  *
  *
@@ -31,7 +31,7 @@
 #include <asm/pgtable.h>
 #include <asm/pgtable.h>
 
 
 	;; functions exported from this file
 	;; functions exported from this file
-	
+
 	.globl system_call
 	.globl system_call
 	.globl ret_from_intr
 	.globl ret_from_intr
 	.globl ret_from_fork
 	.globl ret_from_fork
@@ -46,10 +46,10 @@
 	.globl do_sigtrap
 	.globl do_sigtrap
 	.globl gdb_handle_breakpoint
 	.globl gdb_handle_breakpoint
 	.globl sys_call_table
 	.globl sys_call_table
-	
+
 	;; below are various parts of system_call which are not in the fast-path
 	;; below are various parts of system_call which are not in the fast-path
-	
-#ifdef CONFIG_PREEMPT	
+
+#ifdef CONFIG_PREEMPT
 	; Check if preemptive kernel scheduling should be done
 	; Check if preemptive kernel scheduling should be done
 _resume_kernel:
 _resume_kernel:
 	di
 	di
@@ -74,7 +74,7 @@ _need_resched:
 	nop
 	nop
 #else
 #else
 #define _resume_kernel _Rexit
 #define _resume_kernel _Rexit
-#endif	
+#endif
 
 
 	; Called at exit from fork. schedule_tail must be called to drop
 	; Called at exit from fork. schedule_tail must be called to drop
 	; spinlock if CONFIG_PREEMPT
 	; spinlock if CONFIG_PREEMPT
@@ -91,16 +91,16 @@ ret_from_kernel_thread:
 	ba  ret_from_sys_call
 	ba  ret_from_sys_call
 
 
 ret_from_intr:
 ret_from_intr:
-	;; check for resched if preemptive kernel or if we're going back to user-mode 
+	;; check for resched if preemptive kernel or if we're going back to user-mode
 	;; this test matches the user_regs(regs) macro
 	;; this test matches the user_regs(regs) macro
 	;; we cannot simply test $dccr, because that does not necessarily
 	;; we cannot simply test $dccr, because that does not necessarily
 	;; reflect what mode we'll return into.
 	;; reflect what mode we'll return into.
-	
+
 	move.d	[$sp + PT_dccr], $r0; regs->dccr
 	move.d	[$sp + PT_dccr], $r0; regs->dccr
 	btstq	8, $r0		; U-flag
 	btstq	8, $r0		; U-flag
 	bpl     _resume_kernel
 	bpl     _resume_kernel
-	; Note that di below is in delay slot 
-	
+	; Note that di below is in delay slot
+
 _resume_userspace:
 _resume_userspace:
 	di			; so need_resched and sigpending don't change
 	di			; so need_resched and sigpending don't change
 
 
@@ -113,7 +113,7 @@ _resume_userspace:
 	nop
 	nop
 	ba	_Rexit
 	ba	_Rexit
 	nop
 	nop
-	
+
 	;; The system_call is called by a BREAK instruction, which works like
 	;; The system_call is called by a BREAK instruction, which works like
 	;; an interrupt call but it stores the return PC in BRP instead of IRP.
 	;; an interrupt call but it stores the return PC in BRP instead of IRP.
 	;; Since we dont really want to have two epilogues (one for system calls
 	;; Since we dont really want to have two epilogues (one for system calls
@@ -123,7 +123,7 @@ _resume_userspace:
 	;;
 	;;
 	;; Since we can't have system calls inside interrupts, it should not matter
 	;; Since we can't have system calls inside interrupts, it should not matter
 	;; that we don't stack IRP.
 	;; that we don't stack IRP.
-	;; 
+	;;
 	;; In r9 we have the wanted syscall number. Arguments come in r10,r11,r12,r13,mof,srp
 	;; In r9 we have the wanted syscall number. Arguments come in r10,r11,r12,r13,mof,srp
 	;;
 	;;
 	;; This function looks on the _surface_ like spaghetti programming, but it's
 	;; This function looks on the _surface_ like spaghetti programming, but it's
@@ -140,7 +140,7 @@ system_call:
 	movem	$r13, [$sp]	; push r0-r13
 	movem	$r13, [$sp]	; push r0-r13
 	push	$r10		; push orig_r10
 	push	$r10		; push orig_r10
 	clear.d [$sp=$sp-4]	; frametype == 0, normal stackframe
 	clear.d [$sp=$sp-4]	; frametype == 0, normal stackframe
-	
+
 	movs.w	-ENOSYS, $r0
 	movs.w	-ENOSYS, $r0
 	move.d	$r0, [$sp+PT_r10]	; put the default return value in r10 in the frame
 	move.d	$r0, [$sp+PT_r10]	; put the default return value in r10 in the frame
 
 
@@ -148,17 +148,17 @@ system_call:
 
 
 	movs.w	-8192, $r0	; THREAD_SIZE == 8192
 	movs.w	-8192, $r0	; THREAD_SIZE == 8192
 	and.d	$sp, $r0
 	and.d	$sp, $r0
-	
+
 	move.d	[$r0+TI_flags], $r0
 	move.d	[$r0+TI_flags], $r0
 	btstq   TIF_SYSCALL_TRACE, $r0
 	btstq   TIF_SYSCALL_TRACE, $r0
 	bmi	_syscall_trace_entry
 	bmi	_syscall_trace_entry
-	nop	
+	nop
 
 
-_syscall_traced:	
+_syscall_traced:
 
 
 	;; check for sanity in the requested syscall number
 	;; check for sanity in the requested syscall number
-	
-	cmpu.w	NR_syscalls, $r9	
+
+	cmpu.w	NR_syscalls, $r9
 	bcc	ret_from_sys_call
 	bcc	ret_from_sys_call
 	lslq	2, $r9		;  multiply by 4, in the delay slot
 	lslq	2, $r9		;  multiply by 4, in the delay slot
 
 
@@ -166,28 +166,28 @@ _syscall_traced:
 	;; of the register structure itself. some syscalls need this.
 	;; of the register structure itself. some syscalls need this.
 
 
 	push	$sp
 	push	$sp
-	
+
 	;; the parameter carrying registers r10, r11, r12 and 13 are intact.
 	;; the parameter carrying registers r10, r11, r12 and 13 are intact.
-	;; the fifth and sixth parameters (if any) was in mof and srp 
+	;; the fifth and sixth parameters (if any) was in mof and srp
 	;; respectively, and we need to put them on the stack.
 	;; respectively, and we need to put them on the stack.
 
 
 	push	$srp
 	push	$srp
 	push	$mof
 	push	$mof
-	
+
 	jsr	[$r9+sys_call_table]	; actually do the system call
 	jsr	[$r9+sys_call_table]	; actually do the system call
 	addq	3*4, $sp		; pop the mof, srp and regs parameters
 	addq	3*4, $sp		; pop the mof, srp and regs parameters
 	move.d	$r10, [$sp+PT_r10]	; save the return value
 	move.d	$r10, [$sp+PT_r10]	; save the return value
 
 
 	moveq	1, $r9		; "parameter" to ret_from_sys_call to show it was a sys call
 	moveq	1, $r9		; "parameter" to ret_from_sys_call to show it was a sys call
-	
+
 	;; fall through into ret_from_sys_call to return
 	;; fall through into ret_from_sys_call to return
-	
+
 ret_from_sys_call:
 ret_from_sys_call:
 	;; r9 is a parameter - if >=1 we came from a syscall, if 0, from an irq
 	;; r9 is a parameter - if >=1 we came from a syscall, if 0, from an irq
-		
+
 	;; get the current task-struct pointer (see top for defs)
 	;; get the current task-struct pointer (see top for defs)
 
 
-	movs.w	-8192, $r0	; THREAD_SIZE == 8192 
+	movs.w	-8192, $r0	; THREAD_SIZE == 8192
 	and.d	$sp, $r0
 	and.d	$sp, $r0
 
 
 	di			; make sure need_resched and sigpending don't change
 	di			; make sure need_resched and sigpending don't change
@@ -202,7 +202,7 @@ _Rexit:
 	bne	_RBFexit	; was not CRIS_FRAME_NORMAL, handle otherwise
 	bne	_RBFexit	; was not CRIS_FRAME_NORMAL, handle otherwise
 	addq	4, $sp		; skip orig_r10, in delayslot
 	addq	4, $sp		; skip orig_r10, in delayslot
 	movem	[$sp+], $r13	; registers r0-r13
 	movem	[$sp+], $r13	; registers r0-r13
-	pop	$mof		; multiply overflow register 
+	pop	$mof		; multiply overflow register
 	pop	$dccr		; condition codes
 	pop	$dccr		; condition codes
 	pop	$srp		; subroutine return pointer
 	pop	$srp		; subroutine return pointer
 	;; now we have a 4-word SBFS frame which we do not want to restore
 	;; now we have a 4-word SBFS frame which we do not want to restore
@@ -216,14 +216,14 @@ _Rexit:
 
 
 _RBFexit:
 _RBFexit:
 	movem	[$sp+], $r13	; registers r0-r13, in delay slot
 	movem	[$sp+], $r13	; registers r0-r13, in delay slot
-	pop	$mof		; multiply overflow register 
+	pop	$mof		; multiply overflow register
 	pop	$dccr		; condition codes
 	pop	$dccr		; condition codes
 	pop	$srp		; subroutine return pointer
 	pop	$srp		; subroutine return pointer
 	rbf	[$sp+]		; return by popping the CPU status
 	rbf	[$sp+]		; return by popping the CPU status
 
 
 	;; We get here after doing a syscall if extra work might need to be done
 	;; We get here after doing a syscall if extra work might need to be done
 	;; perform syscall exit tracing if needed
 	;; perform syscall exit tracing if needed
-	
+
 _syscall_exit_work:
 _syscall_exit_work:
 	;; $r0 contains current at this point and irq's are disabled
 	;; $r0 contains current at this point and irq's are disabled
 
 
@@ -231,22 +231,22 @@ _syscall_exit_work:
 	btstq	TIF_SYSCALL_TRACE, $r1
 	btstq	TIF_SYSCALL_TRACE, $r1
 	bpl	_work_pending
 	bpl	_work_pending
 	nop
 	nop
-	
+
 	ei
 	ei
 
 
 	move.d	$r9, $r1	; preserve r9
 	move.d	$r9, $r1	; preserve r9
 	jsr	do_syscall_trace
 	jsr	do_syscall_trace
 	move.d	$r1, $r9
 	move.d	$r1, $r9
-	
+
 	ba	_resume_userspace
 	ba	_resume_userspace
 	nop
 	nop
-	
+
 _work_pending:
 _work_pending:
 	move.d  [$r0+TI_flags], $r1
 	move.d  [$r0+TI_flags], $r1
 	btstq   TIF_NEED_RESCHED, $r1
 	btstq   TIF_NEED_RESCHED, $r1
 	bpl	_work_notifysig	; was neither trace nor sched, must be signal/notify
 	bpl	_work_notifysig	; was neither trace nor sched, must be signal/notify
 	nop
 	nop
-	
+
 _work_resched:
 _work_resched:
 	move.d	$r9, $r1	; preserve r9
 	move.d	$r9, $r1	; preserve r9
 	jsr	schedule
 	jsr	schedule
@@ -268,17 +268,17 @@ _work_notifysig:
 	move.d	$sp, $r11	; the regs param
 	move.d	$sp, $r11	; the regs param
 	move.d  $r1, $r12	; the thread_info_flags parameter
 	move.d  $r1, $r12	; the thread_info_flags parameter
 	jsr	do_notify_resume
 	jsr	do_notify_resume
-	
+
 	ba _Rexit
 	ba _Rexit
 	nop
 	nop
 
 
 	;; We get here as a sidetrack when we've entered a syscall with the
 	;; We get here as a sidetrack when we've entered a syscall with the
 	;; trace-bit set. We need to call do_syscall_trace and then continue
 	;; trace-bit set. We need to call do_syscall_trace and then continue
 	;; with the call.
 	;; with the call.
-	
+
 _syscall_trace_entry:
 _syscall_trace_entry:
 	;; PT_r10 in the frame contains -ENOSYS as required, at this point
 	;; PT_r10 in the frame contains -ENOSYS as required, at this point
-	
+
 	jsr	do_syscall_trace
 	jsr	do_syscall_trace
 
 
 	;; now re-enter the syscall code to do the syscall itself
 	;; now re-enter the syscall code to do the syscall itself
@@ -292,10 +292,10 @@ _syscall_trace_entry:
 	move.d	[$sp+PT_r13],      $r13
 	move.d	[$sp+PT_r13],      $r13
 	move	[$sp+PT_mof],      $mof
 	move	[$sp+PT_mof],      $mof
 	move	[$sp+PT_srp],      $srp
 	move	[$sp+PT_srp],      $srp
-	
+
 	ba	_syscall_traced
 	ba	_syscall_traced
 	nop
 	nop
-	
+
 	;; resume performs the actual task-switching, by switching stack pointers
 	;; resume performs the actual task-switching, by switching stack pointers
 	;; input arguments: r10 = prev, r11 = next, r12 = thread offset in task struct
 	;; input arguments: r10 = prev, r11 = next, r12 = thread offset in task struct
 	;; returns old current in r10
 	;; returns old current in r10
@@ -303,29 +303,29 @@ _syscall_trace_entry:
 	;; TODO:  see the i386 version. The switch_to which calls resume in our version
 	;; TODO:  see the i386 version. The switch_to which calls resume in our version
 	;;        could really be an inline asm of this.
 	;;        could really be an inline asm of this.
 
 
-resume:	
-	push	$srp		         ; we keep the old/new PC on the stack 
+resume:
+	push	$srp		         ; we keep the old/new PC on the stack
 	add.d	$r12, $r10		 ; r10 = current tasks tss
 	add.d	$r12, $r10		 ; r10 = current tasks tss
 	move	$dccr, [$r10+THREAD_dccr]; save irq enable state
 	move	$dccr, [$r10+THREAD_dccr]; save irq enable state
 	di
 	di
 
 
 	move	$usp, [$r10+ THREAD_usp] ; save user-mode stackpointer
 	move	$usp, [$r10+ THREAD_usp] ; save user-mode stackpointer
-	
+
 	;; See copy_thread for the reason why register R9 is saved.
 	;; See copy_thread for the reason why register R9 is saved.
 	subq	10*4, $sp
 	subq	10*4, $sp
 	movem	$r9, [$sp]		 ; save non-scratch registers and R9.
 	movem	$r9, [$sp]		 ; save non-scratch registers and R9.
-	
+
 	move.d	$sp, [$r10+THREAD_ksp]	 ; save the kernel stack pointer for the old task
 	move.d	$sp, [$r10+THREAD_ksp]	 ; save the kernel stack pointer for the old task
 	move.d	$sp, $r10		 ; return last running task in r10
 	move.d	$sp, $r10		 ; return last running task in r10
 	and.d   -8192, $r10	         ; get thread_info from stackpointer
 	and.d   -8192, $r10	         ; get thread_info from stackpointer
-	move.d  [$r10+TI_task], $r10     ; get task  
+	move.d  [$r10+TI_task], $r10     ; get task
 	add.d	$r12, $r11		 ; find the new tasks tss
 	add.d	$r12, $r11		 ; find the new tasks tss
 	move.d	[$r11+THREAD_ksp], $sp	 ; switch into the new stackframe by restoring kernel sp
 	move.d	[$r11+THREAD_ksp], $sp	 ; switch into the new stackframe by restoring kernel sp
 
 
 	movem	[$sp+], $r9		 ; restore non-scratch registers and R9.
 	movem	[$sp+], $r9		 ; restore non-scratch registers and R9.
 
 
 	move	[$r11+THREAD_usp], $usp ; restore user-mode stackpointer
 	move	[$r11+THREAD_usp], $usp ; restore user-mode stackpointer
-	
+
 	move	[$r11+THREAD_dccr], $dccr ; restore irq enable status
 	move	[$r11+THREAD_dccr], $dccr ; restore irq enable status
 	jump	[$sp+]		         ; restore PC
 	jump	[$sp+]		         ; restore PC
 
 
@@ -401,7 +401,7 @@ mmu_bus_fault:
 	push	$r10		; frametype == 1, BUSFAULT frame type
 	push	$r10		; frametype == 1, BUSFAULT frame type
 
 
 	move.d	$sp, $r10	; pt_regs argument to handle_mmu_bus_fault
 	move.d	$sp, $r10	; pt_regs argument to handle_mmu_bus_fault
-		
+
 	jsr	handle_mmu_bus_fault  ; in arch/cris/arch-v10/mm/fault.c
 	jsr	handle_mmu_bus_fault  ; in arch/cris/arch-v10/mm/fault.c
 
 
 	;; now we need to return through the normal path, we cannot just
 	;; now we need to return through the normal path, we cannot just
@@ -410,10 +410,10 @@ mmu_bus_fault:
 	;; whatever.
 	;; whatever.
 
 
 	moveq	0, $r9		; busfault is equivalent to an irq
 	moveq	0, $r9		; busfault is equivalent to an irq
-		
+
 	ba	ret_from_intr
 	ba	ret_from_intr
 	nop
 	nop
-		
+
 	;; special handlers for breakpoint and NMI
 	;; special handlers for breakpoint and NMI
 hwbreakpoint:
 hwbreakpoint:
 	push	$dccr
 	push	$dccr
@@ -429,7 +429,7 @@ hwbreakpoint:
 	pop	$dccr
 	pop	$dccr
 	retb
 	retb
 	nop
 	nop
-	
+
 IRQ1_interrupt:
 IRQ1_interrupt:
 	;; this prologue MUST match the one in irq.h and the struct in ptregs.h!!!
 	;; this prologue MUST match the one in irq.h and the struct in ptregs.h!!!
 	move	$brp,[$sp=$sp-16]; instruction pointer and room for a fake SBFS frame
 	move	$brp,[$sp=$sp-16]; instruction pointer and room for a fake SBFS frame
@@ -500,7 +500,7 @@ Watchdog_bite:
 	move.d	$r10, [$r11]
 	move.d	$r10, [$r11]
 
 
 #endif
 #endif
-	
+
 ;; Note that we don't do "setf m" here (or after two necessary NOPs),
 ;; Note that we don't do "setf m" here (or after two necessary NOPs),
 ;; since *not* doing that saves us from re-entrancy checks.  We don't want
 ;; since *not* doing that saves us from re-entrancy checks.  We don't want
 ;; to get here again due to possible subsequent NMIs; we want the watchdog
 ;; to get here again due to possible subsequent NMIs; we want the watchdog
@@ -525,14 +525,14 @@ _watchdogmsg:
 
 
 #endif /* CONFIG_ETRAX_WATCHDOG and not CONFIG_SVINTO_SIM */
 #endif /* CONFIG_ETRAX_WATCHDOG and not CONFIG_SVINTO_SIM */
 
 
-spurious_interrupt:	
+spurious_interrupt:
 	di
 	di
 	jump hard_reset_now
 	jump hard_reset_now
 
 
 	;; this handles the case when multiple interrupts arrive at the same time
 	;; this handles the case when multiple interrupts arrive at the same time
 	;; we jump to the first set interrupt bit in a priority fashion
 	;; we jump to the first set interrupt bit in a priority fashion
 	;; the hardware will call the unserved interrupts after the handler finishes
 	;; the hardware will call the unserved interrupts after the handler finishes
-	
+
 multiple_interrupt:
 multiple_interrupt:
 	;; this prologue MUST match the one in irq.h and the struct in ptregs.h!!!
 	;; this prologue MUST match the one in irq.h and the struct in ptregs.h!!!
 	move	$irp,[$sp=$sp-16]; instruction pointer and room for a fake SBFS frame
 	move	$irp,[$sp=$sp-16]; instruction pointer and room for a fake SBFS frame
@@ -551,7 +551,7 @@ multiple_interrupt:
 	jump    ret_from_intr
 	jump    ret_from_intr
 
 
 do_sigtrap:
 do_sigtrap:
-	;; 
+	;;
 	;; SIGTRAP the process that executed the break instruction.
 	;; SIGTRAP the process that executed the break instruction.
 	;; Make a frame that Rexit in entry.S expects.
 	;; Make a frame that Rexit in entry.S expects.
 	;;
 	;;
@@ -568,30 +568,30 @@ do_sigtrap:
 	movs.w	-8192,$r9		; THREAD_SIZE == 8192
 	movs.w	-8192,$r9		; THREAD_SIZE == 8192
 	and.d	$sp, $r9
 	and.d	$sp, $r9
 	move.d  [$r9+TI_task], $r10
 	move.d  [$r9+TI_task], $r10
-	move.d  [$r10+TASK_pid], $r10	; current->pid as arg1. 
+	move.d  [$r10+TASK_pid], $r10	; current->pid as arg1.
 	moveq	5, $r11			; SIGTRAP as arg2.
 	moveq	5, $r11			; SIGTRAP as arg2.
-	jsr	sys_kill       
+	jsr	sys_kill
 	jump	ret_from_intr		; Use the return routine for interrupts.
 	jump	ret_from_intr		; Use the return routine for interrupts.
 
 
-gdb_handle_breakpoint:	
+gdb_handle_breakpoint:
 	push	$dccr
 	push	$dccr
 	push	$r0
 	push	$r0
 #ifdef CONFIG_ETRAX_KGDB
 #ifdef CONFIG_ETRAX_KGDB
-	move	$dccr, $r0		; U-flag not affected by previous insns. 
+	move	$dccr, $r0		; U-flag not affected by previous insns.
 	btstq	8, $r0			; Test the U-flag.
 	btstq	8, $r0			; Test the U-flag.
-	bmi	_ugdb_handle_breakpoint	; Go to user mode debugging. 
-	nop				; Empty delay slot (cannot pop r0 here). 
+	bmi	_ugdb_handle_breakpoint	; Go to user mode debugging.
+	nop				; Empty delay slot (cannot pop r0 here).
 	pop	$r0			; Restore r0.
 	pop	$r0			; Restore r0.
-	ba	kgdb_handle_breakpoint	; Go to kernel debugging. 
+	ba	kgdb_handle_breakpoint	; Go to kernel debugging.
 	pop	$dccr			; Restore dccr in delay slot.
 	pop	$dccr			; Restore dccr in delay slot.
 #endif
 #endif
-	
-_ugdb_handle_breakpoint:	
+
+_ugdb_handle_breakpoint:
 	move	$brp, $r0		; Use r0 temporarily for calculation.
 	move	$brp, $r0		; Use r0 temporarily for calculation.
 	subq	2, $r0			; Set to address of previous instruction.
 	subq	2, $r0			; Set to address of previous instruction.
 	move	$r0, $brp
 	move	$r0, $brp
-	pop	$r0			; Restore r0. 
-	ba	do_sigtrap		; SIGTRAP the offending process. 
+	pop	$r0			; Restore r0.
+	ba	do_sigtrap		; SIGTRAP the offending process.
 	pop	$dccr			; Restore dccr in delay slot.
 	pop	$dccr			; Restore dccr in delay slot.
 
 
 	.data
 	.data
@@ -602,7 +602,7 @@ hw_bp_trig_ptr:
 	.dword hw_bp_trigs
 	.dword hw_bp_trigs
 
 
 	.section .rodata,"a"
 	.section .rodata,"a"
-sys_call_table:	
+sys_call_table:
 	.long sys_restart_syscall	/* 0 - old "setup()" system call, used for restarting */
 	.long sys_restart_syscall	/* 0 - old "setup()" system call, used for restarting */
 	.long sys_exit
 	.long sys_exit
 	.long sys_fork
 	.long sys_fork
@@ -713,7 +713,7 @@ sys_call_table:
 	.long sys_newlstat
 	.long sys_newlstat
 	.long sys_newfstat
 	.long sys_newfstat
 	.long sys_ni_syscall	/* old sys_uname holder */
 	.long sys_ni_syscall	/* old sys_uname holder */
-	.long sys_ni_syscall	/* sys_iopl in i386 */
+	.long sys_ni_syscall	/* 110 */ /* sys_iopl in i386 */
 	.long sys_vhangup
 	.long sys_vhangup
 	.long sys_ni_syscall	/* old "idle" system call */
 	.long sys_ni_syscall	/* old "idle" system call */
 	.long sys_ni_syscall	/* vm86old in i386 */
 	.long sys_ni_syscall	/* vm86old in i386 */
@@ -730,7 +730,7 @@ sys_call_table:
 	.long sys_adjtimex
 	.long sys_adjtimex
 	.long sys_mprotect	/* 125 */
 	.long sys_mprotect	/* 125 */
 	.long sys_sigprocmask
 	.long sys_sigprocmask
-	.long sys_ni_syscall	/* old "create_module" */ 
+	.long sys_ni_syscall	/* old "create_module" */
 	.long sys_init_module
 	.long sys_init_module
 	.long sys_delete_module
 	.long sys_delete_module
 	.long sys_ni_syscall	/* 130:	old "get_kernel_syms" */
 	.long sys_ni_syscall	/* 130:	old "get_kernel_syms" */
@@ -795,7 +795,7 @@ sys_call_table:
 	.long sys_ni_syscall	/* streams2 */
 	.long sys_ni_syscall	/* streams2 */
 	.long sys_vfork		/* 190 */
 	.long sys_vfork		/* 190 */
 	.long sys_getrlimit
 	.long sys_getrlimit
-	.long sys_mmap2
+	.long sys_mmap2		/* mmap_pgoff */
 	.long sys_truncate64
 	.long sys_truncate64
 	.long sys_ftruncate64
 	.long sys_ftruncate64
 	.long sys_stat64	/* 195 */
 	.long sys_stat64	/* 195 */
@@ -861,21 +861,21 @@ sys_call_table:
 	.long sys_epoll_ctl	/* 255 */
 	.long sys_epoll_ctl	/* 255 */
 	.long sys_epoll_wait
 	.long sys_epoll_wait
 	.long sys_remap_file_pages
 	.long sys_remap_file_pages
- 	.long sys_set_tid_address
- 	.long sys_timer_create
- 	.long sys_timer_settime		/* 260 */
- 	.long sys_timer_gettime
- 	.long sys_timer_getoverrun
- 	.long sys_timer_delete
- 	.long sys_clock_settime
- 	.long sys_clock_gettime		/* 265 */
- 	.long sys_clock_getres
- 	.long sys_clock_nanosleep
+	.long sys_set_tid_address
+	.long sys_timer_create
+	.long sys_timer_settime		/* 260 */
+	.long sys_timer_gettime
+	.long sys_timer_getoverrun
+	.long sys_timer_delete
+	.long sys_clock_settime
+	.long sys_clock_gettime		/* 265 */
+	.long sys_clock_getres
+	.long sys_clock_nanosleep
 	.long sys_statfs64
 	.long sys_statfs64
-	.long sys_fstatfs64	
-	.long sys_tgkill	/* 270 */
+	.long sys_fstatfs64
+	.long sys_tgkill		/* 270 */
 	.long sys_utimes
 	.long sys_utimes
- 	.long sys_fadvise64_64
+	.long sys_fadvise64_64
 	.long sys_ni_syscall	/* sys_vserver */
 	.long sys_ni_syscall	/* sys_vserver */
 	.long sys_ni_syscall	/* sys_mbind */
 	.long sys_ni_syscall	/* sys_mbind */
 	.long sys_ni_syscall	/* 275 sys_get_mempolicy */
 	.long sys_ni_syscall	/* 275 sys_get_mempolicy */
@@ -886,7 +886,7 @@ sys_call_table:
 	.long sys_mq_timedreceive	/* 280 */
 	.long sys_mq_timedreceive	/* 280 */
 	.long sys_mq_notify
 	.long sys_mq_notify
 	.long sys_mq_getsetattr
 	.long sys_mq_getsetattr
-	.long sys_ni_syscall		/* reserved for kexec */
+	.long sys_ni_syscall
 	.long sys_waitid
 	.long sys_waitid
 	.long sys_ni_syscall		/* 285 */ /* available */
 	.long sys_ni_syscall		/* 285 */ /* available */
 	.long sys_add_key
 	.long sys_add_key
@@ -939,6 +939,22 @@ sys_call_table:
 	.long sys_preadv
 	.long sys_preadv
 	.long sys_pwritev
 	.long sys_pwritev
 	.long sys_setns			/* 335 */
 	.long sys_setns			/* 335 */
+	.long sys_name_to_handle_at
+	.long sys_open_by_handle_at
+	.long sys_rt_tgsigqueueinfo
+	.long sys_perf_event_open
+	.long sys_recvmmsg		/* 340 */
+	.long sys_accept4
+	.long sys_fanotify_init
+	.long sys_fanotify_mark
+	.long sys_prlimit64
+	.long sys_clock_adjtime		/* 345 */
+	.long sys_syncfs
+	.long sys_sendmmsg
+	.long sys_process_vm_readv
+	.long sys_process_vm_writev
+	.long sys_kcmp			/* 350 */
+	.long sys_finit_module
 
 
         /*
         /*
          * NOTE!! This doesn't have to be exact - we just have
          * NOTE!! This doesn't have to be exact - we just have
@@ -950,4 +966,4 @@ sys_call_table:
 	.rept NR_syscalls-(.-sys_call_table)/4
 	.rept NR_syscalls-(.-sys_call_table)/4
 		.long sys_ni_syscall
 		.long sys_ni_syscall
 	.endr
 	.endr
-	
+

+ 25 - 9
arch/cris/arch-v32/kernel/entry.S

@@ -424,7 +424,7 @@ nmi_interrupt:
 	bpl     1f
 	bpl     1f
 	nop
 	nop
 	jsr	handle_watchdog_bite	; In time.c.
 	jsr	handle_watchdog_bite	; In time.c.
-        move.d	$sp, $r10		; Pointer to registers
+	move.d	$sp, $r10		; Pointer to registers
 1:	btstq	REG_BIT(intr_vect, r_nmi, ext), $r0
 1:	btstq	REG_BIT(intr_vect, r_nmi, ext), $r0
 	bpl     1f
 	bpl     1f
 	nop
 	nop
@@ -452,7 +452,7 @@ spurious_interrupt:
 	nop
 	nop
 
 
 	;; This handles the case when multiple interrupts arrive at the same
 	;; This handles the case when multiple interrupts arrive at the same
-	;; time. Jump to the first set interrupt bit in a priotiry fashion. The
+	;; time. Jump to the first set interrupt bit in a priority fashion. The
 	;; hardware will call the unserved interrupts after the handler
 	;; hardware will call the unserved interrupts after the handler
 	;; finishes.
 	;; finishes.
 	.type	multiple_interrupt, @function
 	.type	multiple_interrupt, @function
@@ -885,13 +885,29 @@ sys_call_table:
 	.long sys_preadv
 	.long sys_preadv
 	.long sys_pwritev
 	.long sys_pwritev
 	.long sys_setns			/* 335 */
 	.long sys_setns			/* 335 */
-
-        /*
-         * NOTE!! This doesn't have to be exact - we just have
-         * to make sure we have _enough_ of the "sys_ni_syscall"
-         * entries. Don't panic if you notice that this hasn't
-         * been shrunk every time we add a new system call.
-         */
+	.long sys_name_to_handle_at
+	.long sys_open_by_handle_at
+	.long sys_rt_tgsigqueueinfo
+	.long sys_perf_event_open
+	.long sys_recvmmsg		/* 340 */
+	.long sys_accept4
+	.long sys_fanotify_init
+	.long sys_fanotify_mark
+	.long sys_prlimit64
+	.long sys_clock_adjtime		/* 345 */
+	.long sys_syncfs
+	.long sys_sendmmsg
+	.long sys_process_vm_readv
+	.long sys_process_vm_writev
+	.long sys_kcmp			/* 350 */
+	.long sys_finit_module
+
+	/*
+	 * NOTE!! This doesn't have to be exact - we just have
+	 * to make sure we have _enough_ of the "sys_ni_syscall"
+	 * entries. Don't panic if you notice that this hasn't
+	 * been shrunk every time we add a new system call.
+	 */
 
 
 	.rept NR_syscalls - (.-sys_call_table) / 4
 	.rept NR_syscalls - (.-sys_call_table) / 4
 		.long sys_ni_syscall
 		.long sys_ni_syscall

+ 1 - 1
arch/cris/include/asm/unistd.h

@@ -4,7 +4,7 @@
 #include <uapi/asm/unistd.h>
 #include <uapi/asm/unistd.h>
 
 
 
 
-#define NR_syscalls 336
+#define NR_syscalls 360
 
 
 #include <arch/unistd.h>
 #include <arch/unistd.h>
 
 

+ 16 - 0
arch/cris/include/uapi/asm/unistd.h

@@ -340,5 +340,21 @@
 #define __NR_preadv		333
 #define __NR_preadv		333
 #define __NR_pwritev		334
 #define __NR_pwritev		334
 #define __NR_setns		335
 #define __NR_setns		335
+#define __NR_name_to_handle_at	336
+#define __NR_open_by_handle_at	337
+#define __NR_rt_tgsigqueueinfo 338
+#define __NR_perf_event_open	339
+#define __NR_recvmmsg		340
+#define __NR_accept4		341
+#define __NR_fanotify_init	342
+#define __NR_fanotify_mark	343
+#define __NR_prlimit64		344
+#define __NR_clock_adjtime	345
+#define __NR_syncfs		346
+#define __NR_sendmmsg		347
+#define __NR_process_vm_readv	348
+#define __NR_process_vm_writev	349
+#define __NR_kcmp		350
+#define __NR_finit_module	351
 
 
 #endif /* _UAPI_ASM_CRIS_UNISTD_H_ */
 #endif /* _UAPI_ASM_CRIS_UNISTD_H_ */