diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-02-19 00:33:10 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-02-19 00:33:10 +0000 |
commit | 15dba00e0329a4c3ab4235ccdfda4ce63b7fd812 (patch) | |
tree | 0fe8d4f9653c8727a192411a0beb53528ea99846 /include/asm-mips64/uaccess.h | |
parent | aba4e552a2f2c1492441acbccedd8e0a4c53f916 (diff) |
Fix copy_from_user() in modules and 64-bit kernel.
Diffstat (limited to 'include/asm-mips64/uaccess.h')
-rw-r--r-- | include/asm-mips64/uaccess.h | 14 |
1 files changed, 9 insertions, 5 deletions
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) \ |