Hi Ming,

[auto build test WARNING on v4.3-rc4 -- if it's inappropriate base, please 
ignore]

config: x86_64-randconfig-x015-201540 (attached as .config)
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All warnings (new ones prefixed by >>):

   lib/iov_iter.c: In function 'copy_to_iter':
   lib/iov_iter.c:61:19: error: storage size of '__bi' isn't known
     struct bvec_iter __bi, __start;   \
                      ^
>> lib/iov_iter.c:97:3: note: in expansion of macro 'iterate_bvec'
      iterate_bvec(i, n, v, bvec, skip, (B))  \
      ^
>> lib/iov_iter.c:386:2: note: in expansion of macro 'iterate_and_advance'
     iterate_and_advance(i, bytes, v,
     ^
   lib/iov_iter.c:61:25: error: storage size of '__start' isn't known
     struct bvec_iter __bi, __start;   \
                            ^
>> lib/iov_iter.c:97:3: note: in expansion of macro 'iterate_bvec'
      iterate_bvec(i, n, v, bvec, skip, (B))  \
      ^
>> lib/iov_iter.c:386:2: note: in expansion of macro 'iterate_and_advance'
     iterate_and_advance(i, bytes, v,
     ^
   lib/iov_iter.c:66:2: error: implicit declaration of function 'for_each_bvec' 
[-Werror=implicit-function-declaration]
     for_each_bvec(__v, __p, __bi, __start) { \
     ^
>> lib/iov_iter.c:97:3: note: in expansion of macro 'iterate_bvec'
      iterate_bvec(i, n, v, bvec, skip, (B))  \
      ^
>> lib/iov_iter.c:386:2: note: in expansion of macro 'iterate_and_advance'
     iterate_and_advance(i, bytes, v,
     ^
   lib/iov_iter.c:66:41: error: expected ';' before '{' token
     for_each_bvec(__v, __p, __bi, __start) { \
                                            ^
>> lib/iov_iter.c:97:3: note: in expansion of macro 'iterate_bvec'
      iterate_bvec(i, n, v, bvec, skip, (B))  \
      ^
>> lib/iov_iter.c:386:2: note: in expansion of macro 'iterate_and_advance'
     iterate_and_advance(i, bytes, v,
     ^
   lib/iov_iter.c:71:2: error: 'else' without a previous 'if'
     else      \
     ^
>> lib/iov_iter.c:97:3: note: in expansion of macro 'iterate_bvec'
      iterate_bvec(i, n, v, bvec, skip, (B))  \
      ^
>> lib/iov_iter.c:386:2: note: in expansion of macro 'iterate_and_advance'
     iterate_and_advance(i, bytes, v,
     ^
   lib/iov_iter.c:61:25: warning: unused variable '__start' [-Wunused-variable]
     struct bvec_iter __bi, __start;   \
                            ^
>> lib/iov_iter.c:97:3: note: in expansion of macro 'iterate_bvec'
      iterate_bvec(i, n, v, bvec, skip, (B))  \
      ^
>> lib/iov_iter.c:386:2: note: in expansion of macro 'iterate_and_advance'
     iterate_and_advance(i, bytes, v,
     ^
   lib/iov_iter.c:61:19: warning: unused variable '__bi' [-Wunused-variable]
     struct bvec_iter __bi, __start;   \
                      ^
>> lib/iov_iter.c:97:3: note: in expansion of macro 'iterate_bvec'
      iterate_bvec(i, n, v, bvec, skip, (B))  \
      ^
>> lib/iov_iter.c:386:2: note: in expansion of macro 'iterate_and_advance'
     iterate_and_advance(i, bytes, v,
     ^
   lib/iov_iter.c: In function 'copy_from_iter':
   lib/iov_iter.c:61:19: error: storage size of '__bi' isn't known
     struct bvec_iter __bi, __start;   \
                      ^
>> lib/iov_iter.c:97:3: note: in expansion of macro 'iterate_bvec'
      iterate_bvec(i, n, v, bvec, skip, (B))  \
      ^
   lib/iov_iter.c:407:2: note: in expansion of macro 'iterate_and_advance'
     iterate_and_advance(i, bytes, v,
     ^
   lib/iov_iter.c:61:25: error: storage size of '__start' isn't known
     struct bvec_iter __bi, __start;   \
                            ^
>> lib/iov_iter.c:97:3: note: in expansion of macro 'iterate_bvec'
      iterate_bvec(i, n, v, bvec, skip, (B))  \
      ^
   lib/iov_iter.c:407:2: note: in expansion of macro 'iterate_and_advance'
     iterate_and_advance(i, bytes, v,
     ^
   lib/iov_iter.c:66:41: error: expected ';' before '{' token
     for_each_bvec(__v, __p, __bi, __start) { \
                                            ^
>> lib/iov_iter.c:97:3: note: in expansion of macro 'iterate_bvec'
      iterate_bvec(i, n, v, bvec, skip, (B))  \
      ^
   lib/iov_iter.c:407:2: note: in expansion of macro 'iterate_and_advance'
     iterate_and_advance(i, bytes, v,
     ^
   lib/iov_iter.c:71:2: error: 'else' without a previous 'if'
     else      \
     ^
>> lib/iov_iter.c:97:3: note: in expansion of macro 'iterate_bvec'
      iterate_bvec(i, n, v, bvec, skip, (B))  \
      ^
   lib/iov_iter.c:407:2: note: in expansion of macro 'iterate_and_advance'
     iterate_and_advance(i, bytes, v,
     ^
   lib/iov_iter.c:61:25: warning: unused variable '__start' [-Wunused-variable]
     struct bvec_iter __bi, __start;   \
                            ^
>> lib/iov_iter.c:97:3: note: in expansion of macro 'iterate_bvec'
      iterate_bvec(i, n, v, bvec, skip, (B))  \
      ^
   lib/iov_iter.c:407:2: note: in expansion of macro 'iterate_and_advance'
     iterate_and_advance(i, bytes, v,
     ^
   lib/iov_iter.c:61:19: warning: unused variable '__bi' [-Wunused-variable]
     struct bvec_iter __bi, __start;   \
                      ^
>> lib/iov_iter.c:97:3: note: in expansion of macro 'iterate_bvec'
      iterate_bvec(i, n, v, bvec, skip, (B))  \
      ^
   lib/iov_iter.c:407:2: note: in expansion of macro 'iterate_and_advance'
     iterate_and_advance(i, bytes, v,
     ^
   lib/iov_iter.c: In function 'copy_from_iter_nocache':
   lib/iov_iter.c:61:19: error: storage size of '__bi' isn't known
     struct bvec_iter __bi, __start;   \
                      ^

vim +/iterate_bvec +97 lib/iov_iter.c

a280455f mm/iov_iter.c  Al Viro  2014-11-27   55                n -= 
__v.iov_len;                       \
a280455f mm/iov_iter.c  Al Viro  2014-11-27   56        }                       
                        \
a280455f mm/iov_iter.c  Al Viro  2014-11-27   57        n = wanted;             
                        \
a280455f mm/iov_iter.c  Al Viro  2014-11-27   58  }
a280455f mm/iov_iter.c  Al Viro  2014-11-27   59  
04a31165 mm/iov_iter.c  Al Viro  2014-11-27   60  #define iterate_bvec(i, n, 
__v, __p, skip, STEP) {    \
d8853dc1 lib/iov_iter.c Ming Lei 2015-10-10  @61        struct bvec_iter __bi, 
__start;                 \
d8853dc1 lib/iov_iter.c Ming Lei 2015-10-10   62        __start.bi_size = n;    
                        \
d8853dc1 lib/iov_iter.c Ming Lei 2015-10-10   63        __start.bi_bvec_done = 
skip;                    \
d8853dc1 lib/iov_iter.c Ming Lei 2015-10-10   64        __start.bi_idx = 0;     
                        \
04a31165 mm/iov_iter.c  Al Viro  2014-11-27   65        __p = i->bvec;          
                        \
d8853dc1 lib/iov_iter.c Ming Lei 2015-10-10   66        for_each_bvec(__v, __p, 
__bi, __start) {        \
04a31165 mm/iov_iter.c  Al Viro  2014-11-27   67                (void)(STEP);   
                        \
04a31165 mm/iov_iter.c  Al Viro  2014-11-27   68        }                       
                        \
d8853dc1 lib/iov_iter.c Ming Lei 2015-10-10   69        if (!__bi.bi_idx)       
                        \
d8853dc1 lib/iov_iter.c Ming Lei 2015-10-10   70                skip += 
__v.bv_len;                     \
d8853dc1 lib/iov_iter.c Ming Lei 2015-10-10   71        else                    
                        \
04a31165 mm/iov_iter.c  Al Viro  2014-11-27   72                skip = 
__v.bv_len;                      \
04a31165 mm/iov_iter.c  Al Viro  2014-11-27   73  }
04a31165 mm/iov_iter.c  Al Viro  2014-11-27   74  
a280455f mm/iov_iter.c  Al Viro  2014-11-27   75  #define iterate_all_kinds(i, 
n, v, I, B, K) {                 \
04a31165 mm/iov_iter.c  Al Viro  2014-11-27   76        size_t skip = 
i->iov_offset;                            \
04a31165 mm/iov_iter.c  Al Viro  2014-11-27   77        if (unlikely(i->type & 
ITER_BVEC)) {                    \
04a31165 mm/iov_iter.c  Al Viro  2014-11-27   78                const struct 
bio_vec *bvec;                     \
04a31165 mm/iov_iter.c  Al Viro  2014-11-27   79                struct bio_vec 
v;                               \
04a31165 mm/iov_iter.c  Al Viro  2014-11-27   80                iterate_bvec(i, 
n, v, bvec, skip, (B))          \
a280455f mm/iov_iter.c  Al Viro  2014-11-27   81        } else if 
(unlikely(i->type & ITER_KVEC)) {             \
a280455f mm/iov_iter.c  Al Viro  2014-11-27   82                const struct 
kvec *kvec;                        \
a280455f mm/iov_iter.c  Al Viro  2014-11-27   83                struct kvec v;  
                                \
a280455f mm/iov_iter.c  Al Viro  2014-11-27   84                iterate_kvec(i, 
n, v, kvec, skip, (K))          \
04a31165 mm/iov_iter.c  Al Viro  2014-11-27   85        } else {                
                                \
04a31165 mm/iov_iter.c  Al Viro  2014-11-27   86                const struct 
iovec *iov;                        \
04a31165 mm/iov_iter.c  Al Viro  2014-11-27   87                struct iovec v; 
                                \
04a31165 mm/iov_iter.c  Al Viro  2014-11-27   88                
iterate_iovec(i, n, v, iov, skip, (I))          \
04a31165 mm/iov_iter.c  Al Viro  2014-11-27   89        }                       
                                \
04a31165 mm/iov_iter.c  Al Viro  2014-11-27   90  }
04a31165 mm/iov_iter.c  Al Viro  2014-11-27   91  
a280455f mm/iov_iter.c  Al Viro  2014-11-27   92  #define 
iterate_and_advance(i, n, v, I, B, K) {                       \
7ce2a91e mm/iov_iter.c  Al Viro  2014-11-27   93        size_t skip = 
i->iov_offset;                            \
7ce2a91e mm/iov_iter.c  Al Viro  2014-11-27   94        if (unlikely(i->type & 
ITER_BVEC)) {                    \
7ce2a91e mm/iov_iter.c  Al Viro  2014-11-27   95                const struct 
bio_vec *bvec;                     \
7ce2a91e mm/iov_iter.c  Al Viro  2014-11-27   96                struct bio_vec 
v;                               \
7ce2a91e mm/iov_iter.c  Al Viro  2014-11-27  @97                iterate_bvec(i, 
n, v, bvec, skip, (B))          \
7ce2a91e mm/iov_iter.c  Al Viro  2014-11-27   98                if (skip == 
bvec->bv_len) {                     \
7ce2a91e mm/iov_iter.c  Al Viro  2014-11-27   99                        bvec++; 
                                \
7ce2a91e mm/iov_iter.c  Al Viro  2014-11-27  100                        skip = 
0;                               \

:::::: The code at line 97 was first introduced by commit
:::::: 7ce2a91e51288f308bfe5ea7e5743517c15c8e25 iov_iter.c: iterate_and_advance

:::::: TO: Al Viro <[email protected]>
:::::: CC: Al Viro <[email protected]>

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

Attachment: .config.gz
Description: Binary data

Reply via email to