Re: [PATCH v3] nvme-tcp: Do not reset transport on data digest errors

From: kernel test robot
Date: Thu Aug 26 2021 - 20:46:02 EST


Hi Daniel,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on next-20210825]
[cannot apply to linux/master linus/master v5.14-rc7 v5.14-rc6 v5.14-rc5 v5.14-rc7]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/Daniel-Wagner/nvme-tcp-Do-not-reset-transport-on-data-digest-errors/20210826-162342
base: 7636510f976d75b860848884169ba985c8f844d8
config: arc-randconfig-s031-20210826 (attached as .config)
compiler: arc-elf-gcc (GCC) 11.2.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-348-gf0e6938b-dirty
# https://github.com/0day-ci/linux/commit/92725dd7ae69044f33fd17f708da5d3079a041ce
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Daniel-Wagner/nvme-tcp-Do-not-reset-transport-on-data-digest-errors/20210826-162342
git checkout 92725dd7ae69044f33fd17f708da5d3079a041ce
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=arc

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>


sparse warnings: (new ones prefixed by >>)
>> drivers/nvme/host/tcp.c:505:24: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [assigned] [usertype] status @@ got restricted __le16 [usertype] status @@
drivers/nvme/host/tcp.c:505:24: sparse: expected unsigned short [assigned] [usertype] status
drivers/nvme/host/tcp.c:505:24: sparse: got restricted __le16 [usertype] status
>> drivers/nvme/host/tcp.c:507:40: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected restricted __le16 [usertype] status @@ got unsigned short [assigned] [usertype] status @@
drivers/nvme/host/tcp.c:507:40: sparse: expected restricted __le16 [usertype] status
drivers/nvme/host/tcp.c:507:40: sparse: got unsigned short [assigned] [usertype] status

vim +505 drivers/nvme/host/tcp.c

485
486 static int nvme_tcp_process_nvme_cqe(struct nvme_tcp_queue *queue,
487 struct nvme_completion *cqe)
488 {
489 struct nvme_tcp_request *req;
490 struct request *rq;
491 u16 status;
492
493 rq = nvme_find_rq(nvme_tcp_tagset(queue), cqe->command_id);
494 if (!rq) {
495 dev_err(queue->ctrl->ctrl.device,
496 "got bad cqe.command_id %#x on queue %d\n",
497 cqe->command_id, nvme_tcp_queue_id(queue));
498 nvme_tcp_error_recovery(&queue->ctrl->ctrl);
499 return -EINVAL;
500 }
501
502 req = blk_mq_rq_to_pdu(rq);
503 status = req->status;
504 if (status == NVME_SC_SUCCESS)
> 505 status = cqe->status;
506
> 507 if (!nvme_try_complete_req(rq, status, cqe->result))
508 nvme_complete_rq(rq);
509 queue->nr_cqe++;
510
511 return 0;
512 }
513

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip