linux-sg2042/arch/s390/lib
Heiko Carstens 066c437359 s390/uaccess: fix kernel ds access for page table walk
When the kernel resides in home space and the mvcos instruction is not
available uaccesses for kernel ds happen via simple strnlen() or memcpy()
calls.
This however can break badly, since uaccesses in kernel space may fail as
well, especially if CONFIG_DEBUG_PAGEALLOC is turned on.

To fix this implement strnlen_kernel() and copy_in_kernel() functions
which can only be used by the page table uaccess functions. These two
functions detect invalid memory accesses and return the correct length
of processed data.. Both functions are more or less a copy of the std
variants without sacf calls.

Fixes ipl crashes on 31 bit machines as well on 64 bit machines without
mvcos. Caused by changing the default address space of the kernel being
home space.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2013-02-28 09:37:12 +01:00
..
Makefile s390/string: provide asm lib functions for memcpy and memcmp 2012-09-26 15:44:50 +02:00
delay.c s390/time: rename tod clock access functions 2013-02-14 15:55:10 +01:00
div64.c s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
mem32.S s390/string: provide asm lib functions for memcpy and memcmp 2012-09-26 15:44:50 +02:00
mem64.S s390/string: provide asm lib functions for memcpy and memcmp 2012-09-26 15:44:50 +02:00
qrnnd.S [S390] fix s390 assembler code alignments 2011-07-24 10:48:21 +02:00
spinlock.c s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
string.c s390/string: provide asm lib functions for memcpy and memcmp 2012-09-26 15:44:50 +02:00
uaccess.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
uaccess_mvcos.c s390/uaccess: fix strncpy_from_user/strnlen_user zero maxlen case 2013-02-28 09:37:08 +01:00
uaccess_pt.c s390/uaccess: fix kernel ds access for page table walk 2013-02-28 09:37:12 +01:00
uaccess_std.c s390/uaccess: fix strncpy_from_user string length check 2013-02-28 09:37:11 +01:00
ucmpdi2.c [S390] add __ucmpdi2() helper function 2009-07-07 16:37:53 +02:00
usercopy.c [S390] uaccess: implement strict user copy checks 2010-02-26 22:37:29 +01:00