Hi Mark, Thanks for doing linux-next in sfr's absence. The merge resolution below is not quite right ... broonie@xxxxxxxxxx writes: > Hi all, > > Today's linux-next merge of the bitmap tree got a conflict in: > > arch/powerpc/include/asm/archrandom.h > > between commit: > > d349ab99eec7a ("random: handle archrandom with multiple longs") > > from the random tree and commit: > > 3e731203153de ("powerpc: drop dependency on <asm/machdep.h> in archrandom.h") > > from the bitmap 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/powerpc/include/asm/archrandom.h > index 564859e6a807c,21def59ef1a68..0000000000000 > --- a/arch/powerpc/include/asm/archrandom.h > +++ b/arch/powerpc/include/asm/archrandom.h > @@@ -2,22 -2,41 +2,17 @@@ > #ifndef _ASM_POWERPC_ARCHRANDOM_H > #define _ASM_POWERPC_ARCHRANDOM_H > > -#ifdef CONFIG_ARCH_RANDOM > +#include <asm/machdep.h> This include must be dropped. > -bool __must_check arch_get_random_seed_long(unsigned long *v); > - > -static inline bool __must_check arch_get_random_long(unsigned long *v) > +static inline size_t __must_check arch_get_random_longs(unsigned long *v, size_t max_longs) > { > - return false; > + return 0; > } > > - static inline size_t __must_check arch_get_random_seed_longs(unsigned long *v, size_t max_longs) > -static inline bool __must_check arch_get_random_int(unsigned int *v) > --{ > - if (max_longs && ppc_md.get_random_seed && ppc_md.get_random_seed(v)) > - return 1; > - return 0; > - return false; > -} > - > - > -static inline bool __must_check arch_get_random_seed_int(unsigned int *v) > -{ > - unsigned long val; > - bool rc; > - > - rc = arch_get_random_seed_long(&val); > - if (rc) > - *v = val; > - > - return rc; > --} > -#endif /* CONFIG_ARCH_RANDOM */ > ++size_t __must_check arch_get_random_seed_longs(unsigned long *v, size_t max_longs); > > #ifdef CONFIG_PPC_POWERNV > -int powernv_hwrng_present(void); > -int powernv_get_random_long(unsigned long *v); > -int powernv_get_random_real_mode(unsigned long *v); > -#else > -static inline int powernv_hwrng_present(void) { return 0; } > -static inline int powernv_get_random_real_mode(unsigned long *v) { return 0; } > +int pnv_get_random_long(unsigned long *v); > #endif > > #endif /* _ASM_POWERPC_ARCHRANDOM_H */ > diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c > index 3b1cf9ca4814b..951822145600e 100644 > --- a/arch/powerpc/kernel/setup-common.c > +++ b/arch/powerpc/kernel/setup-common.c > @@ -172,12 +172,12 @@ void (*pm_power_off)(void); > EXPORT_SYMBOL_GPL(pm_power_off); > > #ifdef CONFIG_ARCH_RANDOM This ifdef must be dropped entirely, it was removed in Jason's tree. > -bool __must_check arch_get_random_seed_long(unsigned long *v) > +size_T __must_check arch_get_random_seed_longs(unsigned long *v, size_t max_longs) Typo, should be size_t. > { > - if (ppc_md.get_random_seed) > - return ppc_md.get_random_seed(v); > + if (max_longs && ppc_md.get_random_seed && ppc_md.get_random_seed(v)) > + return 1; > > - return false; > + return 0; > } > EXPORT_SYMBOL(arch_get_random_seed_long); The export needs to be updated to "arch_get_random_seed_longs". I've attached the end state of archrandom.h and the hunk in setup-common.c below for reference. cheers ==== arch/powerpc/kernel/setup-common.c ==== ... size_t __must_check arch_get_random_seed_longs(unsigned long *v, size_t max_longs) { if (max_longs && ppc_md.get_random_seed && ppc_md.get_random_seed(v)) return 1; return 0; } EXPORT_SYMBOL(arch_get_random_seed_longs); ... ==== arch/powerpc/include/asm/archrandom.h ==== /* SPDX-License-Identifier: GPL-2.0 */ #ifndef _ASM_POWERPC_ARCHRANDOM_H #define _ASM_POWERPC_ARCHRANDOM_H static inline size_t __must_check arch_get_random_longs(unsigned long *v, size_t max_longs) { return 0; } size_t __must_check arch_get_random_seed_longs(unsigned long *v, size_t max_longs); #ifdef CONFIG_PPC_POWERNV int pnv_get_random_long(unsigned long *v); #endif #endif /* _ASM_POWERPC_ARCHRANDOM_H */