Since arch_pick_mmap_layout() is an inline for non-MMU systems, disable
this test there.

Reported-by: kernel test robot <l...@intel.com>
Closes: 
https://lore.kernel.org/oe-kbuild-all/202406160505.ubge6tmy-...@intel.com/
Signed-off-by: Kees Cook <k...@kernel.org>
---
Cc: Brendan Higgins <brendan.higg...@linux.dev>
Cc: David Gow <david...@google.com>
Cc: Rae Moar <rm...@google.com>
Cc: "Gustavo A. R. Silva" <gustavo...@kernel.org>
Cc: Andrew Morton <a...@linux-foundation.org>
Cc: linux-kselftest@vger.kernel.org
Cc: kunit-...@googlegroups.com
Cc: linux-harden...@vger.kernel.org
Cc: linux...@kvack.org
---
 lib/kunit/user_alloc.c | 4 ++++
 lib/usercopy_kunit.c   | 5 +++++
 mm/util.c              | 2 ++
 3 files changed, 11 insertions(+)

diff --git a/lib/kunit/user_alloc.c b/lib/kunit/user_alloc.c
index 76d3d1345ed7..ae935df09a5e 100644
--- a/lib/kunit/user_alloc.c
+++ b/lib/kunit/user_alloc.c
@@ -30,6 +30,10 @@ static int kunit_attach_mm(void)
        if (current->mm)
                return 0;
 
+       /* arch_pick_mmap_layout() is only sane with MMU systems. */
+       if (!IS_ENABLED(CONFIG_MMU))
+               return -EINVAL;
+
        mm = mm_alloc();
        if (!mm)
                return -ENOMEM;
diff --git a/lib/usercopy_kunit.c b/lib/usercopy_kunit.c
index 45f1e558c464..e819561a540d 100644
--- a/lib/usercopy_kunit.c
+++ b/lib/usercopy_kunit.c
@@ -290,6 +290,11 @@ static int usercopy_test_init(struct kunit *test)
        struct usercopy_test_priv *priv;
        unsigned long user_addr;
 
+       if (!IS_ENABLED(CONFIG_MMU)) {
+               kunit_skip(test, "Userspace allocation testing not available on 
non-MMU systems");
+               return 0;
+       }
+
        priv = kunit_kzalloc(test, sizeof(*priv), GFP_KERNEL);
        KUNIT_ASSERT_NOT_ERR_OR_NULL(test, priv);
        test->priv = priv;
diff --git a/mm/util.c b/mm/util.c
index df37c47d9374..e70e8e439258 100644
--- a/mm/util.c
+++ b/mm/util.c
@@ -484,7 +484,9 @@ void arch_pick_mmap_layout(struct mm_struct *mm, struct 
rlimit *rlim_stack)
        clear_bit(MMF_TOPDOWN, &mm->flags);
 }
 #endif
+#ifdef CONFIG_MMU
 EXPORT_SYMBOL_IF_KUNIT(arch_pick_mmap_layout);
+#endif
 
 /**
  * __account_locked_vm - account locked pages to an mm's locked_vm
-- 
2.34.1


Reply via email to