tree:
git://git.infradead.org/users/hch/misc.git nvme-pr-fix
head: d5eadfcdbeb0e4f09c22b02955b587321c6300b1
commit: d5eadfcdbeb0e4f09c22b02955b587321c6300b1 [5/5] nvme: retry PR commands on path
errors
config: x86_64-randconfig-r033-20200816 (attached as .config)
compiler: clang version 12.0.0 (
https://github.com/llvm/llvm-project
ab9fc8bae805c785066779e76e7846aabad5609e)
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
git checkout d5eadfcdbeb0e4f09c22b02955b587321c6300b1
# 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 warnings (new ones prefixed by >>):
drivers/nvme/host/core.c:1647:8: error: implicit declaration of function
'nvme_find_path' [-Werror,-Wimplicit-function-declaration]
ns = nvme_find_path(*head);
^
drivers/nvme/host/core.c:1647:6: warning: incompatible integer to pointer conversion
assigning to 'struct nvme_ns *' from 'int' [-Wint-conversion]
ns = nvme_find_path(*head);
^ ~~~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c:1684:25: error: implicit declaration of function
'nvme_find_path' [-Werror,-Wimplicit-function-declaration]
struct nvme_ns *ns = nvme_find_path(head);
^
> drivers/nvme/host/core.c:1684:20: warning: incompatible integer
to pointer conversion initializing 'struct nvme_ns *' with an expression of type
'int' [-Wint-conversion]
struct nvme_ns *ns =
nvme_find_path(head);
^ ~~~~~~~~~~~~~~~~~~~~
2 warnings and 2 errors generated.
vim +1684 drivers/nvme/host/core.c
1663
1664 /*
1665 * Submit a command to a given gendisk, and if the disk is a multipath node
1666 * retry the command on a different path in case of a path error instead of
1667 * giving up after the first failure.
1668 */
1669 static int nvme_submit_sync_cmd_disk(struct gendisk *disk,
1670 struct nvme_command *cmd, void *buffer, unsigned len)
1671 {
1672 if (!is_multipath_disk(disk)) {
1673 struct nvme_ns *ns = disk->private_data;
1674
1675 cmd->common.nsid = cpu_to_le32(ns->head->ns_id);
1676 return nvme_submit_sync_cmd(disk->queue, cmd, buffer, len);
1677 } else {
1678 struct nvme_ns_head *head = disk->private_data;
1679 int ret;
1680
1681 cmd->common.nsid = cpu_to_le32(head->ns_id);
1682 do {
1683 int srcu_idx = srcu_read_lock(&head->srcu);
1684 struct nvme_ns *ns = nvme_find_path(head);
1685
1686 if (ns)
1687 ret = nvme_submit_sync_cmd(ns->queue, cmd,
1688 buffer, len);
1689 else
1690 ret = -EWOULDBLOCK;
1691 srcu_read_unlock(&head->srcu, srcu_idx);
1692 } while (ret > 0 && nvme_is_path_error(ret));
1693
1694 return ret;
1695 }
1696 }
1697
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org