Re: [PATCH 17/17] bit_spinlock: Track bit spin locks with lockdep

From: kernel test robot
Date: Fri Apr 09 2021 - 02:38:04 EST


Hi "Matthew,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on next-20210408]
[cannot apply to s390/features tip/x86/core dm/for-next gfs2/for-next block/for-next linus/master hnaz-linux-mm/master v5.12-rc6 v5.12-rc5 v5.12-rc4 v5.12-rc6]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/Matthew-Wilcox-Oracle/Provide-lockdep-tracking-for-bit-spin-locks/20210409-110522
base: 6145d80cfc62e3ed8f16ff584d6287e6d88b82b9
config: s390-randconfig-r012-20210409 (attached as .config)
compiler: s390-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/49054b182384e0b597db2cf81e733efbf67c89b7
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Matthew-Wilcox-Oracle/Provide-lockdep-tracking-for-bit-spin-locks/20210409-110522
git checkout 49054b182384e0b597db2cf81e733efbf67c89b7
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=s390

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

In file included from drivers/s390/cio/airq.c:21:
arch/s390/include/asm/airq.h:73:20: error: 'airq_iv_lock' redeclared as different kind of symbol
73 | static inline void airq_iv_lock(struct airq_iv *iv, unsigned long bit)
| ^~~~~~~~~~~~
arch/s390/include/asm/airq.h:29:23: note: previous declaration of 'airq_iv_lock' was here
29 | extern struct iv_lock airq_iv_lock;
| ^~~~~~~~~~~~
arch/s390/include/asm/airq.h: In function 'airq_iv_lock':
>> arch/s390/include/asm/airq.h:76:45: error: passing argument 3 of 'bit_spin_lock' from incompatible pointer type [-Werror=incompatible-pointer-types]
76 | bit_spin_lock(bit ^ be_to_le, iv->bitlock, &airq_iv_lock);
| ^~~~~~~~~~~~~
| |
| void (*)(struct airq_iv *, long unsigned int)
In file included from include/linux/mm.h:22,
from include/linux/scatterlist.h:8,
from include/linux/dmapool.h:14,
from include/linux/pci.h:1464,
from arch/s390/include/asm/hw_irq.h:6,
from include/linux/irq.h:589,
from drivers/s390/cio/airq.c:13:
include/linux/bit_spinlock.h:42:22: note: expected 'struct split_lock *' but argument is of type 'void (*)(struct airq_iv *, long unsigned int)'
42 | struct split_lock *lock)
| ~~~~~~~~~~~~~~~~~~~^~~~
In file included from drivers/s390/cio/airq.c:21:
arch/s390/include/asm/airq.h: In function 'airq_iv_unlock':
>> arch/s390/include/asm/airq.h:82:47: error: passing argument 3 of 'bit_spin_unlock' from incompatible pointer type [-Werror=incompatible-pointer-types]
82 | bit_spin_unlock(bit ^ be_to_le, iv->bitlock, &airq_iv_lock);
| ^~~~~~~~~~~~~
| |
| void (*)(struct airq_iv *, long unsigned int)
In file included from include/linux/mm.h:22,
from include/linux/scatterlist.h:8,
from include/linux/dmapool.h:14,
from include/linux/pci.h:1464,
from arch/s390/include/asm/hw_irq.h:6,
from include/linux/irq.h:589,
from drivers/s390/cio/airq.c:13:
include/linux/bit_spinlock.h:69:22: note: expected 'struct split_lock *' but argument is of type 'void (*)(struct airq_iv *, long unsigned int)'
69 | struct split_lock *lock)
| ~~~~~~~~~~~~~~~~~~~^~~~
In file included from include/linux/bit_spinlock.h:9,
from include/linux/mm.h:22,
from include/linux/scatterlist.h:8,
from include/linux/dmapool.h:14,
from include/linux/pci.h:1464,
from arch/s390/include/asm/hw_irq.h:6,
from include/linux/irq.h:589,
from drivers/s390/cio/airq.c:13:
drivers/s390/cio/airq.c: At top level:
drivers/s390/cio/airq.c:34:19: error: 'airq_iv_lock' redeclared as different kind of symbol
34 | DEFINE_SPLIT_LOCK(airq_iv_lock);
| ^~~~~~~~~~~~
include/linux/split_lock.h:23:19: note: in definition of macro 'DEFINE_SPLIT_LOCK'
23 | struct split_lock name = { \
| ^~~~
In file included from drivers/s390/cio/airq.c:21:
arch/s390/include/asm/airq.h:73:20: note: previous definition of 'airq_iv_lock' was here
73 | static inline void airq_iv_lock(struct airq_iv *iv, unsigned long bit)
| ^~~~~~~~~~~~
In file included from include/linux/linkage.h:7,
from include/linux/preempt.h:10,
from include/linux/spinlock.h:51,
from include/linux/irq.h:14,
from drivers/s390/cio/airq.c:13:
drivers/s390/cio/airq.c:35:15: error: conflicting types for 'airq_iv_lock'
35 | EXPORT_SYMBOL(airq_iv_lock);
| ^~~~~~~~~~~~
include/linux/export.h:98:21: note: in definition of macro '___EXPORT_SYMBOL'
98 | extern typeof(sym) sym; \
| ^~~
include/linux/export.h:155:34: note: in expansion of macro '__EXPORT_SYMBOL'
155 | #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
| ^~~~~~~~~~~~~~~
include/linux/export.h:158:29: note: in expansion of macro '_EXPORT_SYMBOL'
158 | #define EXPORT_SYMBOL(sym) _EXPORT_SYMBOL(sym, "")
| ^~~~~~~~~~~~~~
drivers/s390/cio/airq.c:35:1: note: in expansion of macro 'EXPORT_SYMBOL'
35 | EXPORT_SYMBOL(airq_iv_lock);
| ^~~~~~~~~~~~~
In file included from drivers/s390/cio/airq.c:21:
arch/s390/include/asm/airq.h:29:23: note: previous declaration of 'airq_iv_lock' was here
29 | extern struct iv_lock airq_iv_lock;
| ^~~~~~~~~~~~
cc1: some warnings being treated as errors
--
In file included from drivers/s390/cio/cio.c:30:
arch/s390/include/asm/airq.h:73:20: error: 'airq_iv_lock' redeclared as different kind of symbol
73 | static inline void airq_iv_lock(struct airq_iv *iv, unsigned long bit)
| ^~~~~~~~~~~~
arch/s390/include/asm/airq.h:29:23: note: previous declaration of 'airq_iv_lock' was here
29 | extern struct iv_lock airq_iv_lock;
| ^~~~~~~~~~~~
arch/s390/include/asm/airq.h: In function 'airq_iv_lock':
>> arch/s390/include/asm/airq.h:76:45: error: passing argument 3 of 'bit_spin_lock' from incompatible pointer type [-Werror=incompatible-pointer-types]
76 | bit_spin_lock(bit ^ be_to_le, iv->bitlock, &airq_iv_lock);
| ^~~~~~~~~~~~~
| |
| void (*)(struct airq_iv *, long unsigned int)
In file included from include/linux/mm.h:22,
from include/linux/kallsyms.h:12,
from include/linux/ftrace.h:12,
from drivers/s390/cio/cio.c:15:
include/linux/bit_spinlock.h:42:22: note: expected 'struct split_lock *' but argument is of type 'void (*)(struct airq_iv *, long unsigned int)'
42 | struct split_lock *lock)
| ~~~~~~~~~~~~~~~~~~~^~~~
In file included from drivers/s390/cio/cio.c:30:
arch/s390/include/asm/airq.h: In function 'airq_iv_unlock':
>> arch/s390/include/asm/airq.h:82:47: error: passing argument 3 of 'bit_spin_unlock' from incompatible pointer type [-Werror=incompatible-pointer-types]
82 | bit_spin_unlock(bit ^ be_to_le, iv->bitlock, &airq_iv_lock);
| ^~~~~~~~~~~~~
| |
| void (*)(struct airq_iv *, long unsigned int)
In file included from include/linux/mm.h:22,
from include/linux/kallsyms.h:12,
from include/linux/ftrace.h:12,
from drivers/s390/cio/cio.c:15:
include/linux/bit_spinlock.h:69:22: note: expected 'struct split_lock *' but argument is of type 'void (*)(struct airq_iv *, long unsigned int)'
69 | struct split_lock *lock)
| ~~~~~~~~~~~~~~~~~~~^~~~
cc1: some warnings being treated as errors


vim +/bit_spin_lock +76 arch/s390/include/asm/airq.h

a9a6f0341df9a6 Martin Schwidefsky 2013-06-25 72
a9a6f0341df9a6 Martin Schwidefsky 2013-06-25 73 static inline void airq_iv_lock(struct airq_iv *iv, unsigned long bit)
a9a6f0341df9a6 Martin Schwidefsky 2013-06-25 74 {
a9a6f0341df9a6 Martin Schwidefsky 2013-06-25 75 const unsigned long be_to_le = BITS_PER_LONG - 1;
6592d0d634dacf Matthew Wilcox (Oracle 2021-04-09 @76) bit_spin_lock(bit ^ be_to_le, iv->bitlock, &airq_iv_lock);
a9a6f0341df9a6 Martin Schwidefsky 2013-06-25 77 }
a9a6f0341df9a6 Martin Schwidefsky 2013-06-25 78
a9a6f0341df9a6 Martin Schwidefsky 2013-06-25 79 static inline void airq_iv_unlock(struct airq_iv *iv, unsigned long bit)
a9a6f0341df9a6 Martin Schwidefsky 2013-06-25 80 {
a9a6f0341df9a6 Martin Schwidefsky 2013-06-25 81 const unsigned long be_to_le = BITS_PER_LONG - 1;
6592d0d634dacf Matthew Wilcox (Oracle 2021-04-09 @82) bit_spin_unlock(bit ^ be_to_le, iv->bitlock, &airq_iv_lock);
a9a6f0341df9a6 Martin Schwidefsky 2013-06-25 83 }
a9a6f0341df9a6 Martin Schwidefsky 2013-06-25 84

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip