kgdbts: Switch to do_sys_openat2() for breakpoint testing
authorDaniel Thompson <daniel.thompson@linaro.org>
Thu, 25 Mar 2021 09:48:07 +0000 (09:48 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 28 Mar 2021 12:40:08 +0000 (14:40 +0200)
commit1114ab22e417427d8dced25be02c15f479de8d41
tree01b3b00a6e543294a10f3f7be5ce907b91a6cd38
parentdbdc671d5c855f05125e3a002b819978ac2190b9
kgdbts: Switch to do_sys_openat2() for breakpoint testing

Currently kgdbts can get stuck waiting for do_sys_open() to be called
in some of the current tests. This is because C compilers often
automatically inline this function, which is a very thin wrapper around
do_sys_openat2(), into some of its callers. gcc-10 does this on (at least)
both x86 and arm64.

We can fix the test suite by placing the breakpoints on do_sys_openat2()
instead since that isn't (currently) inlined. However do_sys_openat2() is
a static function so we cannot simply use an addressof. Since we are
testing debug machinery it is acceptable to use kallsyms to lookup a
suitable address because this is more or less what kdb does in the same
circumstances. Re-implement lookup_addr() to be based on kallsyms rather
than function pointers.

Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Link: https://lore.kernel.org/r/20210325094807.3546702-1-daniel.thompson@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/kgdbts.c