metag/usercopy: Fix alignment error checking
authorJames Hogan <james.hogan@imgtec.com>
Fri, 31 Mar 2017 10:23:18 +0000 (11:23 +0100)
committerSasha Levin <alexander.levin@verizon.com>
Wed, 17 May 2017 19:08:20 +0000 (15:08 -0400)
commitfde1ed807fc632dbc029171648ddf7e906a62d7b
tree1e1c4878c0ea23939ee4d0f5eddf834173fa1a5b
parent59465f2b425d913d6cff86c429a8623b4eb6067d
metag/usercopy: Fix alignment error checking

[ Upstream commit 2257211942bbbf6c798ab70b487d7e62f7835a1a ]

Fix the error checking of the alignment adjustment code in
raw_copy_from_user(), which mistakenly considers it safe to skip the
error check when aligning the source buffer on a 2 or 4 byte boundary.

If the destination buffer was unaligned it may have started to copy
using byte or word accesses, which could well be at the start of a new
(valid) source page. This would result in it appearing to have copied 1
or 2 bytes at the end of the first (invalid) page rather than none at
all.

Fixes: 373cd784d0fc ("metag: Memory handling")
Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: linux-metag@vger.kernel.org
Cc: stable@vger.kernel.org
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
arch/metag/lib/usercopy.c