ARM: make user_addr_max more robust
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Thu, 5 Jun 2014 08:23:10 +0000 (10:23 +0200)
committerUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Tue, 1 Jul 2014 09:12:09 +0000 (11:12 +0200)
commit83de911cf897a4317147dd9cb379378c2c4abf4c
tree0bb9d0b05dce7d740a4d98885a8b44c316e1c5d5
parent03eca200064381d05a54126a711203d443508d80
ARM: make user_addr_max more robust

With CONFIG_MMU=y get_fs() returns current_thread_info()->addr_limit
which is initialized as USER_DS (which in turn is defined to TASK_SIZE)
for userspace processes. At least theoretically
current_thread_info()->addr_limit is changable by set_fs() to a
different limit, so checking for KERNEL_DS is more robust.

With !CONFIG_MMU get_fs returns KERNEL_DS. To see what the old variant
did you'd have to find out that USER_DS == KERNEL_DS which isn't needed
any more with the variant this patch introduces. So it's a bit easier to
understand, too.

Also if the limit was changed this limit should be returned, not
TASK_SIZE.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
arch/arm/include/asm/uaccess.h