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

Stephen Rothwell posted 1 patch 2 months, 2 weeks ago
There is a newer version of this series
linux-next: manual merge of the rust tree with the tip tree
Posted by Stephen Rothwell 2 months, 2 weeks ago
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>
Re: linux-next: manual merge of the rust tree with the tip tree
Posted by Stephen Rothwell 2 months ago
Hi all,

On Wed, 23 Jul 2025 11:05:37 +1000 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
> 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.
> 
> 
> 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>

This is now a conflict between the tip tree and Linus' tree.

-- 
Cheers,
Stephen Rothwell