On Fri, May 24, 2019 at 12:35:35PM +0200, Andrea Parri wrote: > The primitive vmci_q_set_pointer() relies on atomic*_set() being of > type 'void', but this is a non-portable implementation detail. > > Reported-by: Mark Rutland <[email protected]> > Signed-off-by: Andrea Parri <[email protected]> > Cc: Arnd Bergmann <[email protected]> > Cc: Greg Kroah-Hartman <[email protected]> > Cc: Jorgen Hansen <[email protected]> > Cc: Peter Zijlstra <[email protected]> > Cc: Will Deacon <[email protected]> > Cc: Mark Rutland <[email protected]> > Cc: "Paul E. McKenney" <[email protected]> > --- > include/linux/vmw_vmci_defs.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/include/linux/vmw_vmci_defs.h b/include/linux/vmw_vmci_defs.h > index 0c06178e4985b..eb593868e2e9e 100644 > --- a/include/linux/vmw_vmci_defs.h > +++ b/include/linux/vmw_vmci_defs.h > @@ -759,9 +759,9 @@ static inline void vmci_q_set_pointer(atomic64_t *var, > u64 new_val) > { > #if defined(CONFIG_X86_32) > - return atomic_set((atomic_t *)var, (u32)new_val); > + atomic_set((atomic_t *)var, (u32)new_val); > #else > - return atomic64_set(var, new_val); > + atomic64_set(var, new_val); > #endif > }
All that should just die a horrible death. That code is crap. See: lkml.kernel.org/r/[email protected]

