Re: asm-generic: Disallow no-op mb() for SMP systems

From: kbuild test robot
Date: Fri Feb 02 2018 - 15:01:07 EST


Hi Peter,

I love your patch! Yet something to improve:

[auto build test ERROR on asm-generic/master]
[also build test ERROR on v4.15 next-20180202]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Peter-Zijlstra/asm-generic-Disallow-no-op-mb-for-SMP-systems/20180203-000108
base: https://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git master
config: m32r-usrv_defconfig (attached as .config)
compiler: m32r-linux-gcc (GCC) 7.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=m32r

All errors (new ones prefixed by >>):

In file included from arch/m32r/include/asm/barrier.h:14:0,
from arch/m32r/include/asm/atomic.h:16,
from include/linux/atomic.h:4,
from include/linux/filter.h:9,
from include/net/sock_reuseport.h:4,
from net/core/sock_reuseport.c:8:
include/asm-generic/atomic-long.h: In function 'atomic_long_read_acquire':
>> include/asm-generic/barrier.h:64:20: error: implicit declaration of function 'mb'; did you mean 'wmb'? [-Werror=implicit-function-declaration]
#define __smp_mb() mb()
^
include/asm-generic/barrier.h:143:2: note: in expansion of macro '__smp_mb'
__smp_mb(); \
^~~~~~~~
include/asm-generic/barrier.h:167:29: note: in expansion of macro '__smp_load_acquire'
#define smp_load_acquire(p) __smp_load_acquire(p)
^~~~~~~~~~~~~~~~~~
include/linux/atomic.h:26:34: note: in expansion of macro 'smp_load_acquire'
#define atomic_read_acquire(v) smp_load_acquire(&(v)->counter)
^~~~~~~~~~~~~~~~
include/asm-generic/atomic-long.h:33:28: note: in expansion of macro 'atomic_read_acquire'
#define ATOMIC_LONG_PFX(x) atomic ## x
^~~~~~
include/asm-generic/atomic-long.h:42:15: note: in expansion of macro 'ATOMIC_LONG_PFX'
return (long)ATOMIC_LONG_PFX(_read##mo)(v); \
^~~~~~~~~~~~~~~
include/asm-generic/atomic-long.h:45:1: note: in expansion of macro 'ATOMIC_LONG_READ_OP'
ATOMIC_LONG_READ_OP(_acquire)
^~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors

vim +64 include/asm-generic/barrier.h

885df91c David Howells 2012-03-28 62
a9e4252a Michael S. Tsirkin 2015-12-27 63 #ifndef __smp_mb
a9e4252a Michael S. Tsirkin 2015-12-27 @64 #define __smp_mb() mb()
a9e4252a Michael S. Tsirkin 2015-12-27 65 #endif
a9e4252a Michael S. Tsirkin 2015-12-27 66

:::::: The code at line 64 was first introduced by commit
:::::: a9e4252a9b147043142282ebb65da94dcb951e2a asm-generic: add __smp_xxx wrappers

:::::: TO: Michael S. Tsirkin <mst@xxxxxxxxxx>
:::::: CC: Michael S. Tsirkin <mst@xxxxxxxxxx>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip