tree: https://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git work.splice_read head: 9a791e155521e4599ebe1d2fc2ed17fc705d5348 commit: a2b71ea9079ab9cda3be5a85535e602312deb89e [4/11] splice: lift pipe_lock out of splice_to_pipe() config: m68k-sun3_defconfig (attached as .config) compiler: m68k-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 a2b71ea9079ab9cda3be5a85535e602312deb89e # save the attached .config to linux build tree make.cross ARCH=m68k All warnings (new ones prefixed by >>): fs/splice.c: In function 'do_splice': >> fs/splice.c:1422:19: warning: passing argument 2 of 'splice_more' from incompatible pointer type } while (len && splice_more(opipe, &ret, flags)); ^ fs/splice.c:1304:13: note: expected 'ssize_t *' but argument is of type 'long int *' static bool splice_more(struct pipe_inode_info *pipe, ^ fs/splice.c: In function 'vmsplice_to_pipe': fs/splice.c:1572:36: warning: passing argument 2 of 'splice_more' from incompatible pointer type } while (iov_iter_count(&from) && splice_more(pipe, &ret, flags)); ^ fs/splice.c:1304:13: note: expected 'ssize_t *' but argument is of type 'long int *' static bool splice_more(struct pipe_inode_info *pipe, ^ vim +/splice_more +1422 fs/splice.c 1406 offset = in->f_pos; 1407 } 1408 1409 ret = 0; 1410 pipe_lock(opipe); 1411 bogus_count = opipe->buffers; 1412 do { 1413 bogus_count += opipe->nrbufs; 1414 ret = do_splice_to(in, &offset, opipe, len, flags); 1415 if (ret > 0) { 1416 total += ret; 1417 len -= ret; 1418 } 1419 bogus_count -= opipe->nrbufs; 1420 if (bogus_count <= 0) 1421 break; > 1422 } while (len && splice_more(opipe, &ret, flags)); 1423 pipe_unlock(opipe); 1424 if (total) { 1425 wakeup_pipe_readers(opipe); 1426 ret = total; 1427 } 1428 if (!off_in) 1429 in->f_pos = offset; 1430 else if (copy_to_user(off_in, &offset, sizeof(loff_t))) --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip