ARM: 8731/1: Fix csum_partial_copy_from_user() stack mismatch
authorChunyan Zhang <zhang.lyra@gmail.com>
Fri, 1 Dec 2017 02:51:04 +0000 (03:51 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 3 Mar 2018 09:23:21 +0000 (10:23 +0100)
commitdb1e8814be999976ea901e9cf7d2e0134e938b31
tree5cfe9e947f06c6fb83a225c4c3e7b79150886bb8
parent3cf31f5b38ed1d78d39e9fb1d460c4684690ec1e
ARM: 8731/1: Fix csum_partial_copy_from_user() stack mismatch

[ Upstream commit 36b0cb84ee858f02c256d26f0cb4229c78e3399e ]

An additional 'ip' will be pushed to the stack, for restoring the
DACR later, if CONFIG_CPU_SW_DOMAIN_PAN defined.

However, the fixup still get the err_ptr by add #8*4 to sp, which
results in the fact that the code area pointed by the LR will be
overwritten, or the kernel will crash if CONFIG_DEBUG_RODATA is enabled.

This patch fixes the stack mismatch.

Fixes: a5e090acbf54 ("ARM: software-based priviledged-no-access support")
Signed-off-by: Lvqiang Huang <Lvqiang.Huang@spreadtrum.com>
Signed-off-by: Chunyan Zhang <zhang.lyra@gmail.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/arm/lib/csumpartialcopyuser.S