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

From: kbuild test robot
Date: Fri Feb 02 2018 - 14:14:57 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: mn10300-asb2364_defconfig (attached as .config)
compiler: am33_2.0-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=mn10300

All errors (new ones prefixed by >>):

warning: (MN10300) selects HAVE_NMI_WATCHDOG which has unmet direct dependencies (HAVE_NMI)
warning: (MN10300) selects HAVE_NMI_WATCHDOG which has unmet direct dependencies (HAVE_NMI)
In file included from ./arch/mn10300/include/generated/asm/barrier.h:1:0,
from arch/mn10300/include/asm/bitops.h:21,
from include/linux/bitops.h:36,
from include/linux/kernel.h:10,
from include/asm-generic/bug.h:13,
from arch/mn10300/include/asm/bug.h:35,
from include/linux/bug.h:4,
from include/linux/thread_info.h:11,
from arch/mn10300/include/asm/current.h:14,
from include/linux/sched.h:11,
from arch/mn10300/kernel/asm-offsets.c:7:
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 'rmb'? [-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
make[2]: *** [arch/mn10300/kernel/asm-offsets.s] Error 1
make[2]: Target '__build' not remade because of errors.
make[1]: *** [prepare0] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [sub-make] Error 2

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