[mmotm:master 201/309] include/asm-generic/atomic-long.h:33:28: note: in expansion of macro 'atomic_add'

[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: sparc-defconfig (attached as .config)
compiler: sparc-linux-gcc (GCC) 4.9.0
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=sparc 

All warnings (new ones prefixed by >>):

   In file included from arch/sparc/include/asm/atomic.h:6: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':
   arch/sparc/include/asm/atomic_32.h:33:27: warning: array subscript is above array bounds [-Warray-bounds]
    #define atomic_add(i, v) ((void)atomic_add_return( (int)(i), (v)))
                              ^
>> include/asm-generic/atomic-long.h:33:28: note: in expansion of macro 'atomic_add'
    #define ATOMIC_LONG_PFX(x) atomic ## x
                               ^
>> include/asm-generic/atomic-long.h:121:2: note: in expansion of macro 'ATOMIC_LONG_PFX'
     ATOMIC_LONG_PFX(_##op)(i, v);     \
     ^
>> include/asm-generic/atomic-long.h:124:1: note: in expansion of macro 'ATOMIC_LONG_OP'
    ATOMIC_LONG_OP(add)
    ^
   arch/sparc/include/asm/atomic_32.h:33:27: warning: array subscript is above array bounds [-Warray-bounds]
    #define atomic_add(i, v) ((void)atomic_add_return( (int)(i), (v)))
                              ^
>> include/asm-generic/atomic-long.h:33:28: note: in expansion of macro 'atomic_add'
    #define ATOMIC_LONG_PFX(x) atomic ## x
                               ^
>> include/asm-generic/atomic-long.h:121:2: note: in expansion of macro 'ATOMIC_LONG_PFX'
     ATOMIC_LONG_PFX(_##op)(i, v);     \
     ^
>> include/asm-generic/atomic-long.h:124:1: note: in expansion of macro 'ATOMIC_LONG_OP'
    ATOMIC_LONG_OP(add)
    ^
--
   In file included from arch/sparc/include/asm/atomic.h:6: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 mm/shmem.c:24:
   mm/shmem.c: In function 'shmem_add_to_page_cache':
   arch/sparc/include/asm/atomic_32.h:33:27: warning: array subscript is above array bounds [-Warray-bounds]
    #define atomic_add(i, v) ((void)atomic_add_return( (int)(i), (v)))
                              ^
>> include/asm-generic/atomic-long.h:33:28: note: in expansion of macro 'atomic_add'
    #define ATOMIC_LONG_PFX(x) atomic ## x
                               ^
>> include/asm-generic/atomic-long.h:121:2: note: in expansion of macro 'ATOMIC_LONG_PFX'
     ATOMIC_LONG_PFX(_##op)(i, v);     \
     ^
>> include/asm-generic/atomic-long.h:124:1: note: in expansion of macro 'ATOMIC_LONG_OP'
    ATOMIC_LONG_OP(add)
    ^
   arch/sparc/include/asm/atomic_32.h:33:27: warning: array subscript is above array bounds [-Warray-bounds]
    #define atomic_add(i, v) ((void)atomic_add_return( (int)(i), (v)))
                              ^
>> include/asm-generic/atomic-long.h:33:28: note: in expansion of macro 'atomic_add'
    #define ATOMIC_LONG_PFX(x) atomic ## x
                               ^
>> include/asm-generic/atomic-long.h:121:2: note: in expansion of macro 'ATOMIC_LONG_PFX'
     ATOMIC_LONG_PFX(_##op)(i, v);     \
     ^
>> include/asm-generic/atomic-long.h:124:1: note: in expansion of macro 'ATOMIC_LONG_OP'
    ATOMIC_LONG_OP(add)
    ^

vim +/atomic_add +33 include/asm-generic/atomic-long.h

d3cb48714 include/asm-generic/atomic.h      Christoph Lameter 2006-01-06   27  
586b610e4 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   28  #else
d3cb48714 include/asm-generic/atomic.h      Christoph Lameter 2006-01-06   29  
d3cb48714 include/asm-generic/atomic.h      Christoph Lameter 2006-01-06   30  typedef atomic_t atomic_long_t;
d3cb48714 include/asm-generic/atomic.h      Christoph Lameter 2006-01-06   31  
d3cb48714 include/asm-generic/atomic.h      Christoph Lameter 2006-01-06   32  #define ATOMIC_LONG_INIT(i)	ATOMIC_INIT(i)
586b610e4 include/asm-generic/atomic-long.h Will Deacon       2015-08-06  @33  #define ATOMIC_LONG_PFX(x)	atomic ## x
586b610e4 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   34  
586b610e4 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   35  #endif
586b610e4 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   36  
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   37  #define ATOMIC_LONG_READ_OP(mo)						\
e3e72ab80 include/asm-generic/atomic-long.h Peter Zijlstra    2015-09-18   38  static inline long atomic_long_read##mo(const atomic_long_t *l)		\
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   39  {									\
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   40  	ATOMIC_LONG_PFX(_t) *v = (ATOMIC_LONG_PFX(_t) *)l;		\
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   41  									\
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   42  	return (long)ATOMIC_LONG_PFX(_read##mo)(v);			\
d3cb48714 include/asm-generic/atomic.h      Christoph Lameter 2006-01-06   43  }
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   44  ATOMIC_LONG_READ_OP()
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   45  ATOMIC_LONG_READ_OP(_acquire)
d3cb48714 include/asm-generic/atomic.h      Christoph Lameter 2006-01-06   46  
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   47  #undef ATOMIC_LONG_READ_OP
d3cb48714 include/asm-generic/atomic.h      Christoph Lameter 2006-01-06   48  
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   49  #define ATOMIC_LONG_SET_OP(mo)						\
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   50  static inline void atomic_long_set##mo(atomic_long_t *l, long i)	\
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   51  {									\
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   52  	ATOMIC_LONG_PFX(_t) *v = (ATOMIC_LONG_PFX(_t) *)l;		\
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   53  									\
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   54  	ATOMIC_LONG_PFX(_set##mo)(v, i);				\
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   55  }
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   56  ATOMIC_LONG_SET_OP()
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   57  ATOMIC_LONG_SET_OP(_release)
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   58  
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   59  #undef ATOMIC_LONG_SET_OP
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   60  
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   61  #define ATOMIC_LONG_ADD_SUB_OP(op, mo)					\
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   62  static inline long							\
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   63  atomic_long_##op##_return##mo(long i, atomic_long_t *l)			\
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   64  {									\
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   65  	ATOMIC_LONG_PFX(_t) *v = (ATOMIC_LONG_PFX(_t) *)l;		\
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   66  									\
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   67  	return (long)ATOMIC_LONG_PFX(_##op##_return##mo)(i, v);		\
d3cb48714 include/asm-generic/atomic.h      Christoph Lameter 2006-01-06   68  }
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   69  ATOMIC_LONG_ADD_SUB_OP(add,)
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   70  ATOMIC_LONG_ADD_SUB_OP(add, _relaxed)
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   71  ATOMIC_LONG_ADD_SUB_OP(add, _acquire)
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   72  ATOMIC_LONG_ADD_SUB_OP(add, _release)
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   73  ATOMIC_LONG_ADD_SUB_OP(sub,)
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   74  ATOMIC_LONG_ADD_SUB_OP(sub, _relaxed)
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   75  ATOMIC_LONG_ADD_SUB_OP(sub, _acquire)
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   76  ATOMIC_LONG_ADD_SUB_OP(sub, _release)
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   77  
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   78  #undef ATOMIC_LONG_ADD_SUB_OP
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   79  
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   80  #define atomic_long_cmpxchg_relaxed(l, old, new) \
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   81  	(ATOMIC_LONG_PFX(_cmpxchg_relaxed)((ATOMIC_LONG_PFX(_t) *)(l), \
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   82  					   (old), (new)))
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   83  #define atomic_long_cmpxchg_acquire(l, old, new) \
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   84  	(ATOMIC_LONG_PFX(_cmpxchg_acquire)((ATOMIC_LONG_PFX(_t) *)(l), \
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   85  					   (old), (new)))
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   86  #define atomic_long_cmpxchg_release(l, old, new) \
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   87  	(ATOMIC_LONG_PFX(_cmpxchg_release)((ATOMIC_LONG_PFX(_t) *)(l), \
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   88  					   (old), (new)))
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   89  #define atomic_long_cmpxchg(l, old, new) \
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   90  	(ATOMIC_LONG_PFX(_cmpxchg)((ATOMIC_LONG_PFX(_t) *)(l), (old), (new)))
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   91  
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   92  #define atomic_long_xchg_relaxed(v, new) \
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   93  	(ATOMIC_LONG_PFX(_xchg_relaxed)((ATOMIC_LONG_PFX(_t) *)(v), (new)))
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   94  #define atomic_long_xchg_acquire(v, new) \
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   95  	(ATOMIC_LONG_PFX(_xchg_acquire)((ATOMIC_LONG_PFX(_t) *)(v), (new)))
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   96  #define atomic_long_xchg_release(v, new) \
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   97  	(ATOMIC_LONG_PFX(_xchg_release)((ATOMIC_LONG_PFX(_t) *)(v), (new)))
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   98  #define atomic_long_xchg(v, new) \
6d79ef2d3 include/asm-generic/atomic-long.h Will Deacon       2015-08-06   99  	(ATOMIC_LONG_PFX(_xchg)((ATOMIC_LONG_PFX(_t) *)(v), (new)))
d3cb48714 include/asm-generic/atomic.h      Christoph Lameter 2006-01-06  100  
a644fdf02 include/asm-generic/atomic-long.h Denys Vlasenko    2016-03-17  101  static __always_inline void atomic_long_inc(atomic_long_t *l)
d3cb48714 include/asm-generic/atomic.h      Christoph Lameter 2006-01-06  102  {
586b610e4 include/asm-generic/atomic-long.h Will Deacon       2015-08-06  103  	ATOMIC_LONG_PFX(_t) *v = (ATOMIC_LONG_PFX(_t) *)l;
d3cb48714 include/asm-generic/atomic.h      Christoph Lameter 2006-01-06  104  
586b610e4 include/asm-generic/atomic-long.h Will Deacon       2015-08-06  105  	ATOMIC_LONG_PFX(_inc)(v);
d3cb48714 include/asm-generic/atomic.h      Christoph Lameter 2006-01-06  106  }
d3cb48714 include/asm-generic/atomic.h      Christoph Lameter 2006-01-06  107  
a644fdf02 include/asm-generic/atomic-long.h Denys Vlasenko    2016-03-17  108  static __always_inline void atomic_long_dec(atomic_long_t *l)
d3cb48714 include/asm-generic/atomic.h      Christoph Lameter 2006-01-06  109  {
586b610e4 include/asm-generic/atomic-long.h Will Deacon       2015-08-06  110  	ATOMIC_LONG_PFX(_t) *v = (ATOMIC_LONG_PFX(_t) *)l;
d3cb48714 include/asm-generic/atomic.h      Christoph Lameter 2006-01-06  111  
586b610e4 include/asm-generic/atomic-long.h Will Deacon       2015-08-06  112  	ATOMIC_LONG_PFX(_dec)(v);
d3cb48714 include/asm-generic/atomic.h      Christoph Lameter 2006-01-06  113  }
d3cb48714 include/asm-generic/atomic.h      Christoph Lameter 2006-01-06  114  
90fe65148 include/asm-generic/atomic-long.h Peter Zijlstra    2015-09-18  115  #define ATOMIC_LONG_OP(op)						\
a644fdf02 include/asm-generic/atomic-long.h Denys Vlasenko    2016-03-17  116  static __always_inline void						\
90fe65148 include/asm-generic/atomic-long.h Peter Zijlstra    2015-09-18  117  atomic_long_##op(long i, atomic_long_t *l)				\
90fe65148 include/asm-generic/atomic-long.h Peter Zijlstra    2015-09-18  118  {									\
90fe65148 include/asm-generic/atomic-long.h Peter Zijlstra    2015-09-18  119  	ATOMIC_LONG_PFX(_t) *v = (ATOMIC_LONG_PFX(_t) *)l;		\
90fe65148 include/asm-generic/atomic-long.h Peter Zijlstra    2015-09-18  120  									\
90fe65148 include/asm-generic/atomic-long.h Peter Zijlstra    2015-09-18 @121  	ATOMIC_LONG_PFX(_##op)(i, v);					\
d3cb48714 include/asm-generic/atomic.h      Christoph Lameter 2006-01-06  122  }
d3cb48714 include/asm-generic/atomic.h      Christoph Lameter 2006-01-06  123  
90fe65148 include/asm-generic/atomic-long.h Peter Zijlstra    2015-09-18 @124  ATOMIC_LONG_OP(add)
90fe65148 include/asm-generic/atomic-long.h Peter Zijlstra    2015-09-18  125  ATOMIC_LONG_OP(sub)
90fe65148 include/asm-generic/atomic-long.h Peter Zijlstra    2015-09-18  126  ATOMIC_LONG_OP(and)
90fe65148 include/asm-generic/atomic-long.h Peter Zijlstra    2015-09-18  127  ATOMIC_LONG_OP(or)

:::::: The code at line 33 was first introduced by commit
:::::: 586b610e43a5ad5096640312fefa6ce931738c7d locking, asm-generic: Rework atomic-long.h to avoid bulk code duplication

:::::: TO: Will Deacon <will.deacon@xxxxxxx>
:::::: 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]