Message ID | E1ZUHEL-000337-7Q@rmk-PC.arm.linux.org.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
diff --git a/arch/arm/kernel/swp_emulate.c b/arch/arm/kernel/swp_emulate.c index 1361756782c7..5b26e7efa9ea 100644 --- a/arch/arm/kernel/swp_emulate.c +++ b/arch/arm/kernel/swp_emulate.c @@ -141,11 +141,14 @@ static int emulate_swpX(unsigned int address, unsigned int *data, while (1) { unsigned long temp; + unsigned int __ua_flags; + __ua_flags = uaccess_save_and_enable(); if (type == TYPE_SWPB) __user_swpb_asm(*data, address, res, temp); else __user_swp_asm(*data, address, res, temp); + uaccess_restore(__ua_flags); if (likely(res != -EAGAIN) || signal_pending(current)) break;
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> --- Local testing found this direct userspace access from the kernel. I'll be rolling this into patch 10 tomorrow, but for the time being I'm adding it on top of the set. arch/arm/kernel/swp_emulate.c | 3 +++ 1 file changed, 3 insertions(+)