Hi,
On Wed, Jun 12, 2024 at 12:59:18PM -0700, Kees Cook wrote:
For tests that need to allocate using vm_mmap() (e.g. usercopy and execve), provide the interface to have the allocation tracked by KUnit itself. This requires bringing up a placeholder userspace mm.
This combines my earlier attempt at this with Mark Rutland's version[1].
Normally alloc_mm() and arch_pick_mmap_layout() aren't exported for modules, so export these only for KUnit testing.
Link: https://lore.kernel.org/lkml/20230321122514.1743889-2-mark.rutland@arm.com/ [1]
FWIW, not sure I understand what the above link has to do with this patch.
Co-developed-by: Mark Rutland mark.rutland@arm.com Signed-off-by: Mark Rutland mark.rutland@arm.com Reviewed-by: David Gow davidgow@google.com Signed-off-by: Kees Cook kees@kernel.org
This patch results in a build failure for nommu_kc705_defconfig if kunit tests are also enabled.
ERROR: modpost: vmlinux: local symbol 'arch_pick_mmap_layout' was exported
If CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=n, CONFIG_MMU=n, and CONFIG_KUNIT=y, arch_pick_mmap_layout is exported. However, if CONFIG_MMU=n, it is declared as static inline function.
Guenter
--- bisect log:
# bad: [b992b79ca8bc336fa8e2c80990b5af80ed8f36fd] Add linux-next specific files for 20240620 # good: [6ba59ff4227927d3a8530fc2973b80e94b54d58f] Linux 6.10-rc4 git bisect start 'HEAD' 'v6.10-rc4' # good: [c02e717c5a89654b244fec58bb5cda32770966b5] Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git git bisect good c02e717c5a89654b244fec58bb5cda32770966b5 # good: [29e7d78253b7ebf4b76fcf6d95e227d0b0c57dc0] Merge branch 'msm-next' of https://gitlab.freedesktop.org/drm/msm.git git bisect good 29e7d78253b7ebf4b76fcf6d95e227d0b0c57dc0 # good: [bf8fd0d956bfcbf4fd6ff063366374c4bf87d806] Merge branch 'non-rcu/next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git git bisect good bf8fd0d956bfcbf4fd6ff063366374c4bf87d806 # good: [1110f16317b1e0742521eaef5613eb1eb17f55ca] Merge branch 'icc-next' of git://git.kernel.org/pub/scm/linux/kernel/git/djakov/icc.git git bisect good 1110f16317b1e0742521eaef5613eb1eb17f55ca # good: [63f3716198e5644713748d83e6a6df3b4a6a3b10] Merge branch 'gpio/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git git bisect good 63f3716198e5644713748d83e6a6df3b4a6a3b10 # bad: [91b48d9adafddb242264ba19c0bae6e23f71b18a] Merge branch 'kunit' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git git bisect bad 91b48d9adafddb242264ba19c0bae6e23f71b18a # good: [9b401f4a7170125365160c9af267a41ff6b39001] pinctrl: ti: ti-iodelay: fix possible memory leak when pinctrl_enable() fails git bisect good 9b401f4a7170125365160c9af267a41ff6b39001 # good: [1963f932d368f18185466979cc0bc89414d798e7] Merge branch 'pwm/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux.git git bisect good 1963f932d368f18185466979cc0bc89414d798e7 # good: [f91869accbe23a2bb08712b7262fa61eab716d42] selftests/resctrl: Simplify bandwidth report type handling git bisect good f91869accbe23a2bb08712b7262fa61eab716d42 # good: [cbf284291604e818424f45dbdf6a8a705b5480ad] Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git git bisect good cbf284291604e818424f45dbdf6a8a705b5480ad # good: [a5217468214c228b89da37291de604cd756914ab] kunit: add missing MODULE_DESCRIPTION() macros to core modules git bisect good a5217468214c228b89da37291de604cd756914ab # bad: [51104c19d8570eb23208e08eac0e9ae09ced1c15] kunit: test: Add vm_mmap() allocation resource manager git bisect bad 51104c19d8570eb23208e08eac0e9ae09ced1c15 # good: [425ae3ab5a1fa744a00680f059cf1accaaaecb28] list: test: add the missing MODULE_DESCRIPTION() macro git bisect good 425ae3ab5a1fa744a00680f059cf1accaaaecb28 # first bad commit: [51104c19d8570eb23208e08eac0e9ae09ced1c15] kunit: test: Add vm_mmap() allocation resource manager