tree:
https://git.kernel.org/pub/scm/linux/kernel/git/snitzer/linux.git
nvme-error-handling-fixes-5.9
head: f896e97adeb5a5d8db162373087e98ab1f1fcd8e
commit: b121fcebd77ad2e2b2d1b57586552b77bbbbe6a3 [6/8] nvme: update failover handling to
work with REQ_FAILFAST_TRANSPORT
config: ia64-randconfig-s032-20200818 (attached as .config)
compiler: ia64-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.2-183-gaa6ede3b-dirty
git checkout b121fcebd77ad2e2b2d1b57586552b77bbbbe6a3
# 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=ia64
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/nvme/host/core.c:316:17: sparse: sparse: cast from
restricted blk_status_t
drivers/nvme/host/core.c:1644:16: sparse: sparse: context
imbalance in 'nvme_get_ns_from_disk' - wrong count at exit
drivers/nvme/host/core.c: note: in included file (through include/linux/notifier.h,
include/linux/memory_hotplug.h, include/linux/mmzone.h, ...):
include/linux/srcu.h:181:9: sparse: sparse: context imbalance in
'nvme_put_ns_from_disk' - unexpected unlock
#
https://git.kernel.org/pub/scm/linux/kernel/git/snitzer/linux.git/commit/...
git remote add snitzer
https://git.kernel.org/pub/scm/linux/kernel/git/snitzer/linux.git
git fetch --no-tags snitzer nvme-error-handling-fixes-5.9
git checkout b121fcebd77ad2e2b2d1b57586552b77bbbbe6a3
vim +316 drivers/nvme/host/core.c
306
307 static inline void nvme_end_req_with_failover(struct request *req)
308 {
309 u16 nvme_status = nvme_req(req)->status;
310 blk_status_t status = nvme_error_status(nvme_status);
311
312 if (unlikely(nvme_status & NVME_SC_DNR))
313 goto out;
314
315 if (!blk_path_error(status)) {
316 pr_debug("Request meant for failover but blk_status_t (%u)
was not retryable.\n",
317 (unsigned)status);
318 status = BLK_STS_IOERR;
319 }
320 out:
321 __nvme_end_req(req, status);
322 }
323
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org