diff options
Diffstat (limited to 'arch/arm/kernel/swp_emulate.c')
| -rw-r--r-- | arch/arm/kernel/swp_emulate.c | 3 | 
1 files changed, 3 insertions, 0 deletions
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;  |