usercopy: ARM NOMMU has no 64-bit get_user
authorArnd Bergmann <arnd@arndb.de>
Wed, 22 Feb 2017 19:21:22 +0000 (11:21 -0800)
committerKees Cook <keescook@chromium.org>
Wed, 22 Feb 2017 19:24:08 +0000 (11:24 -0800)
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 normal (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: 4c5d7bc63775 ("usercopy: Add tests for all get_user() sizes")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Kees Cook <keescook@chromium.org>
lib/test_user_copy.c

index 6f335a3..1a8d71a 100644 (file)
@@ -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) &&            \