* [mmotm:master 201/309] arch/arm/include/asm/atomic.h:47:2: note: in expansion of macro 'prefetchw'
@ 2016-06-23 5:24 kbuild test robot
0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2016-06-23 5:24 UTC (permalink / raw)
Cc: kbuild-all, Johannes Weiner, Mel Gorman, Andrew Morton,
Linux Memory Management List
[-- Attachment #1: Type: text/plain, Size: 17761 bytes --]
tree: git://git.cmpxchg.org/linux-mmotm.git master
head: 90fbe8d8441dfa4fc00ac1bc49bc695ec2659b8e
commit: 5c3cf7b159aee92080899618bd0b578db6c0de85 [201/309] mm: move vmscan writes and file write accounting to the node
config: arm-allnoconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 5.3.1-8) 5.3.1 20160205
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 5c3cf7b159aee92080899618bd0b578db6c0de85
# save the attached .config to linux build tree
make.cross ARCH=arm
All warnings (new ones prefixed by >>):
In file included from arch/arm/include/asm/atomic.h:15:0,
from include/linux/atomic.h:4,
from include/linux/spinlock.h:406,
from include/linux/wait.h:8,
from include/linux/fs.h:5,
from include/linux/dax.h:4,
from mm/filemap.c:14:
mm/filemap.c: In function '__delete_from_page_cache':
include/linux/prefetch.h:42:22: warning: array subscript is above array bounds [-Warray-bounds]
#define prefetchw(x) __builtin_prefetch(x,1)
^
>> arch/arm/include/asm/atomic.h:47:2: note: in expansion of macro 'prefetchw'
prefetchw(&v->counter); \
^
>> arch/arm/include/asm/atomic.h:189:2: note: in expansion of macro 'ATOMIC_OP'
ATOMIC_OP(op, c_op, asm_op) \
^
>> arch/arm/include/asm/atomic.h:192:1: note: in expansion of macro 'ATOMIC_OPS'
ATOMIC_OPS(add, +=, add)
^
include/linux/prefetch.h:42:22: warning: array subscript is above array bounds [-Warray-bounds]
#define prefetchw(x) __builtin_prefetch(x,1)
^
>> arch/arm/include/asm/atomic.h:47:2: note: in expansion of macro 'prefetchw'
prefetchw(&v->counter); \
^
>> arch/arm/include/asm/atomic.h:189:2: note: in expansion of macro 'ATOMIC_OP'
ATOMIC_OP(op, c_op, asm_op) \
^
>> arch/arm/include/asm/atomic.h:192:1: note: in expansion of macro 'ATOMIC_OPS'
ATOMIC_OPS(add, +=, add)
^
vim +/prefetchw +47 arch/arm/include/asm/atomic.h
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 41 #define ATOMIC_OP(op, c_op, asm_op) \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 42 static inline void atomic_##op(int i, atomic_t *v) \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 43 { \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 44 unsigned long tmp; \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 45 int result; \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 46 \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 @47 prefetchw(&v->counter); \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 48 __asm__ __volatile__("@ atomic_" #op "\n" \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 49 "1: ldrex %0, [%3]\n" \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 50 " " #asm_op " %0, %0, %4\n" \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 51 " strex %1, %0, [%3]\n" \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 52 " teq %1, #0\n" \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 53 " bne 1b" \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 54 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 55 : "r" (&v->counter), "Ir" (i) \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 56 : "cc"); \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 57 } \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 58
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 59 #define ATOMIC_OP_RETURN(op, c_op, asm_op) \
0ca326de7 arch/arm/include/asm/atomic.h Will Deacon 2015-08-06 60 static inline int atomic_##op##_return_relaxed(int i, atomic_t *v) \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 61 { \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 62 unsigned long tmp; \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 63 int result; \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 64 \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 65 prefetchw(&v->counter); \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 66 \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 67 __asm__ __volatile__("@ atomic_" #op "_return\n" \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 68 "1: ldrex %0, [%3]\n" \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 69 " " #asm_op " %0, %0, %4\n" \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 70 " strex %1, %0, [%3]\n" \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 71 " teq %1, #0\n" \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 72 " bne 1b" \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 73 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 74 : "r" (&v->counter), "Ir" (i) \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 75 : "cc"); \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 76 \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 77 return result; \
^1da177e4 include/asm-arm/atomic.h Linus Torvalds 2005-04-16 78 }
^1da177e4 include/asm-arm/atomic.h Linus Torvalds 2005-04-16 79
0ca326de7 arch/arm/include/asm/atomic.h Will Deacon 2015-08-06 80 #define atomic_add_return_relaxed atomic_add_return_relaxed
0ca326de7 arch/arm/include/asm/atomic.h Will Deacon 2015-08-06 81 #define atomic_sub_return_relaxed atomic_sub_return_relaxed
0ca326de7 arch/arm/include/asm/atomic.h Will Deacon 2015-08-06 82
0ca326de7 arch/arm/include/asm/atomic.h Will Deacon 2015-08-06 83 static inline int atomic_cmpxchg_relaxed(atomic_t *ptr, int old, int new)
4a6dae6d3 include/asm-arm/atomic.h Nick Piggin 2005-11-13 84 {
4dcc1cf73 arch/arm/include/asm/atomic.h Chen Gang 2013-10-26 85 int oldval;
4dcc1cf73 arch/arm/include/asm/atomic.h Chen Gang 2013-10-26 86 unsigned long res;
4a6dae6d3 include/asm-arm/atomic.h Nick Piggin 2005-11-13 87
c32ffce0f arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 88 prefetchw(&ptr->counter);
bac4e960b arch/arm/include/asm/atomic.h Russell King 2009-05-25 89
4a6dae6d3 include/asm-arm/atomic.h Nick Piggin 2005-11-13 90 do {
4a6dae6d3 include/asm-arm/atomic.h Nick Piggin 2005-11-13 91 __asm__ __volatile__("@ atomic_cmpxchg\n"
398aa6682 arch/arm/include/asm/atomic.h Will Deacon 2010-07-08 92 "ldrex %1, [%3]\n"
a7d068336 include/asm-arm/atomic.h Nicolas Pitre 2005-11-16 93 "mov %0, #0\n"
398aa6682 arch/arm/include/asm/atomic.h Will Deacon 2010-07-08 94 "teq %1, %4\n"
398aa6682 arch/arm/include/asm/atomic.h Will Deacon 2010-07-08 95 "strexeq %0, %5, [%3]\n"
398aa6682 arch/arm/include/asm/atomic.h Will Deacon 2010-07-08 96 : "=&r" (res), "=&r" (oldval), "+Qo" (ptr->counter)
4a6dae6d3 include/asm-arm/atomic.h Nick Piggin 2005-11-13 97 : "r" (&ptr->counter), "Ir" (old), "r" (new)
4a6dae6d3 include/asm-arm/atomic.h Nick Piggin 2005-11-13 98 : "cc");
4a6dae6d3 include/asm-arm/atomic.h Nick Piggin 2005-11-13 99 } while (res);
4a6dae6d3 include/asm-arm/atomic.h Nick Piggin 2005-11-13 100
4a6dae6d3 include/asm-arm/atomic.h Nick Piggin 2005-11-13 101 return oldval;
4a6dae6d3 include/asm-arm/atomic.h Nick Piggin 2005-11-13 102 }
0ca326de7 arch/arm/include/asm/atomic.h Will Deacon 2015-08-06 103 #define atomic_cmpxchg_relaxed atomic_cmpxchg_relaxed
4a6dae6d3 include/asm-arm/atomic.h Nick Piggin 2005-11-13 104
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 105 static inline int __atomic_add_unless(atomic_t *v, int a, int u)
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 106 {
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 107 int oldval, newval;
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 108 unsigned long tmp;
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 109
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 110 smp_mb();
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 111 prefetchw(&v->counter);
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 112
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 113 __asm__ __volatile__ ("@ atomic_add_unless\n"
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 114 "1: ldrex %0, [%4]\n"
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 115 " teq %0, %5\n"
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 116 " beq 2f\n"
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 117 " add %1, %0, %6\n"
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 118 " strex %2, %1, [%4]\n"
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 119 " teq %2, #0\n"
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 120 " bne 1b\n"
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 121 "2:"
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 122 : "=&r" (oldval), "=&r" (newval), "=&r" (tmp), "+Qo" (v->counter)
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 123 : "r" (&v->counter), "r" (u), "r" (a)
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 124 : "cc");
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 125
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 126 if (oldval != u)
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 127 smp_mb();
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 128
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 129 return oldval;
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 130 }
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 131
^1da177e4 include/asm-arm/atomic.h Linus Torvalds 2005-04-16 132 #else /* ARM_ARCH_6 */
^1da177e4 include/asm-arm/atomic.h Linus Torvalds 2005-04-16 133
^1da177e4 include/asm-arm/atomic.h Linus Torvalds 2005-04-16 134 #ifdef CONFIG_SMP
^1da177e4 include/asm-arm/atomic.h Linus Torvalds 2005-04-16 135 #error SMP not supported on pre-ARMv6 CPUs
^1da177e4 include/asm-arm/atomic.h Linus Torvalds 2005-04-16 136 #endif
^1da177e4 include/asm-arm/atomic.h Linus Torvalds 2005-04-16 137
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 138 #define ATOMIC_OP(op, c_op, asm_op) \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 139 static inline void atomic_##op(int i, atomic_t *v) \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 140 { \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 141 unsigned long flags; \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 142 \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 143 raw_local_irq_save(flags); \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 144 v->counter c_op i; \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 145 raw_local_irq_restore(flags); \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 146 } \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 147
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 148 #define ATOMIC_OP_RETURN(op, c_op, asm_op) \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 149 static inline int atomic_##op##_return(int i, atomic_t *v) \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 150 { \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 151 unsigned long flags; \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 152 int val; \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 153 \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 154 raw_local_irq_save(flags); \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 155 v->counter c_op i; \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 156 val = v->counter; \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 157 raw_local_irq_restore(flags); \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 158 \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 159 return val; \
^1da177e4 include/asm-arm/atomic.h Linus Torvalds 2005-04-16 160 }
^1da177e4 include/asm-arm/atomic.h Linus Torvalds 2005-04-16 161
4a6dae6d3 include/asm-arm/atomic.h Nick Piggin 2005-11-13 162 static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
4a6dae6d3 include/asm-arm/atomic.h Nick Piggin 2005-11-13 163 {
4a6dae6d3 include/asm-arm/atomic.h Nick Piggin 2005-11-13 164 int ret;
4a6dae6d3 include/asm-arm/atomic.h Nick Piggin 2005-11-13 165 unsigned long flags;
4a6dae6d3 include/asm-arm/atomic.h Nick Piggin 2005-11-13 166
8dd5c845b include/asm-arm/atomic.h Lennert Buytenhek 2006-09-16 167 raw_local_irq_save(flags);
4a6dae6d3 include/asm-arm/atomic.h Nick Piggin 2005-11-13 168 ret = v->counter;
4a6dae6d3 include/asm-arm/atomic.h Nick Piggin 2005-11-13 169 if (likely(ret == old))
4a6dae6d3 include/asm-arm/atomic.h Nick Piggin 2005-11-13 170 v->counter = new;
8dd5c845b include/asm-arm/atomic.h Lennert Buytenhek 2006-09-16 171 raw_local_irq_restore(flags);
4a6dae6d3 include/asm-arm/atomic.h Nick Piggin 2005-11-13 172
4a6dae6d3 include/asm-arm/atomic.h Nick Piggin 2005-11-13 173 return ret;
4a6dae6d3 include/asm-arm/atomic.h Nick Piggin 2005-11-13 174 }
4a6dae6d3 include/asm-arm/atomic.h Nick Piggin 2005-11-13 175
f24219b4e arch/arm/include/asm/atomic.h Arun Sharma 2011-07-26 176 static inline int __atomic_add_unless(atomic_t *v, int a, int u)
8426e1f6a include/asm-arm/atomic.h Nick Piggin 2005-11-13 177 {
8426e1f6a include/asm-arm/atomic.h Nick Piggin 2005-11-13 178 int c, old;
8426e1f6a include/asm-arm/atomic.h Nick Piggin 2005-11-13 179
8426e1f6a include/asm-arm/atomic.h Nick Piggin 2005-11-13 180 c = atomic_read(v);
8426e1f6a include/asm-arm/atomic.h Nick Piggin 2005-11-13 181 while (c != u && (old = atomic_cmpxchg((v), c, c + a)) != c)
8426e1f6a include/asm-arm/atomic.h Nick Piggin 2005-11-13 182 c = old;
f24219b4e arch/arm/include/asm/atomic.h Arun Sharma 2011-07-26 183 return c;
8426e1f6a include/asm-arm/atomic.h Nick Piggin 2005-11-13 184 }
8426e1f6a include/asm-arm/atomic.h Nick Piggin 2005-11-13 185
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 186 #endif /* __LINUX_ARM_ARCH__ */
db38ee874 arch/arm/include/asm/atomic.h Will Deacon 2014-02-21 187
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 188 #define ATOMIC_OPS(op, c_op, asm_op) \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 @189 ATOMIC_OP(op, c_op, asm_op) \
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 190 ATOMIC_OP_RETURN(op, c_op, asm_op)
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 191
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 @192 ATOMIC_OPS(add, +=, add)
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 193 ATOMIC_OPS(sub, -=, sub)
aee9a5545 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-03-23 194
125897908 arch/arm/include/asm/atomic.h Peter Zijlstra 2014-04-23 195 #define atomic_andnot atomic_andnot
:::::: The code at line 47 was first introduced by commit
:::::: aee9a55452f0371258e18b41649ce650ff344090 locking,arch,arm: Fold atomic_ops
:::::: TO: Peter Zijlstra <peterz@infradead.org>
:::::: CC: Ingo Molnar <mingo@kernel.org>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 5612 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2016-06-23 5:26 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-23 5:24 [mmotm:master 201/309] arch/arm/include/asm/atomic.h:47:2: note: in expansion of macro 'prefetchw' kbuild test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox