Re: [PATCH] usercopy: ARM NOMMU has no 64-bit get_user

From: Kees Cook
Date: Wed Feb 22 2017 - 00:33:44 EST


On Tue, Feb 21, 2017 at 2:01 PM, Arnd Bergmann <arnd@xxxxxxxx> wrote:
> On a NOMMU ARM kernel, we get this link error:
>
> ERROR: "__get_user_bad" [lib/test_user_copy.ko] undefined!
>
> The problem is that the extended get_user/put_user definitions
> were only added for the noral (MMU based) case.
>
> We could add it for NOMMU as well, but it seems easier to just not
> call it, since no other code needs it.
>
> Fixes: 075c4ea5363d ("usercopy: Add tests for all get_user() sizes")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>

Ah, excellent, thanks! I'll get this in.

-Kees

> ---
> lib/test_user_copy.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/lib/test_user_copy.c b/lib/test_user_copy.c
> index 4a79f2c1cd6e..361576b2cb3d 100644
> --- a/lib/test_user_copy.c
> +++ b/lib/test_user_copy.c
> @@ -30,7 +30,8 @@
> * As there doesn't appear to be anything that can safely determine
> * their capability at compile-time, we just have to opt-out certain archs.
> */
> -#if BITS_PER_LONG == 64 || (!defined(CONFIG_AVR32) && \
> +#if BITS_PER_LONG == 64 || (!(defined(CONFIG_ARM) && !defined(MMU)) && \
> + !defined(CONFIG_AVR32) && \
> !defined(CONFIG_BLACKFIN) && \
> !defined(CONFIG_M32R) && \
> !defined(CONFIG_M68K) && \
> --
> 2.9.0
>



--
Kees Cook
Pixel Security