From: Guenter Roeck Date: Thu, 13 Mar 2025 11:43:25 +0000 (+0000) Subject: s390: add support for suppressing warning backtraces X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=8bb4e7edef06cda1ea32227c749c29fbf46d9acf;p=users%2Fwilly%2Fpagecache.git s390: add support for suppressing warning backtraces Add name of functions triggering warning backtraces to the __bug_table object section to enable support for suppressing WARNING backtraces. To limit image size impact, the pointer to the function name is only added to the __bug_table section if both CONFIG_KUNIT_SUPPRESS_BACKTRACE and CONFIG_DEBUG_BUGVERBOSE are enabled. Otherwise, the __func__ assembly parameter is replaced with a (dummy) NULL parameter to avoid an image size increase due to unused __func__ entries (this is necessary because __func__ is not a define but a virtual variable). Link: https://lkml.kernel.org/r/20250313114329.284104-11-acarmina@redhat.com Signed-off-by: Guenter Roeck Signed-off-by: Alessandro Carminati Tested-by: Linux Kernel Functional Testing Acked-by: Dan Carpenter Cc: Heiko Carstens Cc: Vasily Gorbik Cc: Alexander Gordeev Cc: Albert Ou Cc: Arnd Bergmann Cc: Arthur Grillo Cc: Borislav Petkov Cc: Brendan Higgins Cc: Catalin Marinas Cc: Charlie Jenkins Cc: Daniel Diaz Cc: Daniel Vetter Cc: Dave Airlie Cc: Dave Hansen Cc: David Gow Cc: Helge Deller Cc: Huacai Chen Cc: Ingo Molnar Cc: Jani Nikula Cc: John Paul Adrian Glaubitz Cc: Kees Cook Cc: Maarten Lankhorst Cc: MaĆ­ra Canal Cc: Maxime Ripard Cc: Michael Ellerman Cc: Naresh Kamboju Cc: Palmer Dabbelt Cc: Paul Walmsley Cc: Rae Moar Cc: Rich Felker Cc: Simon Horman Cc: Thomas Gleixner Cc: Thomas Zimemrmann Cc: Ville Syrjala Cc: Will Deacon Cc: Yoshinori Sato Signed-off-by: Andrew Morton --- diff --git a/arch/s390/include/asm/bug.h b/arch/s390/include/asm/bug.h index c500d45fb465c..44d4e9f24ae0e 100644 --- a/arch/s390/include/asm/bug.h +++ b/arch/s390/include/asm/bug.h @@ -8,6 +8,15 @@ #ifdef CONFIG_DEBUG_BUGVERBOSE +#ifdef CONFIG_KUNIT_SUPPRESS_BACKTRACE +# define HAVE_BUG_FUNCTION +# define __BUG_FUNC_PTR " .long %0-.\n" +# define __BUG_FUNC __func__ +#else +# define __BUG_FUNC_PTR +# define __BUG_FUNC NULL +#endif /* CONFIG_KUNIT_SUPPRESS_BACKTRACE */ + #define __EMIT_BUG(x) do { \ asm_inline volatile( \ "0: mc 0,0\n" \ @@ -17,10 +26,12 @@ ".section __bug_table,\"aw\"\n" \ "2: .long 0b-.\n" \ " .long 1b-.\n" \ - " .short %0,%1\n" \ - " .org 2b+%2\n" \ + __BUG_FUNC_PTR \ + " .short %1,%2\n" \ + " .org 2b+%3\n" \ ".previous\n" \ - : : "i" (__LINE__), \ + : : "i" (__BUG_FUNC), \ + "i" (__LINE__), \ "i" (x), \ "i" (sizeof(struct bug_entry))); \ } while (0)