[bvanassche:scsi-status 11/37] drivers/ide/ide-floppy_ioctl.c:294:41: error: use of undeclared identifier 'SCSI_IOCTL_SEND_COMMAND'
by kernel test robot
tree: https://github.com/bvanassche/linux scsi-status
head: 7683aa7aa8211491779c9fba302adb691a80b08a
commit: 87c32e7e1cf663904d348a5b1ce8d6d4f015967d [11/37] ide: Inline struct scsi_request into struct ide_request
config: x86_64-randconfig-a014-20210411 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 9829f5e6b1bca9b61efc629770d28bb9014dec45)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://github.com/bvanassche/linux/commit/87c32e7e1cf663904d348a5b1ce8d6...
git remote add bvanassche https://github.com/bvanassche/linux
git fetch --no-tags bvanassche scsi-status
git checkout 87c32e7e1cf663904d348a5b1ce8d6d4f015967d
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
>> drivers/ide/ide-floppy_ioctl.c:294:41: error: use of undeclared identifier 'SCSI_IOCTL_SEND_COMMAND'
if (cmd != CDROM_SEND_PACKET && cmd != SCSI_IOCTL_SEND_COMMAND)
^
drivers/ide/ide-floppy_ioctl.c:327:41: error: use of undeclared identifier 'SCSI_IOCTL_SEND_COMMAND'
if (cmd != CDROM_SEND_PACKET && cmd != SCSI_IOCTL_SEND_COMMAND)
^
2 errors generated.
vim +/SCSI_IOCTL_SEND_COMMAND +294 drivers/ide/ide-floppy_ioctl.c
5bb1536a07cca0 Bartlomiej Zolnierkiewicz 2008-10-13 272
badf8082c33d18 Al Viro 2008-10-16 273 int ide_floppy_ioctl(ide_drive_t *drive, struct block_device *bdev,
badf8082c33d18 Al Viro 2008-10-16 274 fmode_t mode, unsigned int cmd, unsigned long arg)
5bb1536a07cca0 Bartlomiej Zolnierkiewicz 2008-10-13 275 {
5bb1536a07cca0 Bartlomiej Zolnierkiewicz 2008-10-13 276 struct ide_atapi_pc pc;
5bb1536a07cca0 Bartlomiej Zolnierkiewicz 2008-10-13 277 void __user *argp = (void __user *)arg;
5bb1536a07cca0 Bartlomiej Zolnierkiewicz 2008-10-13 278 int err;
5bb1536a07cca0 Bartlomiej Zolnierkiewicz 2008-10-13 279
2a48fc0ab24241 Arnd Bergmann 2010-06-02 280 mutex_lock(&ide_floppy_ioctl_mutex);
8a6cfeb6deca3a Arnd Bergmann 2010-07-08 281 if (cmd == CDROMEJECT || cmd == CDROM_LOCKDOOR) {
8a6cfeb6deca3a Arnd Bergmann 2010-07-08 282 err = ide_floppy_lockdoor(drive, &pc, arg, cmd);
8a6cfeb6deca3a Arnd Bergmann 2010-07-08 283 goto out;
8a6cfeb6deca3a Arnd Bergmann 2010-07-08 284 }
5bb1536a07cca0 Bartlomiej Zolnierkiewicz 2008-10-13 285
07bd3f4731f9c7 Linus Torvalds 2009-01-02 286 err = ide_floppy_format_ioctl(drive, &pc, mode, cmd, argp);
5bb1536a07cca0 Bartlomiej Zolnierkiewicz 2008-10-13 287 if (err != -ENOTTY)
8a6cfeb6deca3a Arnd Bergmann 2010-07-08 288 goto out;
5bb1536a07cca0 Bartlomiej Zolnierkiewicz 2008-10-13 289
5bb1536a07cca0 Bartlomiej Zolnierkiewicz 2008-10-13 290 /*
5bb1536a07cca0 Bartlomiej Zolnierkiewicz 2008-10-13 291 * skip SCSI_IOCTL_SEND_COMMAND (deprecated)
5bb1536a07cca0 Bartlomiej Zolnierkiewicz 2008-10-13 292 * and CDROM_SEND_PACKET (legacy) ioctls
5bb1536a07cca0 Bartlomiej Zolnierkiewicz 2008-10-13 293 */
5bb1536a07cca0 Bartlomiej Zolnierkiewicz 2008-10-13 @294 if (cmd != CDROM_SEND_PACKET && cmd != SCSI_IOCTL_SEND_COMMAND)
577ebb374c7831 Paolo Bonzini 2012-01-12 295 err = scsi_cmd_blk_ioctl(bdev, mode, cmd, argp);
5bb1536a07cca0 Bartlomiej Zolnierkiewicz 2008-10-13 296
5bb1536a07cca0 Bartlomiej Zolnierkiewicz 2008-10-13 297 if (err == -ENOTTY)
1bddd9e6453ef1 Al Viro 2008-09-02 298 err = generic_ide_ioctl(drive, bdev, cmd, arg);
5bb1536a07cca0 Bartlomiej Zolnierkiewicz 2008-10-13 299
8a6cfeb6deca3a Arnd Bergmann 2010-07-08 300 out:
2a48fc0ab24241 Arnd Bergmann 2010-06-02 301 mutex_unlock(&ide_floppy_ioctl_mutex);
5bb1536a07cca0 Bartlomiej Zolnierkiewicz 2008-10-13 302 return err;
5bb1536a07cca0 Bartlomiej Zolnierkiewicz 2008-10-13 303 }
c103d6ee69f93e Arnd Bergmann 2019-03-15 304
:::::: The code at line 294 was first introduced by commit
:::::: 5bb1536a07cca0b66f2bb41dfdf84140939b8f1f ide-floppy: move all ioctl handling to ide-floppy_ioctl.c (take 2)
:::::: TO: Bartlomiej Zolnierkiewicz <bzolnier(a)gmail.com>
:::::: CC: Bartlomiej Zolnierkiewicz <bzolnier(a)gmail.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 5 months
drivers/accessibility/speakup/speakup_dtlk.c:334:28: sparse: sparse: cast removes address space '__iomem' of expression
by kernel test robot
Hi Samuel,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 52e44129fba5cfc4e351fdb5e45849afc74d9a53
commit: 2067fd92d75b6d9085a43caf050bca5d88c491b8 staging/speakup: Move out of staging
date: 9 months ago
config: riscv-randconfig-s032-20210411 (attached as .config)
compiler: riscv32-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.3-279-g6d5d9b42-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 2067fd92d75b6d9085a43caf050bca5d88c491b8
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/accessibility/speakup/speakup_dtlk.c:334:28: sparse: sparse: cast removes address space '__iomem' of expression
>> drivers/accessibility/speakup/speakup_dtlk.c:334:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/accessibility/speakup/speakup_dtlk.c:334:28: sparse: expected void const volatile [noderef] __iomem *addr
drivers/accessibility/speakup/speakup_dtlk.c:334:28: sparse: got void *
drivers/accessibility/speakup/speakup_dtlk.c:341:36: sparse: sparse: cast removes address space '__iomem' of expression
drivers/accessibility/speakup/speakup_dtlk.c:341:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/accessibility/speakup/speakup_dtlk.c:341:36: sparse: expected void const volatile [noderef] __iomem *addr
drivers/accessibility/speakup/speakup_dtlk.c:341:36: sparse: got void *
drivers/accessibility/speakup/speakup_dtlk.c: note: in included file (through arch/riscv/include/asm/io.h, include/linux/io.h, drivers/accessibility/speakup/spk_types.h, ...):
include/asm-generic/io.h:556:16: sparse: sparse: cast removes address space '__iomem' of expression
include/asm-generic/io.h:556:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
include/asm-generic/io.h:556:16: sparse: expected void const volatile [noderef] __iomem *addr
include/asm-generic/io.h:556:16: sparse: got void *
include/asm-generic/io.h:580:9: sparse: sparse: cast removes address space '__iomem' of expression
include/asm-generic/io.h:580:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
include/asm-generic/io.h:580:9: sparse: expected void volatile [noderef] __iomem *addr
include/asm-generic/io.h:580:9: sparse: got void *
include/asm-generic/io.h:556:16: sparse: sparse: cast removes address space '__iomem' of expression
include/asm-generic/io.h:556:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
include/asm-generic/io.h:556:16: sparse: expected void const volatile [noderef] __iomem *addr
include/asm-generic/io.h:556:16: sparse: got void *
include/asm-generic/io.h:556:16: sparse: sparse: cast removes address space '__iomem' of expression
include/asm-generic/io.h:556:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
include/asm-generic/io.h:556:16: sparse: expected void const volatile [noderef] __iomem *addr
include/asm-generic/io.h:556:16: sparse: got void *
include/asm-generic/io.h:556:16: sparse: sparse: cast removes address space '__iomem' of expression
include/asm-generic/io.h:556:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
include/asm-generic/io.h:556:16: sparse: expected void const volatile [noderef] __iomem *addr
include/asm-generic/io.h:556:16: sparse: got void *
include/asm-generic/io.h:580:9: sparse: sparse: cast removes address space '__iomem' of expression
include/asm-generic/io.h:580:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
include/asm-generic/io.h:580:9: sparse: expected void volatile [noderef] __iomem *addr
include/asm-generic/io.h:580:9: sparse: got void *
include/asm-generic/io.h:556:16: sparse: sparse: cast removes address space '__iomem' of expression
include/asm-generic/io.h:556:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
include/asm-generic/io.h:556:16: sparse: expected void const volatile [noderef] __iomem *addr
include/asm-generic/io.h:556:16: sparse: got void *
include/asm-generic/io.h:556:16: sparse: sparse: cast removes address space '__iomem' of expression
include/asm-generic/io.h:556:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
include/asm-generic/io.h:556:16: sparse: expected void const volatile [noderef] __iomem *addr
include/asm-generic/io.h:556:16: sparse: got void *
include/asm-generic/io.h:580:9: sparse: sparse: cast removes address space '__iomem' of expression
include/asm-generic/io.h:580:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
include/asm-generic/io.h:580:9: sparse: expected void volatile [noderef] __iomem *addr
include/asm-generic/io.h:580:9: sparse: got void *
include/asm-generic/io.h:556:16: sparse: sparse: cast removes address space '__iomem' of expression
include/asm-generic/io.h:556:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
include/asm-generic/io.h:556:16: sparse: expected void const volatile [noderef] __iomem *addr
include/asm-generic/io.h:556:16: sparse: got void *
include/asm-generic/io.h:564:16: sparse: sparse: cast removes address space '__iomem' of expression
include/asm-generic/io.h:564:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
include/asm-generic/io.h:564:16: sparse: expected void const volatile [noderef] __iomem *addr
include/asm-generic/io.h:564:16: sparse: got void *
--
>> drivers/accessibility/speakup/serialio.c:139:9: sparse: sparse: cast removes address space '__iomem' of expression
>> drivers/accessibility/speakup/serialio.c:139:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:139:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:139:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:142:9: sparse: sparse: cast removes address space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:142:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:142:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:142:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:144:9: sparse: sparse: cast removes address space '__iomem' of expression
>> drivers/accessibility/speakup/serialio.c:144:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:144:9: sparse: expected void const volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:144:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:145:9: sparse: sparse: cast removes address space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:145:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:145:9: sparse: expected void const volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:145:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:146:9: sparse: sparse: cast removes address space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:146:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:146:9: sparse: expected void const volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:146:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:147:9: sparse: sparse: cast removes address space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:147:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:147:9: sparse: expected void const volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:147:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:148:9: sparse: sparse: cast removes address space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:148:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:148:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:148:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:155:16: sparse: sparse: cast removes address space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:155:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:155:16: sparse: expected void const volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:155:16: sparse: got void *
drivers/accessibility/speakup/serialio.c:160:9: sparse: sparse: cast removes address space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:160:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:160:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:160:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:165:19: sparse: sparse: cast removes address space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:165:19: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:165:19: sparse: expected void const volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:165:19: sparse: got void *
drivers/accessibility/speakup/serialio.c:167:9: sparse: sparse: cast removes address space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:167:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:167:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:167:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:87:9: sparse: sparse: cast removes address space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:87:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:87:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:87:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:88:9: sparse: sparse: cast removes address space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:88:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:88:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:88:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:89:9: sparse: sparse: cast removes address space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:89:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:89:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:89:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:90:9: sparse: sparse: cast removes address space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:90:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:90:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:90:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:93:9: sparse: sparse: cast removes address space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:93:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:93:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:93:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:94:9: sparse: sparse: cast removes address space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:94:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:94:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:94:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:97:13: sparse: sparse: cast removes address space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:97:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:97:13: sparse: expected void const volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:97:13: sparse: got void *
drivers/accessibility/speakup/serialio.c:208:9: sparse: sparse: cast removes address space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:208:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:208:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:208:9: sparse: got void *
drivers/accessibility/speakup/serialio.c:230:16: sparse: sparse: cast removes address space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:230:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:230:16: sparse: expected void const volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:230:16: sparse: got void *
drivers/accessibility/speakup/serialio.c:299:25: sparse: sparse: cast removes address space '__iomem' of expression
drivers/accessibility/speakup/serialio.c:299:25: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/accessibility/speakup/serialio.c:299:25: sparse: expected void volatile [noderef] __iomem *addr
drivers/accessibility/speakup/serialio.c:299:25: sparse: got void *
drivers/accessibility/speakup/serialio.c: note: in included file (through arch/riscv/include/asm/io.h, include/linux/io.h, include/linux/irq.h, ...):
include/asm-generic/io.h:556:16: sparse: sparse: cast removes address space '__iomem' of expression
include/asm-generic/io.h:556:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
include/asm-generic/io.h:556:16: sparse: expected void const volatile [noderef] __iomem *addr
include/asm-generic/io.h:556:16: sparse: got void *
include/asm-generic/io.h:556:16: sparse: sparse: cast removes address space '__iomem' of expression
include/asm-generic/io.h:556:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
include/asm-generic/io.h:556:16: sparse: expected void const volatile [noderef] __iomem *addr
include/asm-generic/io.h:556:16: sparse: got void *
include/asm-generic/io.h:580:9: sparse: sparse: cast removes address space '__iomem' of expression
include/asm-generic/io.h:580:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
include/asm-generic/io.h:580:9: sparse: expected void volatile [noderef] __iomem *addr
include/asm-generic/io.h:580:9: sparse: got void *
include/asm-generic/io.h:580:9: sparse: sparse: cast removes address space '__iomem' of expression
include/asm-generic/io.h:580:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
include/asm-generic/io.h:580:9: sparse: expected void volatile [noderef] __iomem *addr
include/asm-generic/io.h:580:9: sparse: got void *
include/asm-generic/io.h:556:16: sparse: sparse: cast removes address space '__iomem' of expression
include/asm-generic/io.h:556:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
include/asm-generic/io.h:556:16: sparse: expected void const volatile [noderef] __iomem *addr
include/asm-generic/io.h:556:16: sparse: got void *
include/asm-generic/io.h:556:16: sparse: sparse: cast removes address space '__iomem' of expression
include/asm-generic/io.h:556:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
include/asm-generic/io.h:556:16: sparse: expected void const volatile [noderef] __iomem *addr
include/asm-generic/io.h:556:16: sparse: got void *
include/asm-generic/io.h:556:16: sparse: sparse: cast removes address space '__iomem' of expression
vim +/__iomem +334 drivers/accessibility/speakup/speakup_dtlk.c
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 315
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 316 static int synth_probe(struct spk_synth *synth)
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 317 {
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 318 unsigned int port_val = 0;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 319 int i = 0;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 320 struct synth_settings *sp;
8e69a811068657 drivers/staging/speakup/speakup_dtlk.c Domagoj Trsan 2014-09-09 321
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 322 pr_info("Probing for DoubleTalk.\n");
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 323 if (port_forced) {
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 324 speakup_info.port_tts = port_forced;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 325 pr_info("probe forced to %x by kernel command line\n",
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 326 speakup_info.port_tts);
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 327 if ((port_forced & 0xf) != 0xf)
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 328 pr_info("warning: port base should probably end with f\n");
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 329 if (synth_request_region(speakup_info.port_tts - 1,
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 330 SYNTH_IO_EXTENT)) {
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 331 pr_warn("sorry, port already reserved\n");
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 332 return -EBUSY;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 333 }
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 @334 port_val = inw(speakup_info.port_tts - 1);
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 335 synth_lpc = speakup_info.port_tts - 1;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 336 } else {
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 337 for (i = 0; synth_portlist[i]; i++) {
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 338 if (synth_request_region(synth_portlist[i],
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 339 SYNTH_IO_EXTENT))
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 340 continue;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 341 port_val = inw(synth_portlist[i]) & 0xfbff;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 342 if (port_val == 0x107f) {
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 343 synth_lpc = synth_portlist[i];
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 344 speakup_info.port_tts = synth_lpc + 1;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 345 break;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 346 }
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 347 synth_release_region(synth_portlist[i],
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 348 SYNTH_IO_EXTENT);
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 349 }
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 350 }
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 351 port_val &= 0xfbff;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 352 if (port_val != 0x107f) {
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 353 pr_info("DoubleTalk PC: not found\n");
7aa4d5c8ffed00 drivers/staging/speakup/speakup_dtlk.c Alan Cox 2014-12-15 354 if (synth_lpc)
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 355 synth_release_region(synth_lpc, SYNTH_IO_EXTENT);
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 356 return -ENODEV;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 357 }
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 358 while (inw_p(synth_lpc) != 0x147f)
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 359 cpu_relax(); /* wait until it's ready */
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 360 sp = synth_interrogate(synth);
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 361 pr_info("%s: %03x-%03x, ROM ver %s, s/n %u, driver: %s\n",
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 362 synth->long_name, synth_lpc, synth_lpc + SYNTH_IO_EXTENT - 1,
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 363 sp->rom_version, sp->serial_number, synth->version);
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 364 synth->alive = 1;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 365 return 0;
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 366 }
c6e3fd22cd5383 drivers/staging/speakup/speakup_dtlk.c William Hubbs 2010-10-07 367
:::::: The code at line 334 was first introduced by commit
:::::: c6e3fd22cd538365bfeb82997d5b89562e077d42 Staging: add speakup to the staging directory
:::::: TO: William Hubbs <w.d.hubbs(a)gmail.com>
:::::: CC: Greg Kroah-Hartman <gregkh(a)suse.de>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 5 months
[block:for-5.13/io_uring 94/106] fs/io_uring.c:4174:14: sparse: sparse: incorrect type in assignment (different address spaces)
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git for-5.13/io_uring
head: cad640129f844fcb72750f4cced5041ead287cbe
commit: 504a5bb259c88ae14141660adc048919f54b6d6b [94/106] io_uring: refactor io_close
config: x86_64-randconfig-s021-20210411 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.3-279-g6d5d9b42-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/com...
git remote add block https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
git fetch --no-tags block for-5.13/io_uring
git checkout 504a5bb259c88ae14141660adc048919f54b6d6b
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
fs/io_uring.c:2876:24: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void [noderef] __user * @@ got struct io_buffer *[assigned] kbuf @@
fs/io_uring.c:2876:24: sparse: expected void [noderef] __user *
fs/io_uring.c:2876:24: sparse: got struct io_buffer *[assigned] kbuf
>> fs/io_uring.c:4174:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct file *file @@ got struct file [noderef] __rcu * @@
fs/io_uring.c:4174:14: sparse: expected struct file *file
fs/io_uring.c:4174:14: sparse: got struct file [noderef] __rcu *
fs/io_uring.c:4781:72: sparse: sparse: incorrect type in argument 4 (different base types) @@ expected int mask @@ got restricted __poll_t [usertype] mask @@
fs/io_uring.c:4781:72: sparse: expected int mask
fs/io_uring.c:4781:72: sparse: got restricted __poll_t [usertype] mask
fs/io_uring.c:4785:21: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] result @@ got restricted __poll_t [usertype] mask @@
fs/io_uring.c:4785:21: sparse: expected unsigned int [usertype] result
fs/io_uring.c:4785:21: sparse: got restricted __poll_t [usertype] mask
fs/io_uring.c:4810:29: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] result @@ got restricted __poll_t @@
fs/io_uring.c:4810:29: sparse: expected unsigned int [usertype] result
fs/io_uring.c:4810:29: sparse: got restricted __poll_t
fs/io_uring.c:4891:49: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected restricted __poll_t [usertype] mask @@ got unsigned int [usertype] result @@
fs/io_uring.c:4891:49: sparse: expected restricted __poll_t [usertype] mask
fs/io_uring.c:4891:49: sparse: got unsigned int [usertype] result
fs/io_uring.c:5041:41: sparse: sparse: incorrect type in argument 4 (different base types) @@ expected int mask @@ got restricted __poll_t [usertype] @@
fs/io_uring.c:5041:41: sparse: expected int mask
fs/io_uring.c:5041:41: sparse: got restricted __poll_t [usertype]
fs/io_uring.c:5129:22: sparse: sparse: invalid assignment: |=
fs/io_uring.c:5129:22: sparse: left side has type restricted __poll_t
fs/io_uring.c:5129:22: sparse: right side has type int
fs/io_uring.c:5131:22: sparse: sparse: invalid assignment: |=
fs/io_uring.c:5131:22: sparse: left side has type restricted __poll_t
fs/io_uring.c:5131:22: sparse: right side has type int
fs/io_uring.c:5136:22: sparse: sparse: invalid assignment: &=
fs/io_uring.c:5136:22: sparse: left side has type restricted __poll_t
fs/io_uring.c:5136:22: sparse: right side has type int
fs/io_uring.c:5138:14: sparse: sparse: invalid assignment: |=
fs/io_uring.c:5138:14: sparse: left side has type restricted __poll_t
fs/io_uring.c:5138:14: sparse: right side has type int
fs/io_uring.c:5152:67: sparse: sparse: incorrect type in argument 4 (different base types) @@ expected int mask @@ got restricted __poll_t [assigned] [usertype] mask @@
fs/io_uring.c:5152:67: sparse: expected int mask
fs/io_uring.c:5152:67: sparse: got restricted __poll_t [assigned] [usertype] mask
fs/io_uring.c:5153:52: sparse: sparse: incorrect type in argument 5 (different base types) @@ expected int events @@ got restricted __poll_t [usertype] events @@
fs/io_uring.c:5153:52: sparse: expected int events
fs/io_uring.c:5153:52: sparse: got restricted __poll_t [usertype] events
fs/io_uring.c:5342:24: sparse: sparse: invalid assignment: |=
fs/io_uring.c:5342:24: sparse: left side has type unsigned int
fs/io_uring.c:5342:24: sparse: right side has type restricted __poll_t
fs/io_uring.c:5356:58: sparse: sparse: restricted __poll_t degrades to integer
fs/io_uring.c:5355:37: sparse: sparse: restricted __poll_t degrades to integer
fs/io_uring.c:5355:22: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __poll_t [usertype] events @@ got unsigned int @@
fs/io_uring.c:5355:22: sparse: expected restricted __poll_t [usertype] events
fs/io_uring.c:5355:22: sparse: got unsigned int
fs/io_uring.c:5425:35: sparse: sparse: invalid assignment: &=
fs/io_uring.c:5425:35: sparse: left side has type restricted __poll_t
fs/io_uring.c:5425:35: sparse: right side has type int
fs/io_uring.c:5426:47: sparse: sparse: restricted __poll_t degrades to integer
fs/io_uring.c:5426:35: sparse: sparse: invalid assignment: |=
fs/io_uring.c:5426:35: sparse: left side has type restricted __poll_t
fs/io_uring.c:5426:35: sparse: right side has type unsigned int
fs/io_uring.c:7204:9: sparse: sparse: context imbalance in 'io_sq_thread_unpark' - wrong count at exit
fs/io_uring.c:7215:9: sparse: sparse: context imbalance in 'io_sq_thread_park' - wrong count at exit
vim +4174 fs/io_uring.c
b5dba59e0cf7e2 Jens Axboe 2019-12-11 4159
889fca73287b0a Pavel Begunkov 2021-02-10 4160 static int io_close(struct io_kiocb *req, unsigned int issue_flags)
b5dba59e0cf7e2 Jens Axboe 2019-12-11 4161 {
9eac1904d33642 Jens Axboe 2021-01-19 4162 struct files_struct *files = current->files;
3af73b286ccee4 Pavel Begunkov 2020-06-08 4163 struct io_close *close = &req->close;
9eac1904d33642 Jens Axboe 2021-01-19 4164 struct fdtable *fdt;
504a5bb259c88a Pavel Begunkov 2021-04-11 4165 struct file *file = NULL;
504a5bb259c88a Pavel Begunkov 2021-04-11 4166 int ret = -EBADF;
b5dba59e0cf7e2 Jens Axboe 2019-12-11 4167
9eac1904d33642 Jens Axboe 2021-01-19 4168 spin_lock(&files->file_lock);
9eac1904d33642 Jens Axboe 2021-01-19 4169 fdt = files_fdtable(files);
9eac1904d33642 Jens Axboe 2021-01-19 4170 if (close->fd >= fdt->max_fds) {
9eac1904d33642 Jens Axboe 2021-01-19 4171 spin_unlock(&files->file_lock);
9eac1904d33642 Jens Axboe 2021-01-19 4172 goto err;
9eac1904d33642 Jens Axboe 2021-01-19 4173 }
9eac1904d33642 Jens Axboe 2021-01-19 @4174 file = fdt->fd[close->fd];
504a5bb259c88a Pavel Begunkov 2021-04-11 4175 if (!file || file->f_op == &io_uring_fops) {
9eac1904d33642 Jens Axboe 2021-01-19 4176 spin_unlock(&files->file_lock);
9eac1904d33642 Jens Axboe 2021-01-19 4177 file = NULL;
9eac1904d33642 Jens Axboe 2021-01-19 4178 goto err;
3af73b286ccee4 Pavel Begunkov 2020-06-08 4179 }
b5dba59e0cf7e2 Jens Axboe 2019-12-11 4180
b5dba59e0cf7e2 Jens Axboe 2019-12-11 4181 /* if the file has a flush method, be safe and punt to async */
45d189c6062922 Pavel Begunkov 2021-02-10 4182 if (file->f_op->flush && (issue_flags & IO_URING_F_NONBLOCK)) {
9eac1904d33642 Jens Axboe 2021-01-19 4183 spin_unlock(&files->file_lock);
0bf0eefdab52d9 Pavel Begunkov 2020-05-26 4184 return -EAGAIN;
b5dba59e0cf7e2 Jens Axboe 2019-12-11 4185 }
b5dba59e0cf7e2 Jens Axboe 2019-12-11 4186
9eac1904d33642 Jens Axboe 2021-01-19 4187 ret = __close_fd_get_file(close->fd, &file);
9eac1904d33642 Jens Axboe 2021-01-19 4188 spin_unlock(&files->file_lock);
9eac1904d33642 Jens Axboe 2021-01-19 4189 if (ret < 0) {
9eac1904d33642 Jens Axboe 2021-01-19 4190 if (ret == -ENOENT)
9eac1904d33642 Jens Axboe 2021-01-19 4191 ret = -EBADF;
9eac1904d33642 Jens Axboe 2021-01-19 4192 goto err;
9eac1904d33642 Jens Axboe 2021-01-19 4193 }
9eac1904d33642 Jens Axboe 2021-01-19 4194
3af73b286ccee4 Pavel Begunkov 2020-06-08 4195 /* No ->flush() or already async, safely close from here */
9eac1904d33642 Jens Axboe 2021-01-19 4196 ret = filp_close(file, current->files);
9eac1904d33642 Jens Axboe 2021-01-19 4197 err:
3af73b286ccee4 Pavel Begunkov 2020-06-08 4198 if (ret < 0)
3af73b286ccee4 Pavel Begunkov 2020-06-08 4199 req_set_fail_links(req);
9eac1904d33642 Jens Axboe 2021-01-19 4200 if (file)
9eac1904d33642 Jens Axboe 2021-01-19 4201 fput(file);
889fca73287b0a Pavel Begunkov 2021-02-10 4202 __io_req_complete(req, issue_flags, ret, 0);
a2100672f3b2af Pavel Begunkov 2020-03-02 4203 return 0;
a2100672f3b2af Pavel Begunkov 2020-03-02 4204 }
a2100672f3b2af Pavel Begunkov 2020-03-02 4205
:::::: The code at line 4174 was first introduced by commit
:::::: 9eac1904d3364254d622bf2c771c4f85cd435fc2 io_uring: get rid of intermediate IORING_OP_CLOSE stage
:::::: TO: Jens Axboe <axboe(a)kernel.dk>
:::::: CC: Jens Axboe <axboe(a)kernel.dk>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 5 months
[android-common:android-mainline-tracking 409/836] fs/incfs/pseudo_files.c:325:24: error: passing argument 1 of 'notify_change' from incompatible pointer type
by kernel test robot
tree: https://android.googlesource.com/kernel/common android-mainline-tracking
head: 74f61c888eeeb9cbc57d44c61fafe32df9b3da51
commit: cf0772edababbf59ea06a5aed0345bdbd76e2d92 [409/836] ANDROID: Incremental fs: Separate pseudo-file code
config: x86_64-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
git remote add android-common https://android.googlesource.com/kernel/common
git fetch --no-tags android-common android-mainline-tracking
git checkout cf0772edababbf59ea06a5aed0345bdbd76e2d92
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Note: the android-common/android-mainline-tracking HEAD 74f61c888eeeb9cbc57d44c61fafe32df9b3da51 builds fine.
It only hurts bisectibility.
All errors (new ones prefixed by >>):
fs/incfs/pseudo_files.c: In function 'chmod':
>> fs/incfs/pseudo_files.c:325:24: error: passing argument 1 of 'notify_change' from incompatible pointer type [-Werror=incompatible-pointer-types]
325 | error = notify_change(dentry, &newattrs, &delegated_inode);
| ^~~~~~
| |
| struct dentry *
In file included from fs/incfs/pseudo_files.c:7:
include/linux/fs.h:2865:19: note: expected 'struct user_namespace *' but argument is of type 'struct dentry *'
2865 | int notify_change(struct user_namespace *, struct dentry *,
| ^~~~~~~~~~~~~~~~~~~~~~~
fs/incfs/pseudo_files.c:325:32: error: passing argument 2 of 'notify_change' from incompatible pointer type [-Werror=incompatible-pointer-types]
325 | error = notify_change(dentry, &newattrs, &delegated_inode);
| ^~~~~~~~~
| |
| struct iattr *
In file included from fs/incfs/pseudo_files.c:7:
include/linux/fs.h:2865:44: note: expected 'struct dentry *' but argument is of type 'struct iattr *'
2865 | int notify_change(struct user_namespace *, struct dentry *,
| ^~~~~~~~~~~~~~~
fs/incfs/pseudo_files.c:325:43: error: passing argument 3 of 'notify_change' from incompatible pointer type [-Werror=incompatible-pointer-types]
325 | error = notify_change(dentry, &newattrs, &delegated_inode);
| ^~~~~~~~~~~~~~~~
| |
| struct inode **
In file included from fs/incfs/pseudo_files.c:7:
include/linux/fs.h:2866:5: note: expected 'struct iattr *' but argument is of type 'struct inode **'
2866 | struct iattr *, struct inode **);
| ^~~~~~~~~~~~~~
>> fs/incfs/pseudo_files.c:325:10: error: too few arguments to function 'notify_change'
325 | error = notify_change(dentry, &newattrs, &delegated_inode);
| ^~~~~~~~~~~~~
In file included from fs/incfs/pseudo_files.c:7:
include/linux/fs.h:2865:5: note: declared here
2865 | int notify_change(struct user_namespace *, struct dentry *,
| ^~~~~~~~~~~~~
fs/incfs/pseudo_files.c: In function 'dir_relative_path_resolve':
>> fs/incfs/pseudo_files.c:395:2: error: implicit declaration of function 'ksys_close'; did you mean 'ksys_chown'? [-Werror=implicit-function-declaration]
395 | ksys_close(dir_fd);
| ^~~~~~~~~~
| ksys_chown
fs/incfs/pseudo_files.c: In function 'ioctl_create_file':
>> fs/incfs/pseudo_files.c:615:21: error: passing argument 1 of 'vfs_create' from incompatible pointer type [-Werror=incompatible-pointer-types]
615 | error = vfs_create(index_dir_inode, index_file_dentry, args.mode | 0222,
| ^~~~~~~~~~~~~~~
| |
| struct inode *
In file included from fs/incfs/pseudo_files.c:7:
include/linux/fs.h:1771:16: note: expected 'struct user_namespace *' but argument is of type 'struct inode *'
1771 | int vfs_create(struct user_namespace *, struct inode *,
| ^~~~~~~~~~~~~~~~~~~~~~~
fs/incfs/pseudo_files.c:615:38: error: passing argument 2 of 'vfs_create' from incompatible pointer type [-Werror=incompatible-pointer-types]
615 | error = vfs_create(index_dir_inode, index_file_dentry, args.mode | 0222,
| ^~~~~~~~~~~~~~~~~
| |
| struct dentry *
In file included from fs/incfs/pseudo_files.c:7:
include/linux/fs.h:1771:41: note: expected 'struct inode *' but argument is of type 'struct dentry *'
1771 | int vfs_create(struct user_namespace *, struct inode *,
| ^~~~~~~~~~~~~~
fs/incfs/pseudo_files.c:615:67: warning: passing argument 3 of 'vfs_create' makes pointer from integer without a cast [-Wint-conversion]
615 | error = vfs_create(index_dir_inode, index_file_dentry, args.mode | 0222,
| ~~~~~~~~~~^~~~~~
| |
| int
In file included from fs/incfs/pseudo_files.c:7:
include/linux/fs.h:1772:9: note: expected 'struct dentry *' but argument is of type 'int'
1772 | struct dentry *, umode_t, bool);
| ^~~~~~~~~~~~~~~
>> fs/incfs/pseudo_files.c:615:10: error: too few arguments to function 'vfs_create'
615 | error = vfs_create(index_dir_inode, index_file_dentry, args.mode | 0222,
| ^~~~~~~~~~
In file included from fs/incfs/pseudo_files.c:7:
include/linux/fs.h:1771:5: note: declared here
1771 | int vfs_create(struct user_namespace *, struct inode *,
| ^~~~~~~~~~
>> fs/incfs/pseudo_files.c:633:23: error: passing argument 1 of 'vfs_setxattr' from incompatible pointer type [-Werror=incompatible-pointer-types]
633 | error = vfs_setxattr(index_file_dentry, INCFS_XATTR_ID_NAME,
| ^~~~~~~~~~~~~~~~~
| |
| struct dentry *
In file included from include/uapi/linux/incrementalfs.h:17,
from fs/incfs/pseudo_files.c:12:
include/linux/xattr.h:63:18: note: expected 'struct user_namespace *' but argument is of type 'struct dentry *'
63 | int vfs_setxattr(struct user_namespace *, struct dentry *, const char *,
| ^~~~~~~~~~~~~~~~~~~~~~~
In file included from fs/incfs/pseudo_files.c:12:
include/uapi/linux/incrementalfs.h:33:29: error: passing argument 2 of 'vfs_setxattr' from incompatible pointer type [-Werror=incompatible-pointer-types]
33 | #define INCFS_XATTR_ID_NAME (XATTR_USER_PREFIX "incfs.id")
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| char *
fs/incfs/pseudo_files.c:633:42: note: in expansion of macro 'INCFS_XATTR_ID_NAME'
633 | error = vfs_setxattr(index_file_dentry, INCFS_XATTR_ID_NAME,
| ^~~~~~~~~~~~~~~~~~~
In file included from include/uapi/linux/incrementalfs.h:17,
from fs/incfs/pseudo_files.c:12:
include/linux/xattr.h:63:43: note: expected 'struct dentry *' but argument is of type 'char *'
63 | int vfs_setxattr(struct user_namespace *, struct dentry *, const char *,
| ^~~~~~~~~~~~~~~
fs/incfs/pseudo_files.c:634:16: warning: passing argument 4 of 'vfs_setxattr' makes pointer from integer without a cast [-Wint-conversion]
634 | file_id_str, strlen(file_id_str), XATTR_CREATE);
| ^~~~~~~~~~~~~~~~~~~
| |
| size_t {aka long unsigned int}
In file included from include/uapi/linux/incrementalfs.h:17,
from fs/incfs/pseudo_files.c:12:
include/linux/xattr.h:64:4: note: expected 'const void *' but argument is of type 'size_t' {aka 'long unsigned int'}
64 | const void *, size_t, int);
| ^~~~~~~~~~~~
>> fs/incfs/pseudo_files.c:633:10: error: too few arguments to function 'vfs_setxattr'
633 | error = vfs_setxattr(index_file_dentry, INCFS_XATTR_ID_NAME,
| ^~~~~~~~~~~~
In file included from include/uapi/linux/incrementalfs.h:17,
from fs/incfs/pseudo_files.c:12:
include/linux/xattr.h:63:5: note: declared here
63 | int vfs_setxattr(struct user_namespace *, struct dentry *, const char *,
| ^~~~~~~~~~~~
fs/incfs/pseudo_files.c:642:23: error: passing argument 1 of 'vfs_setxattr' from incompatible pointer type [-Werror=incompatible-pointer-types]
642 | error = vfs_setxattr(index_file_dentry, INCFS_XATTR_SIZE_NAME,
| ^~~~~~~~~~~~~~~~~
| |
| struct dentry *
In file included from include/uapi/linux/incrementalfs.h:17,
from fs/incfs/pseudo_files.c:12:
include/linux/xattr.h:63:18: note: expected 'struct user_namespace *' but argument is of type 'struct dentry *'
63 | int vfs_setxattr(struct user_namespace *, struct dentry *, const char *,
| ^~~~~~~~~~~~~~~~~~~~~~~
In file included from fs/incfs/pseudo_files.c:12:
include/uapi/linux/incrementalfs.h:34:31: error: passing argument 2 of 'vfs_setxattr' from incompatible pointer type [-Werror=incompatible-pointer-types]
34 | #define INCFS_XATTR_SIZE_NAME (XATTR_USER_PREFIX "incfs.size")
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| char *
fs/incfs/pseudo_files.c:642:42: note: in expansion of macro 'INCFS_XATTR_SIZE_NAME'
642 | error = vfs_setxattr(index_file_dentry, INCFS_XATTR_SIZE_NAME,
| ^~~~~~~~~~~~~~~~~~~~~
In file included from include/uapi/linux/incrementalfs.h:17,
from fs/incfs/pseudo_files.c:12:
include/linux/xattr.h:63:43: note: expected 'struct dentry *' but argument is of type 'char *'
63 | int vfs_setxattr(struct user_namespace *, struct dentry *, const char *,
| ^~~~~~~~~~~~~~~
fs/incfs/pseudo_files.c:643:29: warning: passing argument 4 of 'vfs_setxattr' makes pointer from integer without a cast [-Wint-conversion]
643 | (char *)&size_attr_value, sizeof(size_attr_value),
| ^~~~~~~~~~~~~~~~~~~~~~~
| |
| long unsigned int
In file included from include/uapi/linux/incrementalfs.h:17,
from fs/incfs/pseudo_files.c:12:
include/linux/xattr.h:64:4: note: expected 'const void *' but argument is of type 'long unsigned int'
64 | const void *, size_t, int);
| ^~~~~~~~~~~~
fs/incfs/pseudo_files.c:642:10: error: too few arguments to function 'vfs_setxattr'
642 | error = vfs_setxattr(index_file_dentry, INCFS_XATTR_SIZE_NAME,
| ^~~~~~~~~~~~
In file included from include/uapi/linux/incrementalfs.h:17,
from fs/incfs/pseudo_files.c:12:
include/linux/xattr.h:63:5: note: declared here
63 | int vfs_setxattr(struct user_namespace *, struct dentry *, const char *,
| ^~~~~~~~~~~~
fs/incfs/pseudo_files.c:670:24: error: passing argument 1 of 'vfs_setxattr' from incompatible pointer type [-Werror=incompatible-pointer-types]
670 | error = vfs_setxattr(index_file_dentry,
| ^~~~~~~~~~~~~~~~~
| |
| struct dentry *
In file included from include/uapi/linux/incrementalfs.h:17,
from fs/incfs/pseudo_files.c:12:
include/linux/xattr.h:63:18: note: expected 'struct user_namespace *' but argument is of type 'struct dentry *'
63 | int vfs_setxattr(struct user_namespace *, struct dentry *, const char *,
| ^~~~~~~~~~~~~~~~~~~~~~~
In file included from fs/incfs/pseudo_files.c:12:
include/uapi/linux/incrementalfs.h:35:35: error: passing argument 2 of 'vfs_setxattr' from incompatible pointer type [-Werror=incompatible-pointer-types]
35 | #define INCFS_XATTR_METADATA_NAME (XATTR_USER_PREFIX "incfs.metadata")
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| char *
fs/incfs/pseudo_files.c:671:5: note: in expansion of macro 'INCFS_XATTR_METADATA_NAME'
671 | INCFS_XATTR_METADATA_NAME,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/uapi/linux/incrementalfs.h:17,
from fs/incfs/pseudo_files.c:12:
include/linux/xattr.h:63:43: note: expected 'struct dentry *' but argument is of type 'char *'
63 | int vfs_setxattr(struct user_namespace *, struct dentry *, const char *,
| ^~~~~~~~~~~~~~~
fs/incfs/pseudo_files.c:672:21: warning: passing argument 4 of 'vfs_setxattr' makes pointer from integer without a cast [-Wint-conversion]
672 | attr_value, args.file_attr_len,
| ~~~~^~~~~~~~~~~~~~
| |
| __u32 {aka unsigned int}
In file included from include/uapi/linux/incrementalfs.h:17,
from fs/incfs/pseudo_files.c:12:
include/linux/xattr.h:64:4: note: expected 'const void *' but argument is of type '__u32' {aka 'unsigned int'}
64 | const void *, size_t, int);
| ^~~~~~~~~~~~
fs/incfs/pseudo_files.c:670:11: error: too few arguments to function 'vfs_setxattr'
670 | error = vfs_setxattr(index_file_dentry,
| ^~~~~~~~~~~~
In file included from include/uapi/linux/incrementalfs.h:17,
from fs/incfs/pseudo_files.c:12:
include/linux/xattr.h:63:5: note: declared here
63 | int vfs_setxattr(struct user_namespace *, struct dentry *, const char *,
| ^~~~~~~~~~~~
fs/incfs/pseudo_files.c: In function 'ioctl_create_mapped_file':
>> fs/incfs/pseudo_files.c:819:23: error: passing argument 1 of 'vfs_getxattr' from incompatible pointer type [-Werror=incompatible-pointer-types]
819 | error = vfs_getxattr(source_file_dentry, INCFS_XATTR_SIZE_NAME,
| ^~~~~~~~~~~~~~~~~~
| |
| struct dentry *
In file included from include/uapi/linux/incrementalfs.h:17,
from fs/incfs/pseudo_files.c:12:
include/linux/xattr.h:53:22: note: expected 'struct user_namespace *' but argument is of type 'struct dentry *'
53 | ssize_t vfs_getxattr(struct user_namespace *, struct dentry *, const char *,
| ^~~~~~~~~~~~~~~~~~~~~~~
In file included from fs/incfs/pseudo_files.c:12:
include/uapi/linux/incrementalfs.h:34:31: error: passing argument 2 of 'vfs_getxattr' from incompatible pointer type [-Werror=incompatible-pointer-types]
34 | #define INCFS_XATTR_SIZE_NAME (XATTR_USER_PREFIX "incfs.size")
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| char *
fs/incfs/pseudo_files.c:819:43: note: in expansion of macro 'INCFS_XATTR_SIZE_NAME'
819 | error = vfs_getxattr(source_file_dentry, INCFS_XATTR_SIZE_NAME,
| ^~~~~~~~~~~~~~~~~~~~~
In file included from include/uapi/linux/incrementalfs.h:17,
from fs/incfs/pseudo_files.c:12:
include/linux/xattr.h:53:47: note: expected 'struct dentry *' but argument is of type 'char *'
53 | ssize_t vfs_getxattr(struct user_namespace *, struct dentry *, const char *,
| ^~~~~~~~~~~~~~~
fs/incfs/pseudo_files.c:820:35: warning: passing argument 4 of 'vfs_getxattr' makes pointer from integer without a cast [-Wint-conversion]
820 | (char *)&size_attr_value, sizeof(size_attr_value));
| ^~~~~~~~~~~~~~~~~~~~~~~
| |
| long unsigned int
In file included from include/uapi/linux/incrementalfs.h:17,
from fs/incfs/pseudo_files.c:12:
include/linux/xattr.h:54:8: note: expected 'void *' but argument is of type 'long unsigned int'
54 | void *, size_t);
| ^~~~~~
>> fs/incfs/pseudo_files.c:819:10: error: too few arguments to function 'vfs_getxattr'
819 | error = vfs_getxattr(source_file_dentry, INCFS_XATTR_SIZE_NAME,
| ^~~~~~~~~~~~
In file included from include/uapi/linux/incrementalfs.h:17,
from fs/incfs/pseudo_files.c:12:
include/linux/xattr.h:53:9: note: declared here
53 | ssize_t vfs_getxattr(struct user_namespace *, struct dentry *, const char *,
| ^~~~~~~~~~~~
fs/incfs/pseudo_files.c:869:21: error: passing argument 1 of 'vfs_create' from incompatible pointer type [-Werror=incompatible-pointer-types]
869 | error = vfs_create(parent_inode, file_dentry, args.mode | 0222, true);
| ^~~~~~~~~~~~
| |
| struct inode *
In file included from fs/incfs/pseudo_files.c:7:
include/linux/fs.h:1771:16: note: expected 'struct user_namespace *' but argument is of type 'struct inode *'
1771 | int vfs_create(struct user_namespace *, struct inode *,
| ^~~~~~~~~~~~~~~~~~~~~~~
fs/incfs/pseudo_files.c:869:35: error: passing argument 2 of 'vfs_create' from incompatible pointer type [-Werror=incompatible-pointer-types]
869 | error = vfs_create(parent_inode, file_dentry, args.mode | 0222, true);
| ^~~~~~~~~~~
| |
| struct dentry *
In file included from fs/incfs/pseudo_files.c:7:
include/linux/fs.h:1771:41: note: expected 'struct inode *' but argument is of type 'struct dentry *'
1771 | int vfs_create(struct user_namespace *, struct inode *,
| ^~~~~~~~~~~~~~
fs/incfs/pseudo_files.c:869:58: warning: passing argument 3 of 'vfs_create' makes pointer from integer without a cast [-Wint-conversion]
869 | error = vfs_create(parent_inode, file_dentry, args.mode | 0222, true);
| ~~~~~~~~~~^~~~~~
| |
| int
In file included from fs/incfs/pseudo_files.c:7:
include/linux/fs.h:1772:9: note: expected 'struct dentry *' but argument is of type 'int'
1772 | struct dentry *, umode_t, bool);
| ^~~~~~~~~~~~~~~
fs/incfs/pseudo_files.c:869:10: error: too few arguments to function 'vfs_create'
869 | error = vfs_create(parent_inode, file_dentry, args.mode | 0222, true);
| ^~~~~~~~~~
In file included from fs/incfs/pseudo_files.c:7:
include/linux/fs.h:1771:5: note: declared here
1771 | int vfs_create(struct user_namespace *, struct inode *,
| ^~~~~~~~~~
fs/incfs/pseudo_files.c:876:23: error: passing argument 1 of 'vfs_setxattr' from incompatible pointer type [-Werror=incompatible-pointer-types]
876 | error = vfs_setxattr(file_dentry, INCFS_XATTR_SIZE_NAME,
| ^~~~~~~~~~~
| |
| struct dentry *
In file included from include/uapi/linux/incrementalfs.h:17,
from fs/incfs/pseudo_files.c:12:
include/linux/xattr.h:63:18: note: expected 'struct user_namespace *' but argument is of type 'struct dentry *'
63 | int vfs_setxattr(struct user_namespace *, struct dentry *, const char *,
| ^~~~~~~~~~~~~~~~~~~~~~~
In file included from fs/incfs/pseudo_files.c:12:
include/uapi/linux/incrementalfs.h:34:31: error: passing argument 2 of 'vfs_setxattr' from incompatible pointer type [-Werror=incompatible-pointer-types]
34 | #define INCFS_XATTR_SIZE_NAME (XATTR_USER_PREFIX "incfs.size")
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| char *
fs/incfs/pseudo_files.c:876:36: note: in expansion of macro 'INCFS_XATTR_SIZE_NAME'
876 | error = vfs_setxattr(file_dentry, INCFS_XATTR_SIZE_NAME,
| ^~~~~~~~~~~~~~~~~~~~~
In file included from include/uapi/linux/incrementalfs.h:17,
from fs/incfs/pseudo_files.c:12:
include/linux/xattr.h:63:43: note: expected 'struct dentry *' but argument is of type 'char *'
63 | int vfs_setxattr(struct user_namespace *, struct dentry *, const char *,
| ^~~~~~~~~~~~~~~
fs/incfs/pseudo_files.c:877:29: warning: passing argument 4 of 'vfs_setxattr' makes pointer from integer without a cast [-Wint-conversion]
877 | (char *)&size_attr_value, sizeof(size_attr_value),
| ^~~~~~~~~~~~~~~~~~~~~~~
| |
| long unsigned int
In file included from include/uapi/linux/incrementalfs.h:17,
from fs/incfs/pseudo_files.c:12:
include/linux/xattr.h:64:4: note: expected 'const void *' but argument is of type 'long unsigned int'
64 | const void *, size_t, int);
| ^~~~~~~~~~~~
fs/incfs/pseudo_files.c:876:10: error: too few arguments to function 'vfs_setxattr'
876 | error = vfs_setxattr(file_dentry, INCFS_XATTR_SIZE_NAME,
| ^~~~~~~~~~~~
In file included from include/uapi/linux/incrementalfs.h:17,
from fs/incfs/pseudo_files.c:12:
include/linux/xattr.h:63:5: note: declared here
63 | int vfs_setxattr(struct user_namespace *, struct dentry *, const char *,
| ^~~~~~~~~~~~
fs/incfs/pseudo_files.c: In function 'get_pseudo_inode':
>> fs/incfs/pseudo_files.c:941:19: error: passing argument 1 of 'inode_init_owner' from incompatible pointer type [-Werror=incompatible-pointer-types]
941 | inode_init_owner(inode, NULL, S_IFREG | READ_WRITE_FILE_MODE);
| ^~~~~
| |
| struct inode *
In file included from fs/incfs/pseudo_files.c:7:
include/linux/fs.h:1828:46: note: expected 'struct user_namespace *' but argument is of type 'struct inode *'
1828 | void inode_init_owner(struct user_namespace *mnt_userns, struct inode *inode,
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
In file included from include/linux/stat.h:7,
from include/linux/fs.h:10,
from fs/incfs/pseudo_files.c:7:
include/uapi/linux/stat.h:12:18: warning: passing argument 3 of 'inode_init_owner' makes pointer from integer without a cast [-Wint-conversion]
12 | #define S_IFREG 0100000
fs/incfs/pseudo_files.c:941:32: note: in expansion of macro 'S_IFREG'
941 | inode_init_owner(inode, NULL, S_IFREG | READ_WRITE_FILE_MODE);
| ^~~~~~~
In file included from fs/incfs/pseudo_files.c:7:
include/linux/fs.h:1829:29: note: expected 'const struct inode *' but argument is of type 'int'
1829 | const struct inode *dir, umode_t mode);
| ~~~~~~~~~~~~~~~~~~~~^~~
>> fs/incfs/pseudo_files.c:941:2: error: too few arguments to function 'inode_init_owner'
941 | inode_init_owner(inode, NULL, S_IFREG | READ_WRITE_FILE_MODE);
| ^~~~~~~~~~~~~~~~
In file included from fs/incfs/pseudo_files.c:7:
include/linux/fs.h:1828:6: note: declared here
1828 | void inode_init_owner(struct user_namespace *mnt_userns, struct inode *inode,
| ^~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/notify_change +325 fs/incfs/pseudo_files.c
313
314 static int chmod(struct dentry *dentry, umode_t mode)
315 {
316 struct inode *inode = dentry->d_inode;
317 struct inode *delegated_inode = NULL;
318 struct iattr newattrs;
319 int error;
320
321 retry_deleg:
322 inode_lock(inode);
323 newattrs.ia_mode = (mode & S_IALLUGO) | (inode->i_mode & ~S_IALLUGO);
324 newattrs.ia_valid = ATTR_MODE | ATTR_CTIME;
> 325 error = notify_change(dentry, &newattrs, &delegated_inode);
326 inode_unlock(inode);
327 if (delegated_inode) {
328 error = break_deleg_wait(&delegated_inode);
329 if (!error)
330 goto retry_deleg;
331 }
332 return error;
333 }
334
335 static bool is_pseudo_filename(struct mem_range name)
336 {
337 if (incfs_equal_ranges(pending_reads_file_name_range, name))
338 return true;
339 if (incfs_equal_ranges(log_file_name_range, name))
340 return true;
341
342 return false;
343 }
344
345 static int validate_name(char *file_name)
346 {
347 struct mem_range name = range(file_name, strlen(file_name));
348 int i = 0;
349
350 if (name.len > INCFS_MAX_NAME_LEN)
351 return -ENAMETOOLONG;
352
353 if (is_pseudo_filename(name))
354 return -EINVAL;
355
356 for (i = 0; i < name.len; i++)
357 if (name.data[i] == '/')
358 return -EINVAL;
359
360 return 0;
361 }
362
363 static int dir_relative_path_resolve(
364 struct mount_info *mi,
365 const char __user *relative_path,
366 struct path *result_path)
367 {
368 struct path *base_path = &mi->mi_backing_dir_path;
369 int dir_fd = get_unused_fd_flags(0);
370 struct file *dir_f = NULL;
371 int error = 0;
372
373 if (dir_fd < 0)
374 return dir_fd;
375
376 dir_f = dentry_open(base_path, O_RDONLY | O_NOATIME, mi->mi_owner);
377
378 if (IS_ERR(dir_f)) {
379 error = PTR_ERR(dir_f);
380 goto out;
381 }
382 fd_install(dir_fd, dir_f);
383
384 if (!relative_path) {
385 /* No relative path given, just return the base dir. */
386 *result_path = *base_path;
387 path_get(result_path);
388 goto out;
389 }
390
391 error = user_path_at_empty(dir_fd, relative_path,
392 LOOKUP_FOLLOW | LOOKUP_DIRECTORY, result_path, NULL);
393
394 out:
> 395 ksys_close(dir_fd);
396 if (error)
397 pr_debug("incfs: %s %d\n", __func__, error);
398 return error;
399 }
400
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 5 months
[linux-next:master 9839/11648] arch/ia64/include/uapi/asm/siginfo.h:15:27: error: expected ':', ',', ';', '}' or '__attribute__' before '.' token
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: e99d8a8495175df8cb8b739f8cf9b0fc9d0cd3b5
commit: 8cad3b66bff4ee7c7d52b9a663cb6a2c5f66a7f7 [9839/11648] Buslogic: remove ISA support
config: ia64-allmodconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commi...
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout 8cad3b66bff4ee7c7d52b9a663cb6a2c5f66a7f7
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=ia64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from include/uapi/linux/signal.h:6,
from include/linux/signal_types.h:10,
from include/linux/sched.h:30,
from arch/ia64/include/asm/hw_irq.h:11,
from include/linux/irq.h:589,
from arch/ia64/include/asm/hardirq.h:19,
from include/linux/hardirq.h:10,
from include/linux/interrupt.h:11,
from drivers/scsi/BusLogic.c:27:
>> arch/ia64/include/uapi/asm/siginfo.h:15:27: error: expected ':', ',', ';', '}' or '__attribute__' before '.' token
15 | #define si_flags _sifields._sigfault._flags
| ^
drivers/scsi/FlashPoint.c:43:6: note: in expansion of macro 'si_flags'
43 | u16 si_flags;
| ^~~~~~~~
In file included from drivers/scsi/BusLogic.c:51:
drivers/scsi/FlashPoint.c: In function 'FlashPoint_ProbeHostAdapter':
>> drivers/scsi/FlashPoint.c:1076:11: error: 'struct sccb_mgr_info' has no member named '_sifields'
1076 | pCardInfo->si_flags = 0x0000;
| ^~
drivers/scsi/FlashPoint.c:1079:12: error: 'struct sccb_mgr_info' has no member named '_sifields'
1079 | pCardInfo->si_flags |= SCSI_PARITY_ENA;
| ^~
drivers/scsi/FlashPoint.c:1082:12: error: 'struct sccb_mgr_info' has no member named '_sifields'
1082 | pCardInfo->si_flags |= SOFT_RESET;
| ^~
drivers/scsi/FlashPoint.c:1085:12: error: 'struct sccb_mgr_info' has no member named '_sifields'
1085 | pCardInfo->si_flags |= EXTENDED_TRANSLATION;
| ^~
drivers/scsi/FlashPoint.c:1088:12: error: 'struct sccb_mgr_info' has no member named '_sifields'
1088 | pCardInfo->si_flags |= FLAG_SCAM_ENABLED;
| ^~
drivers/scsi/FlashPoint.c:1091:12: error: 'struct sccb_mgr_info' has no member named '_sifields'
1091 | pCardInfo->si_flags |= FLAG_SCAM_LEVEL2;
| ^~
drivers/scsi/FlashPoint.c:1107:12: error: 'struct sccb_mgr_info' has no member named '_sifields'
1107 | pCardInfo->si_flags |= SUPPORT_16TAR_32LUN;
| ^~
>> drivers/scsi/FlashPoint.c:1109:11: error: 'struct sccb_mgr_info' has no member named 'si_card_family'
1109 | pCardInfo->si_card_family = HARPOON_FAMILY;
| ^~
>> drivers/scsi/FlashPoint.c:1110:11: error: 'struct sccb_mgr_info' has no member named 'si_bustype'
1110 | pCardInfo->si_bustype = BUSTYPE_PCI;
| ^~
>> drivers/scsi/FlashPoint.c:1113:12: error: 'struct sccb_mgr_info' has no member named 'si_card_model'
1113 | pCardInfo->si_card_model[0] = '9';
| ^~
drivers/scsi/FlashPoint.c:1116:13: error: 'struct sccb_mgr_info' has no member named 'si_card_model'
1116 | pCardInfo->si_card_model[1] = '3';
| ^~
drivers/scsi/FlashPoint.c:1117:13: error: 'struct sccb_mgr_info' has no member named 'si_card_model'
1117 | pCardInfo->si_card_model[2] = '0';
| ^~
drivers/scsi/FlashPoint.c:1120:13: error: 'struct sccb_mgr_info' has no member named 'si_card_model'
1120 | pCardInfo->si_card_model[1] = '5';
| ^~
drivers/scsi/FlashPoint.c:1121:13: error: 'struct sccb_mgr_info' has no member named 'si_card_model'
1121 | pCardInfo->si_card_model[2] = '0';
| ^~
drivers/scsi/FlashPoint.c:1124:13: error: 'struct sccb_mgr_info' has no member named 'si_card_model'
1124 | pCardInfo->si_card_model[1] = '3';
| ^~
drivers/scsi/FlashPoint.c:1125:13: error: 'struct sccb_mgr_info' has no member named 'si_card_model'
1125 | pCardInfo->si_card_model[2] = '2';
| ^~
drivers/scsi/FlashPoint.c:1128:13: error: 'struct sccb_mgr_info' has no member named 'si_card_model'
1128 | pCardInfo->si_card_model[1] = '5';
| ^~
drivers/scsi/FlashPoint.c:1129:13: error: 'struct sccb_mgr_info' has no member named 'si_card_model'
1129 | pCardInfo->si_card_model[2] = '2';
| ^~
drivers/scsi/FlashPoint.c:1134:12: error: 'struct sccb_mgr_info' has no member named 'si_card_model'
1134 | pCardInfo->si_card_model[0] = (unsigned char)(temp >> 8);
| ^~
drivers/scsi/FlashPoint.c:1137:12: error: 'struct sccb_mgr_info' has no member named 'si_card_model'
1137 | pCardInfo->si_card_model[1] = (unsigned char)(temp & 0x00FF);
| ^~
drivers/scsi/FlashPoint.c:1138:12: error: 'struct sccb_mgr_info' has no member named 'si_card_model'
1138 | pCardInfo->si_card_model[2] = (unsigned char)(temp >> 8);
| ^~
drivers/scsi/FlashPoint.c:1141:15: error: 'struct sccb_mgr_info' has no member named 'si_card_model'
1141 | if (pCardInfo->si_card_model[1] == '3') {
| ^~
drivers/scsi/FlashPoint.c:1143:13: error: 'struct sccb_mgr_info' has no member named '_sifields'
1143 | pCardInfo->si_flags |= LOW_BYTE_TERM;
| ^~
drivers/scsi/FlashPoint.c:1144:22: error: 'struct sccb_mgr_info' has no member named 'si_card_model'
1144 | } else if (pCardInfo->si_card_model[2] == '0') {
| ^~
drivers/scsi/FlashPoint.c:1148:13: error: 'struct sccb_mgr_info' has no member named '_sifields'
1148 | pCardInfo->si_flags |= LOW_BYTE_TERM;
| ^~
drivers/scsi/FlashPoint.c:1151:13: error: 'struct sccb_mgr_info' has no member named '_sifields'
1151 | pCardInfo->si_flags |= HIGH_BYTE_TERM;
| ^~
drivers/scsi/FlashPoint.c:1169:13: error: 'struct sccb_mgr_info' has no member named '_sifields'
1169 | pCardInfo->si_flags |= LOW_BYTE_TERM;
| ^~
drivers/scsi/FlashPoint.c:1171:13: error: 'struct sccb_mgr_info' has no member named '_sifields'
1171 | pCardInfo->si_flags |= HIGH_BYTE_TERM;
| ^~
>> drivers/scsi/FlashPoint.c:1178:12: error: 'struct sccb_mgr_info' has no member named 'si_XlatInfo'
1178 | pCardInfo->si_XlatInfo[i] =
| ^~
>> drivers/scsi/FlashPoint.c:1185:11: error: 'struct sccb_mgr_info' has no member named 'si_relative_cardnum'
1185 | pCardInfo->si_relative_cardnum =
| ^~
drivers/scsi/FlashPoint.c: In function 'FlashPoint_HardwareResetHostAdapter':
drivers/scsi/FlashPoint.c:1278:30: error: 'struct sccb_mgr_info' has no member named '_sifields'
1278 | i = (unsigned char)pCardInfo->si_flags;
| ^~
drivers/scsi/FlashPoint.c:1292:17: error: 'struct sccb_mgr_info' has no member named '_sifields'
1292 | if (!(pCardInfo->si_flags & SOFT_RESET)) {
| ^~
drivers/scsi/FlashPoint.c:1299:15: error: 'struct sccb_mgr_info' has no member named '_sifields'
1299 | if (pCardInfo->si_flags & POST_ALL_UNDERRRUNS)
| ^~
drivers/scsi/FlashPoint.c: In function 'FlashPoint_AbortCCB':
drivers/scsi/FlashPoint.c:1618:16: warning: variable 'TID' set but not used [-Wunused-but-set-variable]
1618 | unsigned char TID;
| ^~~
drivers/scsi/BusLogic.c: In function 'blogic_msg':
drivers/scsi/BusLogic.c:3447:2: warning: function 'blogic_msg' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format]
3447 | len = vsprintf(buf, fmt, args);
| ^~~
vim +15 arch/ia64/include/uapi/asm/siginfo.h
43e40f25d2c090 David Howells 2012-10-09 13
43e40f25d2c090 David Howells 2012-10-09 14 #define si_imm _sifields._sigfault._imm /* as per UNIX SysV ABI spec */
43e40f25d2c090 David Howells 2012-10-09 @15 #define si_flags _sifields._sigfault._flags
43e40f25d2c090 David Howells 2012-10-09 16 /*
43e40f25d2c090 David Howells 2012-10-09 17 * si_isr is valid for SIGILL, SIGFPE, SIGSEGV, SIGBUS, and SIGTRAP provided that
43e40f25d2c090 David Howells 2012-10-09 18 * si_code is non-zero and __ISR_VALID is set in si_flags.
43e40f25d2c090 David Howells 2012-10-09 19 */
43e40f25d2c090 David Howells 2012-10-09 20 #define si_isr _sifields._sigfault._isr
43e40f25d2c090 David Howells 2012-10-09 21
:::::: The code at line 15 was first introduced by commit
:::::: 43e40f25d2c090392fc36cb900b42972e88cc2e2 UAPI: (Scripted) Disintegrate arch/ia64/include/asm
:::::: TO: David Howells <dhowells(a)redhat.com>
:::::: CC: David Howells <dhowells(a)redhat.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 5 months
[sashal-linux-stable:queue-5.4 38/42] drivers/net/virtio_net.c:414:21: error: use of undeclared identifier 'metasize'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git queue-5.4
head: ccb3e3ddfae0c4a0ca4ec34699a965637f2c15e0
commit: d97c3e7785e0bbc76a30f4d8953cf278a7b25886 [38/42] virtio_net: Do not pull payload in skb->head
config: x86_64-randconfig-r021-20210411 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project dd453a1389b6a7e6d9214b449d3c54981b1a89b6)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git/c...
git remote add sashal-linux-stable https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git
git fetch --no-tags sashal-linux-stable queue-5.4
git checkout d97c3e7785e0bbc76a30f4d8953cf278a7b25886
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
>> drivers/net/virtio_net.c:414:21: error: use of undeclared identifier 'metasize'
copy = ETH_HLEN + metasize;
^
1 error generated.
vim +/metasize +414 drivers/net/virtio_net.c
373
374 /* Called from bottom half context */
375 static struct sk_buff *page_to_skb(struct virtnet_info *vi,
376 struct receive_queue *rq,
377 struct page *page, unsigned int offset,
378 unsigned int len, unsigned int truesize,
379 bool hdr_valid)
380 {
381 struct sk_buff *skb;
382 struct virtio_net_hdr_mrg_rxbuf *hdr;
383 unsigned int copy, hdr_len, hdr_padded_len;
384 char *p;
385
386 p = page_address(page) + offset;
387
388 /* copy small packet so we can reuse these pages for small data */
389 skb = napi_alloc_skb(&rq->napi, GOOD_COPY_LEN);
390 if (unlikely(!skb))
391 return NULL;
392
393 hdr = skb_vnet_hdr(skb);
394
395 hdr_len = vi->hdr_len;
396 if (vi->mergeable_rx_bufs)
397 hdr_padded_len = sizeof(*hdr);
398 else
399 hdr_padded_len = sizeof(struct padded_vnet_hdr);
400
401 if (hdr_valid)
402 memcpy(hdr, p, hdr_len);
403
404 len -= hdr_len;
405 offset += hdr_padded_len;
406 p += hdr_padded_len;
407
408 /* Copy all frame if it fits skb->head, otherwise
409 * we let virtio_net_hdr_to_skb() and GRO pull headers as needed.
410 */
411 if (len <= skb_tailroom(skb))
412 copy = len;
413 else
> 414 copy = ETH_HLEN + metasize;
415 skb_put_data(skb, p, copy);
416
417 len -= copy;
418 offset += copy;
419
420 if (vi->mergeable_rx_bufs) {
421 if (len)
422 skb_add_rx_frag(skb, 0, page, offset, len, truesize);
423 else
424 put_page(page);
425 return skb;
426 }
427
428 /*
429 * Verify that we can indeed put this data into a skb.
430 * This is here to handle cases when the device erroneously
431 * tries to receive more than is possible. This is usually
432 * the case of a broken device.
433 */
434 if (unlikely(len > MAX_SKB_FRAGS * PAGE_SIZE)) {
435 net_dbg_ratelimited("%s: too much data\n", skb->dev->name);
436 dev_kfree_skb(skb);
437 return NULL;
438 }
439 BUG_ON(offset >= PAGE_SIZE);
440 while (len) {
441 unsigned int frag_size = min((unsigned)PAGE_SIZE - offset, len);
442 skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, page, offset,
443 frag_size, truesize);
444 len -= frag_size;
445 page = (struct page *)page->private;
446 offset = 0;
447 }
448
449 if (page)
450 give_pages(rq, page);
451
452 return skb;
453 }
454
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 5 months
[block:for-next 17/18] fs/io_uring.c:2765:8: error: implicit declaration of function 'io_rw_reissue'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git for-next
head: 6d4150dd565ad788d6ee6c327ef0e8c4ad1a6d2a
commit: 8d62fe051cff68c21d584898e8a521e76178f69c [17/18] Merge branch 'io_uring-5.12' into for-next
config: s390-randconfig-r013-20210411 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 9829f5e6b1bca9b61efc629770d28bb9014dec45)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install s390 cross compiling tool for clang build
# apt-get install binutils-s390x-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/com...
git remote add block https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
git fetch --no-tags block for-next
git checkout 8d62fe051cff68c21d584898e8a521e76178f69c
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=s390
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from fs/io_uring.c:60:
In file included from include/linux/blkdev.h:26:
In file included from include/linux/scatterlist.h:9:
In file included from arch/s390/include/asm/io.h:80:
include/asm-generic/io.h:464:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __raw_readb(PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:477:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
~~~~~~~~~~ ^
include/uapi/linux/byteorder/big_endian.h:36:59: note: expanded from macro '__le16_to_cpu'
#define __le16_to_cpu(x) __swab16((__force __u16)(__le16)(x))
^
include/uapi/linux/swab.h:102:54: note: expanded from macro '__swab16'
#define __swab16(x) (__u16)__builtin_bswap16((__u16)(x))
^
In file included from fs/io_uring.c:60:
In file included from include/linux/blkdev.h:26:
In file included from include/linux/scatterlist.h:9:
In file included from arch/s390/include/asm/io.h:80:
include/asm-generic/io.h:490:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
~~~~~~~~~~ ^
include/uapi/linux/byteorder/big_endian.h:34:59: note: expanded from macro '__le32_to_cpu'
#define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
^
include/uapi/linux/swab.h:115:54: note: expanded from macro '__swab32'
#define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
^
In file included from fs/io_uring.c:60:
In file included from include/linux/blkdev.h:26:
In file included from include/linux/scatterlist.h:9:
In file included from arch/s390/include/asm/io.h:80:
include/asm-generic/io.h:501:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writeb(value, PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:511:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:521:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:609:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
readsb(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:617:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
readsw(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:625:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
readsl(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:634:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
writesb(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:643:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
writesw(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:652:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
writesl(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
>> fs/io_uring.c:2765:8: error: implicit declaration of function 'io_rw_reissue' [-Werror,-Wimplicit-function-declaration]
if (!io_rw_reissue(req)) {
^
12 warnings and 1 error generated.
vim +/io_rw_reissue +2765 fs/io_uring.c
2b188cc1bb857a Jens Axboe 2019-01-07 2740
a1d7c393c4711a Jens Axboe 2020-06-22 2741 static void kiocb_done(struct kiocb *kiocb, ssize_t ret,
889fca73287b0a Pavel Begunkov 2021-02-10 2742 unsigned int issue_flags)
ba816ad61fdf31 Jens Axboe 2019-09-28 2743 {
ba04291eb66ed8 Jens Axboe 2019-12-25 2744 struct io_kiocb *req = container_of(kiocb, struct io_kiocb, rw.kiocb);
e8c2bc1fb6c949 Jens Axboe 2020-08-15 2745 struct io_async_rw *io = req->async_data;
9728463737db02 Pavel Begunkov 2021-04-08 2746 bool check_reissue = kiocb->ki_complete == io_complete_rw;
ba04291eb66ed8 Jens Axboe 2019-12-25 2747
227c0c9673d867 Jens Axboe 2020-08-13 2748 /* add previously done IO, if any */
e8c2bc1fb6c949 Jens Axboe 2020-08-15 2749 if (io && io->bytes_done > 0) {
227c0c9673d867 Jens Axboe 2020-08-13 2750 if (ret < 0)
e8c2bc1fb6c949 Jens Axboe 2020-08-15 2751 ret = io->bytes_done;
227c0c9673d867 Jens Axboe 2020-08-13 2752 else
e8c2bc1fb6c949 Jens Axboe 2020-08-15 2753 ret += io->bytes_done;
227c0c9673d867 Jens Axboe 2020-08-13 2754 }
227c0c9673d867 Jens Axboe 2020-08-13 2755
ba04291eb66ed8 Jens Axboe 2019-12-25 2756 if (req->flags & REQ_F_CUR_POS)
ba04291eb66ed8 Jens Axboe 2019-12-25 2757 req->file->f_pos = kiocb->ki_pos;
bcaec089c5b649 Pavel Begunkov 2020-02-24 2758 if (ret >= 0 && kiocb->ki_complete == io_complete_rw)
889fca73287b0a Pavel Begunkov 2021-02-10 2759 __io_complete_rw(req, ret, 0, issue_flags);
ba816ad61fdf31 Jens Axboe 2019-09-28 2760 else
ba816ad61fdf31 Jens Axboe 2019-09-28 2761 io_rw_done(kiocb, ret);
9728463737db02 Pavel Begunkov 2021-04-08 2762
9728463737db02 Pavel Begunkov 2021-04-08 2763 if (check_reissue && req->flags & REQ_F_REISSUE) {
9728463737db02 Pavel Begunkov 2021-04-08 2764 req->flags &= ~REQ_F_REISSUE;
9728463737db02 Pavel Begunkov 2021-04-08 @2765 if (!io_rw_reissue(req)) {
9728463737db02 Pavel Begunkov 2021-04-08 2766 int cflags = 0;
9728463737db02 Pavel Begunkov 2021-04-08 2767
9728463737db02 Pavel Begunkov 2021-04-08 2768 req_set_fail_links(req);
9728463737db02 Pavel Begunkov 2021-04-08 2769 if (req->flags & REQ_F_BUFFER_SELECTED)
9728463737db02 Pavel Begunkov 2021-04-08 2770 cflags = io_put_rw_kbuf(req);
9728463737db02 Pavel Begunkov 2021-04-08 2771 __io_req_complete(req, issue_flags, ret, cflags);
9728463737db02 Pavel Begunkov 2021-04-08 2772 }
9728463737db02 Pavel Begunkov 2021-04-08 2773 }
ba816ad61fdf31 Jens Axboe 2019-09-28 2774 }
ba816ad61fdf31 Jens Axboe 2019-09-28 2775
:::::: The code at line 2765 was first introduced by commit
:::::: 9728463737db027557e8ba315cbbca6b81122c04 io_uring: fix rw req completion
:::::: TO: Pavel Begunkov <asml.silence(a)gmail.com>
:::::: CC: Jens Axboe <axboe(a)kernel.dk>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 5 months