Module Name:    src
Committed By:   chs
Date:           Wed Jul  7 01:21:15 UTC 2010

Modified Files:
        src/sys/arch/i386/i386: copy.S

Log Message:
return the error from fault handler in ucas_fault
rather than forcing EFAULT.


To generate a diff of this commit:
cvs rdiff -u -r1.21 -r1.22 src/sys/arch/i386/i386/copy.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/i386/i386/copy.S
diff -u src/sys/arch/i386/i386/copy.S:1.21 src/sys/arch/i386/i386/copy.S:1.22
--- src/sys/arch/i386/i386/copy.S:1.21	Fri Nov 27 03:23:10 2009
+++ src/sys/arch/i386/i386/copy.S	Wed Jul  7 01:21:15 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: copy.S,v 1.21 2009/11/27 03:23:10 rmind Exp $	*/
+/*	$NetBSD: copy.S,v 1.22 2010/07/07 01:21:15 chs Exp $	*/
 /*	NetBSD: locore.S,v 1.34 2005/04/01 11:59:31 yamt Exp $	*/
 
 /*-
@@ -65,7 +65,7 @@
  */
 
 #include <machine/asm.h>
-__KERNEL_RCSID(0, "$NetBSD: copy.S,v 1.21 2009/11/27 03:23:10 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: copy.S,v 1.22 2010/07/07 01:21:15 chs Exp $");
 
 #include "assym.h"
 
@@ -98,8 +98,7 @@
  * Label must be before all copy functions.
  */
 	.text
-
-x86_copyfunc_start:	.globl	x86_copyfunc_start
+LABEL(x86_copyfunc_start)
 
 /*
  * Handle deferred pmap switch.  We must re-enable preemption without
@@ -686,7 +685,7 @@
 	movl	12(%esp), %ecx
 	/* Fail if kernel-space */
 	cmpl	$VM_MAXUSER_ADDRESS-4, %edx
-	ja	_C_LABEL(ucas_fault)
+	ja	_C_LABEL(ucas_efault)
 	/* Label for fault handler */
 .Lucas32_start:
 	/* Perform the CAS */
@@ -703,16 +702,14 @@
 	ret
 	DEFERRED_SWITCH_CALL
 
-/*
- * Fault handler for ucas_32().
- * Unset the handler and return the failure.
- */
+NENTRY(ucas_efault)
+	mov	$EFAULT, %eax
 NENTRY(ucas_fault)
-	movl	$EFAULT, %eax
 	ret
 
 /*
  * int	ucas_int(volatile int *uptr, int old, int new, int *ret);
+ * int	ucas_ptr(volatile void **uptr, void *old, void *new, void **ret);
  */
 STRONG_ALIAS(ucas_ptr, ucas_32)
 STRONG_ALIAS(ucas_int, ucas_32)
@@ -782,7 +779,7 @@
 /*
  * Label must be after all copy functions.
  */
-x86_copyfunc_end:	.globl	x86_copyfunc_end
+LABEL(x86_copyfunc_end)
 
 /*
  * Fault table of copy functions for trap().

Reply via email to