Subject: Re: [PATCH 2/2] scsi: core: fix dh and multipathing for SCSI hosts without request batching

From: kbuild test robot <[email-masked]>
Date: Fri, 9 Aug 2019 17:08:06 +0800

Hi Steffen,

I love your patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[cannot apply to v5.3-rc3 next-20190808]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Steffen-Maier/scsi-core-fix-missing-cleanup_rq-for-SCSI-hosts-without-request-batching/20190808-052017
config: i386-randconfig-d003-201931 (attached as .config)
compiler: gcc-7 (Debian 7.4.0-10) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <[email-masked]>

All warnings (new ones prefixed by >>):

   drivers/scsi/scsi_lib.c:1824:3: error: 'const struct blk_mq_ops' has no member named 'cleanup_rq'; did you mean 'queue_rq'?
     .cleanup_rq = scsi_cleanup_rq,
      ^~~~~~~~~~
      queue_rq
   drivers/scsi/scsi_lib.c:1824:16: error: 'scsi_cleanup_rq' undeclared here (not in a function); did you mean 'scsi_queue_rq'?
     .cleanup_rq = scsi_cleanup_rq,
                   ^~~~~~~~~~~~~~~
                   scsi_queue_rq
   In file included from include/linux/export.h:45:0,
                    from include/linux/linkage.h:7,
                    from include/linux/fs.h:5,
                    from include/linux/highmem.h:5,
                    from include/linux/bio.h:8,
                    from drivers/scsi/scsi_lib.c:12:
   drivers/scsi/scsi_lib.c: In function 'scsi_device_from_queue':
   drivers/scsi/scsi_lib.c:1881:20: error: 'scsi_mq_ops_no_commit' undeclared (first use in this function); did you mean 'scsi_mq_ops'?
     if (q->mq_ops == &scsi_mq_ops_no_commit ||
                       ^
   include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
    #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                                       ^~~~
>> drivers/scsi/scsi_lib.c:1881:2: note: in expansion of macro 'if'
     if (q->mq_ops == &scsi_mq_ops_no_commit ||
     ^~
   drivers/scsi/scsi_lib.c:1881:20: note: each undeclared identifier is reported only once for each function it appears in
     if (q->mq_ops == &scsi_mq_ops_no_commit ||
                       ^
   include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
    #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                                       ^~~~
>> drivers/scsi/scsi_lib.c:1881:2: note: in expansion of macro 'if'
     if (q->mq_ops == &scsi_mq_ops_no_commit ||
     ^~

vim +/if +1881 drivers/scsi/scsi_lib.c

  1869	
  1870	/**
  1871	 * scsi_device_from_queue - return sdev associated with a request_queue
  1872	 * @q: The request queue to return the sdev from
  1873	 *
  1874	 * Return the sdev associated with a request queue or NULL if the
  1875	 * request_queue does not reference a SCSI device.
  1876	 */
  1877	struct scsi_device *scsi_device_from_queue(struct request_queue *q)
  1878	{
  1879		struct scsi_device *sdev = NULL;
  1880	
> 1881		if (q->mq_ops == &scsi_mq_ops_no_commit ||
  1882		    q->mq_ops == &scsi_mq_ops)
  1883			sdev = q->queuedata;
  1884		if (!sdev || !get_device(&sdev->sdev_gendev))
  1885			sdev = NULL;
  1886	
  1887		return sdev;
  1888	}
  1889	EXPORT_SYMBOL_GPL(scsi_device_from_queue);
  1890	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation