summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-02-19 00:33:10 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-02-19 00:33:10 +0000
commit15dba00e0329a4c3ab4235ccdfda4ce63b7fd812 (patch)
tree0fe8d4f9653c8727a192411a0beb53528ea99846 /include
parentaba4e552a2f2c1492441acbccedd8e0a4c53f916 (diff)
Fix copy_from_user() in modules and 64-bit kernel.
Diffstat (limited to 'include')
-rw-r--r--include/asm-mips/uaccess.h10
-rw-r--r--include/asm-mips64/uaccess.h14
2 files changed, 16 insertions, 8 deletions
diff --git a/include/asm-mips/uaccess.h b/include/asm-mips/uaccess.h
index 62432d9b4..a6521630d 100644
--- a/include/asm-mips/uaccess.h
+++ b/include/asm-mips/uaccess.h
@@ -1,4 +1,4 @@
-/* $Id: uaccess.h,v 1.9 1999/10/09 00:01:43 ralf Exp $
+/* $Id: uaccess.h,v 1.10 1999/12/04 03:59:12 ralf Exp $
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
@@ -323,10 +323,12 @@ extern size_t __copy_user(void *__to, const void *__from, size_t __n);
"move\t$4, %1\n\t" \
"move\t$5, %2\n\t" \
"move\t$6, %3\n\t" \
+ ".set\tnoreorder\n\t" \
".set\tnoat\n\t" \
+ __MODULE_JAL(__copy_user) \
"addu\t$1, %2, %3\n\t" \
".set\tat\n\t" \
- __MODULE_JAL(__copy_user) \
+ ".set\treorder\n\t" \
"move\t%0, $6" \
: "=r" (__cu_len) \
: "r" (__cu_to), "r" (__cu_from), "r" (__cu_len) \
@@ -370,10 +372,12 @@ extern size_t __copy_user(void *__to, const void *__from, size_t __n);
"move\t$4, %1\n\t" \
"move\t$5, %2\n\t" \
"move\t$6, %3\n\t" \
+ ".set\tnoreorder\n\t" \
".set\tnoat\n\t" \
+ __MODULE_JAL(__copy_user) \
"addu\t$1, %2, %3\n\t" \
".set\tat\n\t" \
- __MODULE_JAL(__copy_user) \
+ ".set\treorder\n\t" \
"move\t%0, $6" \
: "=r" (__cu_len) \
: "r" (__cu_to), "r" (__cu_from), "r" (__cu_len) \
diff --git a/include/asm-mips64/uaccess.h b/include/asm-mips64/uaccess.h
index a1950af06..861ac3efb 100644
--- a/include/asm-mips64/uaccess.h
+++ b/include/asm-mips64/uaccess.h
@@ -1,4 +1,4 @@
-/* $Id: uaccess.h,v 1.2 1999/08/19 22:56:35 ralf Exp $
+/* $Id: uaccess.h,v 1.3 1999/12/04 03:59:12 ralf Exp $
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive
@@ -261,10 +261,12 @@ extern size_t __copy_user(void *__to, const void *__from, size_t __n);
"move\t$4, %1\n\t" \
"move\t$5, %2\n\t" \
"move\t$6, %3\n\t" \
+ ".set\tnoreorder\n\t" \
".set\tnoat\n\t" \
- "addu\t$1, %2, %3\n\t" \
- ".set\tat\n\t" \
__MODULE_JAL(__copy_user) \
+ "daddu\t$1, %2, %3\n\t" \
+ ".set\tat\n\t" \
+ ".set\treorder\n\t" \
"move\t%0, $6" \
: "=r" (__cu_len) \
: "r" (__cu_to), "r" (__cu_from), "r" (__cu_len) \
@@ -308,10 +310,12 @@ extern size_t __copy_user(void *__to, const void *__from, size_t __n);
"move\t$4, %1\n\t" \
"move\t$5, %2\n\t" \
"move\t$6, %3\n\t" \
+ ".set\tnoreorder\n\t" \
".set\tnoat\n\t" \
- "addu\t$1, %2, %3\n\t" \
- ".set\tat\n\t" \
__MODULE_JAL(__copy_user) \
+ "daddu\t$1, %2, %3\n\t" \
+ ".set\tat\n\t" \
+ ".set\treorder\n\t" \
"move\t%0, $6" \
: "=r" (__cu_len) \
: "r" (__cu_to), "r" (__cu_from), "r" (__cu_len) \