Subject: linux-next: manual merge of the rust tree with the tip tree

From: Stephen Rothwell <[email-masked]>
Date: Wed, 23 Jul 2025 11:05:37 +1000

Hi all,

Today's linux-next merge of the rust tree got a conflict in:

  arch/riscv/include/asm/bug.h

between commit:

  ac2655438eb5 ("bugs/riscv: Pass in 'cond_str' to __BUG_FLAGS()")

from the tip tree and commit:

  8ad470d4e3dc ("riscv/bug: Add ARCH_WARN_ASM macro for BUG/WARN asm code sharing with Rust")

from the rust tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc arch/riscv/include/asm/bug.h
index da9b8e83934d,4c03e20ad11f..000000000000
--- a/arch/riscv/include/asm/bug.h
+++ b/arch/riscv/include/asm/bug.h
@@@ -57,16 -56,22 +56,22 @@@ typedef u32 bug_insn_t
  			"ebreak\n"				\
  			".pushsection __bug_table,\"aw\"\n\t"	\
  		"2:\n\t"					\
- 			__BUG_ENTRY "\n\t"			\
- 			".org 2b + %3\n\t"                      \
+ 		__BUG_ENTRY(file, line, flags) "\n\t"		\
+ 			".org 2b + " size "\n\t"                \
  			".popsection"				\
+ 
 -#define __BUG_FLAGS(flags)					\
++#define __BUG_FLAGS(cond_str, flags)				\
+ do {								\
+ 	__asm__ __volatile__ (					\
+ 		ARCH_WARN_ASM("%0", "%1", "%2", "%3")		\
  		:						\
 -		: "i" (__FILE__), "i" (__LINE__),		\
 +		: "i" (WARN_CONDITION_STR(cond_str) __FILE__), "i" (__LINE__),	\
  		  "i" (flags),					\
  		  "i" (sizeof(struct bug_entry)));              \
  } while (0)
+ 
  #else /* CONFIG_GENERIC_BUG */
 -#define __BUG_FLAGS(flags) do {					\
 +#define __BUG_FLAGS(cond_str, flags) do {			\
  	__asm__ __volatile__ ("ebreak\n");			\
  } while (0)
  #endif /* CONFIG_GENERIC_BUG */
@@@ -76,8 -81,10 +81,10 @@@
  	unreachable();						\
  } while (0)
  
 -#define __WARN_FLAGS(flags) __BUG_FLAGS(BUGFLAG_WARNING|(flags))
 +#define __WARN_FLAGS(cond_str, flags) __BUG_FLAGS(cond_str, BUGFLAG_WARNING|(flags))
  
+ #define ARCH_WARN_REACHABLE
+ 
  #define HAVE_ARCH_BUG
  
  #include <asm-generic/bug.h>