| From foo@baz Sun Apr 20 18:23:45 PDT 2014 |
| From: Dave Kleikamp <dave.kleikamp@oracle.com> |
| Date: Mon, 16 Dec 2013 15:01:00 -0600 |
| Subject: Revert "sparc64: Fix __copy_{to,from}_user_inatomic defines." |
| |
| From: Dave Kleikamp <dave.kleikamp@oracle.com> |
| |
| [ Upstream commit 16932237f2978a2265662f8de4af743b1f55a209 ] |
| |
| This reverts commit 145e1c0023585e0e8f6df22316308ec61c5066b2. |
| |
| This commit broke the behavior of __copy_from_user_inatomic when |
| it is only partially successful. Instead of returning the number |
| of bytes not copied, it now returns 1. This translates to the |
| wrong value being returned by iov_iter_copy_from_user_atomic. |
| |
| xfstests generic/246 and LTP writev01 both fail on btrfs and nfs |
| because of this. |
| |
| Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com> |
| Cc: Hugh Dickins <hughd@google.com> |
| Cc: David S. Miller <davem@davemloft.net> |
| Cc: sparclinux@vger.kernel.org |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/sparc/include/asm/uaccess_64.h | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/arch/sparc/include/asm/uaccess_64.h |
| +++ b/arch/sparc/include/asm/uaccess_64.h |
| @@ -262,8 +262,8 @@ extern unsigned long __must_check __clea |
| extern __must_check long strlen_user(const char __user *str); |
| extern __must_check long strnlen_user(const char __user *str, long n); |
| |
| -#define __copy_to_user_inatomic ___copy_to_user |
| -#define __copy_from_user_inatomic ___copy_from_user |
| +#define __copy_to_user_inatomic __copy_to_user |
| +#define __copy_from_user_inatomic __copy_from_user |
| |
| struct pt_regs; |
| extern unsigned long compute_effective_address(struct pt_regs *, |