Module Name: src
Committed By: maxv
Date: Sat Nov 21 12:34:48 UTC 2015
Modified Files:
src/sys/arch/amd64/amd64: copy.S
Log Message:
Remove the amd64 implementation of fuword and suword. They are not used in
the MI+amd64 code - Christos replaced them yesterday by copy*.
They are both buggy:
- suword does not properly check the userspace limit: 64 bits are copied,
but the max address checked is VM_MAXUSER_ADDRESS-4, which means that 4
bytes may overflow. Reported by Ed Schouten.
- fuword is supposed to be symmetrical with suword. But it uses 32bit
registers, so it stores 32bit values! Spotted by Chuck (chs@).
To generate a diff of this commit:
cvs rdiff -u -r1.18 -r1.19 src/sys/arch/amd64/amd64/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/amd64/amd64/copy.S
diff -u src/sys/arch/amd64/amd64/copy.S:1.18 src/sys/arch/amd64/amd64/copy.S:1.19
--- src/sys/arch/amd64/amd64/copy.S:1.18 Wed Jul 7 01:13:29 2010
+++ src/sys/arch/amd64/amd64/copy.S Sat Nov 21 12:34:48 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: copy.S,v 1.18 2010/07/07 01:13:29 chs Exp $ */
+/* $NetBSD: copy.S,v 1.19 2015/11/21 12:34:48 maxv Exp $ */
/*
* Copyright (c) 2001 Wasabi Systems, Inc.
@@ -359,19 +359,6 @@ ENTRY(copystr)
7: ret
-ENTRY(fuword)
- DEFERRED_SWITCH_CHECK
- movq $VM_MAXUSER_ADDRESS-4,%r11
- cmpq %r11,%rdi
- ja _C_LABEL(fusuaddrfault)
- GET_CURPCB(%rcx)
- leaq _C_LABEL(fusufailure)(%rip),%r11
- movq %r11,PCB_ONFAULT(%rcx)
- movl (%rdi),%eax
- movq $0,PCB_ONFAULT(%rcx)
- ret
- DEFERRED_SWITCH_CALL
-
ENTRY(fusword)
DEFERRED_SWITCH_CHECK
movq $VM_MAXUSER_ADDRESS-2,%r11
@@ -411,22 +398,6 @@ ENTRY(fubyte)
ret
DEFERRED_SWITCH_CALL
-ENTRY(suword)
- DEFERRED_SWITCH_CHECK
- movq $VM_MAXUSER_ADDRESS-4,%r11
- cmpq %r11,%rdi
- ja _C_LABEL(fusuaddrfault)
-
- GET_CURPCB(%rcx)
- leaq _C_LABEL(fusufailure)(%rip),%r11
- movq %r11,PCB_ONFAULT(%rcx)
-
- movq %rsi,(%rdi)
- xorq %rax,%rax
- movq %rax,PCB_ONFAULT(%rcx)
- ret
- DEFERRED_SWITCH_CALL
-
ENTRY(susword)
DEFERRED_SWITCH_CHECK
movq $VM_MAXUSER_ADDRESS-2,%r11