Module Name:    src
Committed By:   snj
Date:           Thu Apr 23 02:11:53 UTC 2009

Modified Files:
        src/sys/arch/vax/vax [netbsd-3]: subr.S

Log Message:
Pull up following revision(s) (requested by mhitch in ticket #2010):
        sys/arch/vax/vax/subr.S: revision 1.26
Apply patch from mhitch@:
Make copyin(9) and copyout(9) work with 64KB or larger data blocks.
Fixes broken pipe(2) problem mentioned in PR port-vax/41139. Ok'ed by ra...@.
Should be pulled up to netbsd-5.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.10.14.1 src/sys/arch/vax/vax/subr.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/vax/vax/subr.S
diff -u src/sys/arch/vax/vax/subr.S:1.10 src/sys/arch/vax/vax/subr.S:1.10.14.1
--- src/sys/arch/vax/vax/subr.S:1.10	Sun Jan  4 11:33:31 2004
+++ src/sys/arch/vax/vax/subr.S	Thu Apr 23 02:11:53 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: subr.S,v 1.10 2004/01/04 11:33:31 jdolecek Exp $	   */
+/*	$NetBSD: subr.S,v 1.10.14.1 2009/04/23 02:11:53 snj Exp $	   */
 
 /*
  * Copyright (c) 1994 Ludd, University of Lule}, Sweden.
@@ -479,7 +479,7 @@
 #
 
 ENTRY(copyout, 0)
-	movl	8(%ap),%r2
+	movl	8(%ap),%r3
 	blss	3f		# kernel space
 	movl	4(%ap),%r1
 	brb	2f
@@ -487,13 +487,18 @@
 ENTRY(copyin, 0)
 	movl	4(%ap),%r1
 	blss	3f		# kernel space
-	movl	8(%ap),%r2
-2:	mfpr	$PR_ESP,%r3
-	movab	1f,(%r3)
-	movc3	12(%ap),(%r1),(%r2)
-1:	mfpr	$PR_ESP,%r3
-	clrl	(%r3)
+	movl	8(%ap),%r3
+2:	mfpr	$PR_ESP,%r2
+	movab	1f,(%r2)
+4:	tstw	14(%ap)		# check if >= 64K
+	bneq	5f
+	movc3	12(%ap),(%r1),(%r3)
+1:	mfpr	$PR_ESP,%r2
+	clrl	(%r2)
 	ret
+5:	movc3	$0xfffc,(%r1),(%r3)
+	subl2	$0xfffc,12(%ap)
+	brb	4b
 
 3:	mnegl	$1,%r0
 	ret

Reply via email to