[mmotm:master 201/309] arch/arm/include/asm/atomic.h:47:2: note: in expansion of macro 'prefetchw'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxx>
:::::: CC: Ingo Molnar <mingo@xxxxxxxxxx>

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

Attachment: .config.gz
Description: Binary data


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]