Message ID | 20250213135759.190006-4-fujita.tomonori@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | rust: Add bug/warn abstractions | expand |
On Thu, Feb 13, 2025 at 10:57:57PM +0900, FUJITA Tomonori wrote: > Add new ARCH_WARN_ASM macro for BUG/WARN assembly code sharing with > Rust to avoid the duplication. > > No functional changes. > > Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com> Acked-by: Catalin Marinas <catalin.marinas@arm.com>
On Wed, 26 Feb 2025 19:27:55 +0000 Catalin Marinas <catalin.marinas@arm.com> wrote: > On Thu, Feb 13, 2025 at 10:57:57PM +0900, FUJITA Tomonori wrote: >> Add new ARCH_WARN_ASM macro for BUG/WARN assembly code sharing with >> Rust to avoid the duplication. >> >> No functional changes. >> >> Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com> > > Acked-by: Catalin Marinas <catalin.marinas@arm.com> Thanks a lot! RISC-V and LoongArch maintainers, Can I get an ack? Or you prefer a different approach?
diff --git a/arch/arm64/include/asm/asm-bug.h b/arch/arm64/include/asm/asm-bug.h index 6e73809f6492..a5f13801b784 100644 --- a/arch/arm64/include/asm/asm-bug.h +++ b/arch/arm64/include/asm/asm-bug.h @@ -21,16 +21,21 @@ #endif #ifdef CONFIG_GENERIC_BUG - -#define __BUG_ENTRY(flags) \ +#define __BUG_ENTRY_START \ .pushsection __bug_table,"aw"; \ .align 2; \ 14470: .long 14471f - .; \ -_BUGVERBOSE_LOCATION(__FILE__, __LINE__) \ - .short flags; \ + +#define __BUG_ENTRY_END \ .align 2; \ .popsection; \ 14471: + +#define __BUG_ENTRY(flags) \ + __BUG_ENTRY_START \ +_BUGVERBOSE_LOCATION(__FILE__, __LINE__) \ + .short flags; \ + __BUG_ENTRY_END #else #define __BUG_ENTRY(flags) #endif @@ -41,4 +46,24 @@ _BUGVERBOSE_LOCATION(__FILE__, __LINE__) \ #define ASM_BUG() ASM_BUG_FLAGS(0) +#ifdef CONFIG_DEBUG_BUGVERBOSE +#define __BUG_LOCATION_STRING(file, line) \ + ".long " file "- .;" \ + ".short " line ";" +#else +#define __BUG_LOCATION_STRING(file, line) +#endif + +#define __BUG_ENTRY_STRING(file, line, flags) \ + __stringify(__BUG_ENTRY_START) \ + __BUG_LOCATION_STRING(file, line) \ + ".short " flags ";" \ + __stringify(__BUG_ENTRY_END) + +#define ARCH_WARN_ASM(file, line, flags, size) \ + __BUG_ENTRY_STRING(file, line, flags) \ + __stringify(brk BUG_BRK_IMM) + +#define ARCH_WARN_REACHABLE + #endif /* __ASM_ASM_BUG_H */
Add new ARCH_WARN_ASM macro for BUG/WARN assembly code sharing with Rust to avoid the duplication. No functional changes. Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com> --- arch/arm64/include/asm/asm-bug.h | 33 ++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-)