All of lore.kernel.org
 help / color / mirror / Atom feed
* [hare-scsi-devel:scsi-result-rework 137/146] drivers/scsi/scsi_debug.c:5441:9: error: 'scsi_result' undeclared; did you mean 'scsi_request'?
@ 2021-04-22  7:31 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-04-22  7:31 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 36017 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/hare/scsi-devel.git scsi-result-rework
head:   19720ea7b22b443a182646eef7edc36e32e7b515
commit: 06067178668aa7d94b6e554575795dfc561bfa14 [137/146] scsi_debug: split scsi_status argument to schedule_resp()
config: mips-randconfig-r016-20210421 (attached as .config)
compiler: mips64el-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/hare/scsi-devel.git/commit/?id=06067178668aa7d94b6e554575795dfc561bfa14
        git remote add hare-scsi-devel https://git.kernel.org/pub/scm/linux/kernel/git/hare/scsi-devel.git
        git fetch --no-tags hare-scsi-devel scsi-result-rework
        git checkout 06067178668aa7d94b6e554575795dfc561bfa14
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=mips 

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

All errors (new ones prefixed by >>):

    4588 | static void zbc_finish_zone(struct sdebug_dev_info *devip,
         |             ^~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:4604:13: error: invalid storage class for function 'zbc_finish_all'
    4604 | static void zbc_finish_all(struct sdebug_dev_info *devip)
         |             ^~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:4612:12: error: invalid storage class for function 'resp_finish_zone'
    4612 | static int resp_finish_zone(struct scsi_cmnd *scp,
         |            ^~~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:4661:13: error: invalid storage class for function 'zbc_rwp_zone'
    4661 | static void zbc_rwp_zone(struct sdebug_dev_info *devip,
         |             ^~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:4681:13: error: invalid storage class for function 'zbc_rwp_all'
    4681 | static void zbc_rwp_all(struct sdebug_dev_info *devip)
         |             ^~~~~~~~~~~
   drivers/scsi/scsi_debug.c:4689:12: error: invalid storage class for function 'resp_rwp_zone'
    4689 | static int resp_rwp_zone(struct scsi_cmnd *scp, struct sdebug_dev_info *devip)
         |            ^~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:4736:29: error: invalid storage class for function 'get_queue'
    4736 | static struct sdebug_queue *get_queue(struct scsi_cmnd *cmnd)
         |                             ^~~~~~~~~
   drivers/scsi/scsi_debug.c:4750:12: error: invalid storage class for function 'get_tag'
    4750 | static u32 get_tag(struct scsi_cmnd *cmnd)
         |            ^~~~~~~
   drivers/scsi/scsi_debug.c:4756:13: error: invalid storage class for function 'sdebug_q_cmd_complete'
    4756 | static void sdebug_q_cmd_complete(struct sdebug_defer *sd_dp)
         |             ^~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:4830:29: error: invalid storage class for function 'sdebug_q_cmd_hrt_complete'
    4830 | static enum hrtimer_restart sdebug_q_cmd_hrt_complete(struct hrtimer *timer)
         |                             ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:4839:13: error: invalid storage class for function 'sdebug_q_cmd_wq_complete'
    4839 | static void sdebug_q_cmd_wq_complete(struct work_struct *work)
         |             ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:4849:12: error: invalid storage class for function 'sdebug_device_create_zones'
    4849 | static int sdebug_device_create_zones(struct sdebug_dev_info *devip)
         |            ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:4935:32: error: invalid storage class for function 'sdebug_device_create'
    4935 | static struct sdebug_dev_info *sdebug_device_create(
         |                                ^~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:4971:32: error: invalid storage class for function 'find_build_dev_info'
    4971 | static struct sdebug_dev_info *find_build_dev_info(struct scsi_device *sdev)
         |                                ^~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5011:12: error: invalid storage class for function 'scsi_debug_slave_alloc'
    5011 | static int scsi_debug_slave_alloc(struct scsi_device *sdp)
         |            ^~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5019:12: error: invalid storage class for function 'scsi_debug_slave_configure'
    5019 | static int scsi_debug_slave_configure(struct scsi_device *sdp)
         |            ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5041:13: error: invalid storage class for function 'scsi_debug_slave_destroy'
    5041 | static void scsi_debug_slave_destroy(struct scsi_device *sdp)
         |             ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5056:13: error: invalid storage class for function 'stop_qc_helper'
    5056 | static void stop_qc_helper(struct sdebug_defer *sd_dp,
         |             ^~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5069:13: error: invalid storage class for function 'stop_queued_cmnd'
    5069 | static bool stop_queued_cmnd(struct scsi_cmnd *cmnd)
         |             ^~~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5114:13: error: invalid storage class for function 'stop_all_queued'
    5114 | static void stop_all_queued(void)
         |             ^~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5153:13: error: invalid storage class for function 'free_all_queued'
    5153 | static void free_all_queued(void)
         |             ^~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5168:12: error: invalid storage class for function 'scsi_debug_abort'
    5168 | static int scsi_debug_abort(struct scsi_cmnd *SCpnt)
         |            ^~~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5183:12: error: invalid storage class for function 'scsi_debug_device_reset'
    5183 | static int scsi_debug_device_reset(struct scsi_cmnd *SCpnt)
         |            ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5199:12: error: invalid storage class for function 'scsi_debug_target_reset'
    5199 | static int scsi_debug_target_reset(struct scsi_cmnd *SCpnt)
         |            ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5235:12: error: invalid storage class for function 'scsi_debug_bus_reset'
    5235 | static int scsi_debug_bus_reset(struct scsi_cmnd *SCpnt)
         |            ^~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5268:12: error: invalid storage class for function 'scsi_debug_host_reset'
    5268 | static int scsi_debug_host_reset(struct scsi_cmnd *SCpnt)
         |            ^~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5293:13: error: invalid storage class for function 'sdebug_build_parts'
    5293 | static void sdebug_build_parts(unsigned char *ramp, unsigned long store_size)
         |             ^~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5346:13: error: invalid storage class for function 'block_unblock_all_queues'
    5346 | static void block_unblock_all_queues(bool block)
         |             ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5358:13: error: invalid storage class for function 'tweak_cmnd_count'
    5358 | static void tweak_cmnd_count(void)
         |             ^~~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5371:13: error: invalid storage class for function 'clear_queue_stats'
    5371 | static void clear_queue_stats(void)
         |             ^~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5379:13: error: invalid storage class for function 'inject_on_this_cmd'
    5379 | static bool inject_on_this_cmd(void)
         |             ^~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5393:12: error: invalid storage class for function 'schedule_resp'
    5393 | static int schedule_resp(struct scsi_cmnd *cmnd, struct sdebug_dev_info *devip,
         |            ^~~~~~~~~~~~~
   In file included from include/linux/kernel.h:10,
                    from include/linux/list.h:9,
                    from include/linux/module.h:12,
                    from drivers/scsi/scsi_debug.c:18:
   drivers/scsi/scsi_debug.c: In function 'schedule_resp':
>> drivers/scsi/scsi_debug.c:5441:9: error: 'scsi_result' undeclared (first use in this function); did you mean 'scsi_request'?
    5441 |        (scsi_result == 0))) {
         |         ^~~~~~~~~~~
   include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
      78 | # define unlikely(x) __builtin_expect(!!(x), 0)
         |                                          ^
   drivers/scsi/scsi_debug.c:5441:9: note: each undeclared identifier is reported only once for each function it appears in
    5441 |        (scsi_result == 0))) {
         |         ^~~~~~~~~~~
   include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
      78 | # define unlikely(x) __builtin_expect(!!(x), 0)
         |                                          ^
>> drivers/scsi/scsi_debug.c:5514:38: error: expected ';' before '}' token
    5514 |    set_status_byte(cmnd, status_byte)
         |                                      ^
         |                                      ;
    5515 |  }
         |  ~                                    
   In file included from include/linux/module.h:21,
                    from drivers/scsi/scsi_debug.c:18:
   drivers/scsi/scsi_debug.c: In function 'p_fill_from_dev_buffer':
   include/linux/moduleparam.h:409:38: error: invalid storage class for function '__check_add_host'
     409 |  static inline type __always_unused *__check_##name(void) { return(p); }
         |                                      ^~~~~~~~
   include/linux/moduleparam.h:429:34: note: in expansion of macro '__param_check'
     429 | #define param_check_int(name, p) __param_check(name, p, int)
         |                                  ^~~~~~~~~~~~~
   include/linux/moduleparam.h:150:2: note: in expansion of macro 'param_check_int'
     150 |  param_check_##type(name, &(value));       \
         |  ^~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5650:1: note: in expansion of macro 'module_param_named'
    5650 | module_param_named(add_host, sdebug_add_host, int, S_IRUGO | S_IWUSR);
         | ^~~~~~~~~~~~~~~~~~
   include/linux/moduleparam.h:289:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     289 |  static const char __param_str_##name[] = prefix #name;  \
         |  ^~~~~~
   include/linux/moduleparam.h:176:2: note: in expansion of macro '__module_param_call'
     176 |  __module_param_call(MODULE_PARAM_PREFIX, name, ops, arg, perm, -1, 0)
         |  ^~~~~~~~~~~~~~~~~~~
   include/linux/moduleparam.h:151:2: note: in expansion of macro 'module_param_cb'
     151 |  module_param_cb(name, &param_ops_##type, &value, perm);     \
         |  ^~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5650:1: note: in expansion of macro 'module_param_named'
    5650 | module_param_named(add_host, sdebug_add_host, int, S_IRUGO | S_IWUSR);
         | ^~~~~~~~~~~~~~~~~~
   include/linux/moduleparam.h:409:38: error: invalid storage class for function '__check_ato'
     409 |  static inline type __always_unused *__check_##name(void) { return(p); }
         |                                      ^~~~~~~~
   include/linux/moduleparam.h:429:34: note: in expansion of macro '__param_check'
     429 | #define param_check_int(name, p) __param_check(name, p, int)
         |                                  ^~~~~~~~~~~~~
   include/linux/moduleparam.h:150:2: note: in expansion of macro 'param_check_int'
     150 |  param_check_##type(name, &(value));       \
         |  ^~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5651:1: note: in expansion of macro 'module_param_named'
    5651 | module_param_named(ato, sdebug_ato, int, S_IRUGO);
         | ^~~~~~~~~~~~~~~~~~
   include/linux/moduleparam.h:289:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     289 |  static const char __param_str_##name[] = prefix #name;  \
         |  ^~~~~~
   include/linux/moduleparam.h:176:2: note: in expansion of macro '__module_param_call'
     176 |  __module_param_call(MODULE_PARAM_PREFIX, name, ops, arg, perm, -1, 0)
         |  ^~~~~~~~~~~~~~~~~~~
   include/linux/moduleparam.h:151:2: note: in expansion of macro 'module_param_cb'
     151 |  module_param_cb(name, &param_ops_##type, &value, perm);     \
         |  ^~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5651:1: note: in expansion of macro 'module_param_named'
    5651 | module_param_named(ato, sdebug_ato, int, S_IRUGO);
         | ^~~~~~~~~~~~~~~~~~
   include/linux/moduleparam.h:409:38: error: invalid storage class for function '__check_cdb_len'
     409 |  static inline type __always_unused *__check_##name(void) { return(p); }
         |                                      ^~~~~~~~
   include/linux/moduleparam.h:429:34: note: in expansion of macro '__param_check'
     429 | #define param_check_int(name, p) __param_check(name, p, int)
         |                                  ^~~~~~~~~~~~~
   include/linux/moduleparam.h:150:2: note: in expansion of macro 'param_check_int'
     150 |  param_check_##type(name, &(value));       \
         |  ^~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5652:1: note: in expansion of macro 'module_param_named'
    5652 | module_param_named(cdb_len, sdebug_cdb_len, int, 0644);
         | ^~~~~~~~~~~~~~~~~~
   include/linux/moduleparam.h:289:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     289 |  static const char __param_str_##name[] = prefix #name;  \
         |  ^~~~~~
   include/linux/moduleparam.h:176:2: note: in expansion of macro '__module_param_call'
     176 |  __module_param_call(MODULE_PARAM_PREFIX, name, ops, arg, perm, -1, 0)
         |  ^~~~~~~~~~~~~~~~~~~
   include/linux/moduleparam.h:151:2: note: in expansion of macro 'module_param_cb'
     151 |  module_param_cb(name, &param_ops_##type, &value, perm);     \
         |  ^~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5652:1: note: in expansion of macro 'module_param_named'
    5652 | module_param_named(cdb_len, sdebug_cdb_len, int, 0644);
         | ^~~~~~~~~~~~~~~~~~
   include/linux/moduleparam.h:409:38: error: invalid storage class for function '__check_clustering'
     409 |  static inline type __always_unused *__check_##name(void) { return(p); }
         |                                      ^~~~~~~~
   include/linux/moduleparam.h:466:35: note: in expansion of macro '__param_check'
     466 | #define param_check_bool(name, p) __param_check(name, p, bool)
         |                                   ^~~~~~~~~~~~~
   include/linux/moduleparam.h:150:2: note: in expansion of macro 'param_check_bool'
     150 |  param_check_##type(name, &(value));       \
         |  ^~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:5653:1: note: in expansion of macro 'module_param_named'
    5653 | module_param_named(clustering, sdebug_clustering, bool, S_IRUGO | S_IWUSR);
         | ^~~~~~~~~~~~~~~~~~
   include/linux/moduleparam.h:289:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
     289 |  static const char __param_str_##name[] = prefix #name;  \
         |  ^~~~~~
   include/linux/moduleparam.h:176:2: note: in expansion of macro '__module_param_call'
     176 |  __module_param_call(MODULE_PARAM_PREFIX, name, ops, arg, perm, -1, 0)
         |  ^~~~~~~~~~~~~~~~~~~
   include/linux/moduleparam.h:151:2: note: in expansion of macro 'module_param_cb'
     151 |  module_param_cb(name, &param_ops_##type, &value, perm);     \


vim +5441 drivers/scsi/scsi_debug.c

a2aede970a8e12 Douglas Gilbert 2020-04-21  5387  
c483739430f107 Douglas Gilbert 2016-05-06  5388  /* Complete the processing of the thread that queued a SCSI command to this
c483739430f107 Douglas Gilbert 2016-05-06  5389   * driver. It either completes the command by calling cmnd_done() or
c483739430f107 Douglas Gilbert 2016-05-06  5390   * schedules a hr timer or work queue then returns 0. Returns
c483739430f107 Douglas Gilbert 2016-05-06  5391   * SCSI_MLQUEUE_HOST_BUSY if temporarily out of resources.
c483739430f107 Douglas Gilbert 2016-05-06  5392   */
fd32119b0deac1 Douglas Gilbert 2016-04-25  5393  static int schedule_resp(struct scsi_cmnd *cmnd, struct sdebug_dev_info *devip,
06067178668aa7 Hannes Reinecke 2021-04-21  5394  			 unsigned char host_byte, unsigned char status_byte,
f66b85171a0ebd Martin Wilck    2018-02-14  5395  			 int (*pfp)(struct scsi_cmnd *,
f66b85171a0ebd Martin Wilck    2018-02-14  5396  				    struct sdebug_dev_info *),
f66b85171a0ebd Martin Wilck    2018-02-14  5397  			 int delta_jiff, int ndelay)
^1da177e4c3f41 Linus Torvalds  2005-04-16  5398  {
a2aede970a8e12 Douglas Gilbert 2020-04-21  5399  	bool new_sd_dp;
3a90a63d02b8b7 Douglas Gilbert 2020-07-12  5400  	bool inject = false;
8759c3fdb10bdd Hannes Reinecke 2021-04-21  5401  	bool qfull = false;
771f712ba5b0c6 Douglas Gilbert 2021-03-03  5402  	bool hipri = (cmnd->request->cmd_flags & REQ_HIPRI);
3a90a63d02b8b7 Douglas Gilbert 2020-07-12  5403  	int k, num_in_q, qdepth;
a2aede970a8e12 Douglas Gilbert 2020-04-21  5404  	unsigned long iflags;
a2aede970a8e12 Douglas Gilbert 2020-04-21  5405  	u64 ns_from_boot = 0;
c483739430f107 Douglas Gilbert 2016-05-06  5406  	struct sdebug_queue *sqp;
c483739430f107 Douglas Gilbert 2016-05-06  5407  	struct sdebug_queued_cmd *sqcp;
299b6c07ea134d Tomas Winkler   2015-07-28  5408  	struct scsi_device *sdp;
a10bc12af6347d Douglas Gilbert 2016-04-25  5409  	struct sdebug_defer *sd_dp;
299b6c07ea134d Tomas Winkler   2015-07-28  5410  
b01f6f8316af52 Douglas Gilbert 2016-04-30  5411  	if (unlikely(devip == NULL)) {
06067178668aa7 Hannes Reinecke 2021-04-21  5412  		if (host_byte == DID_OK)
06067178668aa7 Hannes Reinecke 2021-04-21  5413  			host_byte = DID_NO_CONNECT;
f46eb0e9fc763b Douglas Gilbert 2016-04-25  5414  		goto respond_in_thread;
cbf67842c3d9e7 Douglas Gilbert 2014-07-26  5415  	}
299b6c07ea134d Tomas Winkler   2015-07-28  5416  	sdp = cmnd->device;
299b6c07ea134d Tomas Winkler   2015-07-28  5417  
cd62b7dae245dd Douglas Gilbert 2014-08-05  5418  	if (delta_jiff == 0)
cd62b7dae245dd Douglas Gilbert 2014-08-05  5419  		goto respond_in_thread;
^1da177e4c3f41 Linus Torvalds  2005-04-16  5420  
c483739430f107 Douglas Gilbert 2016-05-06  5421  	sqp = get_queue(cmnd);
c483739430f107 Douglas Gilbert 2016-05-06  5422  	spin_lock_irqsave(&sqp->qc_lock, iflags);
c483739430f107 Douglas Gilbert 2016-05-06  5423  	if (unlikely(atomic_read(&sqp->blocked))) {
c483739430f107 Douglas Gilbert 2016-05-06  5424  		spin_unlock_irqrestore(&sqp->qc_lock, iflags);
c483739430f107 Douglas Gilbert 2016-05-06  5425  		return SCSI_MLQUEUE_HOST_BUSY;
c483739430f107 Douglas Gilbert 2016-05-06  5426  	}
cbf67842c3d9e7 Douglas Gilbert 2014-07-26  5427  	num_in_q = atomic_read(&devip->num_in_q);
cbf67842c3d9e7 Douglas Gilbert 2014-07-26  5428  	qdepth = cmnd->device->queue_depth;
f46eb0e9fc763b Douglas Gilbert 2016-04-25  5429  	if (unlikely((qdepth > 0) && (num_in_q >= qdepth))) {
06067178668aa7 Hannes Reinecke 2021-04-21  5430  		if (host_byte != DID_OK || status_byte != SAM_STAT_GOOD) {
c483739430f107 Douglas Gilbert 2016-05-06  5431  			spin_unlock_irqrestore(&sqp->qc_lock, iflags);
cd62b7dae245dd Douglas Gilbert 2014-08-05  5432  			goto respond_in_thread;
8759c3fdb10bdd Hannes Reinecke 2021-04-21  5433  		} else {
8759c3fdb10bdd Hannes Reinecke 2021-04-21  5434  			device_qfull_result(scp);
06067178668aa7 Hannes Reinecke 2021-04-21  5435  			host_byte = get_host_byte(scp);
06067178668aa7 Hannes Reinecke 2021-04-21  5436  			status_byte = get_status_byte(scp);
8759c3fdb10bdd Hannes Reinecke 2021-04-21  5437  			qfull = true;
8759c3fdb10bdd Hannes Reinecke 2021-04-21  5438  		}
c483739430f107 Douglas Gilbert 2016-05-06  5439  	} else if (unlikely(sdebug_every_nth &&
773642d95b8220 Douglas Gilbert 2016-04-25  5440  			    (SDEBUG_OPT_RARE_TSF & sdebug_opts) &&
f46eb0e9fc763b Douglas Gilbert 2016-04-25 @5441  			    (scsi_result == 0))) {
cbf67842c3d9e7 Douglas Gilbert 2014-07-26  5442  		if ((num_in_q == (qdepth - 1)) &&
cbf67842c3d9e7 Douglas Gilbert 2014-07-26  5443  		    (atomic_inc_return(&sdebug_a_tsf) >=
773642d95b8220 Douglas Gilbert 2016-04-25  5444  		     abs(sdebug_every_nth))) {
cbf67842c3d9e7 Douglas Gilbert 2014-07-26  5445  			atomic_set(&sdebug_a_tsf, 0);
3a90a63d02b8b7 Douglas Gilbert 2020-07-12  5446  			inject = true;
8759c3fdb10bdd Hannes Reinecke 2021-04-21  5447  			device_qfull_result(scp);
8759c3fdb10bdd Hannes Reinecke 2021-04-21  5448  			qfull = true;
06067178668aa7 Hannes Reinecke 2021-04-21  5449  			host_byte = get_host_byte(scp);
06067178668aa7 Hannes Reinecke 2021-04-21  5450  			status_byte = get_status_byte(scp);
cbf67842c3d9e7 Douglas Gilbert 2014-07-26  5451  		}
cbf67842c3d9e7 Douglas Gilbert 2014-07-26  5452  	}
cbf67842c3d9e7 Douglas Gilbert 2014-07-26  5453  
c483739430f107 Douglas Gilbert 2016-05-06  5454  	k = find_first_zero_bit(sqp->in_use_bm, sdebug_max_queue);
f46eb0e9fc763b Douglas Gilbert 2016-04-25  5455  	if (unlikely(k >= sdebug_max_queue)) {
c483739430f107 Douglas Gilbert 2016-05-06  5456  		spin_unlock_irqrestore(&sqp->qc_lock, iflags);
06067178668aa7 Hannes Reinecke 2021-04-21  5457  		if (host_byte != DID_OK || status_byte != SAM_STAT_GOOD)
cd62b7dae245dd Douglas Gilbert 2014-08-05  5458  			goto respond_in_thread;
8759c3fdb10bdd Hannes Reinecke 2021-04-21  5459  		else if (SDEBUG_OPT_ALL_TSF & sdebug_opts) {
8759c3fdb10bdd Hannes Reinecke 2021-04-21  5460  			device_qfull_result(scp);
8759c3fdb10bdd Hannes Reinecke 2021-04-21  5461  			qfull = true;
06067178668aa7 Hannes Reinecke 2021-04-21  5462  			host_byte = get_host_byte(scp);
06067178668aa7 Hannes Reinecke 2021-04-21  5463  			status_byte = get_status_byte(scp);
8759c3fdb10bdd Hannes Reinecke 2021-04-21  5464  		}
773642d95b8220 Douglas Gilbert 2016-04-25  5465  		if (SDEBUG_OPT_Q_NOISE & sdebug_opts)
cbf67842c3d9e7 Douglas Gilbert 2014-07-26  5466  			sdev_printk(KERN_INFO, sdp,
cd62b7dae245dd Douglas Gilbert 2014-08-05  5467  				    "%s: max_queue=%d exceeded, %s\n",
773642d95b8220 Douglas Gilbert 2016-04-25  5468  				    __func__, sdebug_max_queue,
8759c3fdb10bdd Hannes Reinecke 2021-04-21  5469  				    (qfull ?  "status: TASK SET FULL" :
cbf67842c3d9e7 Douglas Gilbert 2014-07-26  5470  					      "report: host busy"));
06067178668aa7 Hannes Reinecke 2021-04-21  5471  		if (host_byte != DID_OK || status_byte != SAM_STAT_GOOD)
cd62b7dae245dd Douglas Gilbert 2014-08-05  5472  			goto respond_in_thread;
cd62b7dae245dd Douglas Gilbert 2014-08-05  5473  		else
cbf67842c3d9e7 Douglas Gilbert 2014-07-26  5474  			return SCSI_MLQUEUE_HOST_BUSY;
^1da177e4c3f41 Linus Torvalds  2005-04-16  5475  	}
74595c044cb56c Douglas Gilbert 2020-07-02  5476  	set_bit(k, sqp->in_use_bm);
cbf67842c3d9e7 Douglas Gilbert 2014-07-26  5477  	atomic_inc(&devip->num_in_q);
c483739430f107 Douglas Gilbert 2016-05-06  5478  	sqcp = &sqp->qc_arr[k];
^1da177e4c3f41 Linus Torvalds  2005-04-16  5479  	sqcp->a_cmnd = cmnd;
c483739430f107 Douglas Gilbert 2016-05-06  5480  	cmnd->host_scribble = (unsigned char *)sqcp;
a10bc12af6347d Douglas Gilbert 2016-04-25  5481  	sd_dp = sqcp->sd_dp;
c483739430f107 Douglas Gilbert 2016-05-06  5482  	spin_unlock_irqrestore(&sqp->qc_lock, iflags);
c4b57d89bad828 Kashyap Desai   2021-02-15  5483  
74595c044cb56c Douglas Gilbert 2020-07-02  5484  	if (!sd_dp) {
10bde980ac18da Douglas Gilbert 2018-01-10  5485  		sd_dp = kzalloc(sizeof(*sd_dp), GFP_ATOMIC);
74595c044cb56c Douglas Gilbert 2020-07-02  5486  		if (!sd_dp) {
74595c044cb56c Douglas Gilbert 2020-07-02  5487  			atomic_dec(&devip->num_in_q);
74595c044cb56c Douglas Gilbert 2020-07-02  5488  			clear_bit(k, sqp->in_use_bm);
10bde980ac18da Douglas Gilbert 2018-01-10  5489  			return SCSI_MLQUEUE_HOST_BUSY;
74595c044cb56c Douglas Gilbert 2020-07-02  5490  		}
a2aede970a8e12 Douglas Gilbert 2020-04-21  5491  		new_sd_dp = true;
a2aede970a8e12 Douglas Gilbert 2020-04-21  5492  	} else {
a2aede970a8e12 Douglas Gilbert 2020-04-21  5493  		new_sd_dp = false;
10bde980ac18da Douglas Gilbert 2018-01-10  5494  	}
f66b85171a0ebd Martin Wilck    2018-02-14  5495  
c10fa55f5e7ad3 John Garry      2020-07-09  5496  	/* Set the hostwide tag */
c10fa55f5e7ad3 John Garry      2020-07-09  5497  	if (sdebug_host_max_queue)
c10fa55f5e7ad3 John Garry      2020-07-09  5498  		sd_dp->hc_idx = get_tag(cmnd);
c10fa55f5e7ad3 John Garry      2020-07-09  5499  
771f712ba5b0c6 Douglas Gilbert 2021-03-03  5500  	if (hipri)
a2aede970a8e12 Douglas Gilbert 2020-04-21  5501  		ns_from_boot = ktime_get_boottime_ns();
a2aede970a8e12 Douglas Gilbert 2020-04-21  5502  
a2aede970a8e12 Douglas Gilbert 2020-04-21  5503  	/* one of the resp_*() response functions is called here */
3a90a63d02b8b7 Douglas Gilbert 2020-07-12  5504  	cmnd->result = pfp ? pfp(cmnd, devip) : 0;
f66b85171a0ebd Martin Wilck    2018-02-14  5505  	if (cmnd->result & SDEG_RES_IMMED_MASK) {
f66b85171a0ebd Martin Wilck    2018-02-14  5506  		cmnd->result &= ~SDEG_RES_IMMED_MASK;
f66b85171a0ebd Martin Wilck    2018-02-14  5507  		delta_jiff = ndelay = 0;
f66b85171a0ebd Martin Wilck    2018-02-14  5508  	}
06067178668aa7 Hannes Reinecke 2021-04-21  5509  	if (scsi_result_is_good(cmnd) &&
06067178668aa7 Hannes Reinecke 2021-04-21  5510  	    (host_byte != DID_OK || status_byte != SAM_STAT_GOOD)) {
06067178668aa7 Hannes Reinecke 2021-04-21  5511  		if (host_byte != DID_OK)
06067178668aa7 Hannes Reinecke 2021-04-21  5512  			set_host_byte(cmnd, host_byte);
06067178668aa7 Hannes Reinecke 2021-04-21  5513  		if (status_byte != SAM_STAT_GOOD)
06067178668aa7 Hannes Reinecke 2021-04-21 @5514  			set_status_byte(cmnd, status_byte)
06067178668aa7 Hannes Reinecke 2021-04-21  5515  	}
941c01f1d8b12b Hannes Reinecke 2021-04-21  5516  	if (scsi_result_is_good(cmnd) &&
941c01f1d8b12b Hannes Reinecke 2021-04-21  5517  	    unlikely(sdebug_opts & SDEBUG_OPT_TRANSPORT_ERR)) {
3a90a63d02b8b7 Douglas Gilbert 2020-07-12  5518  		if (atomic_read(&sdeb_inject_pending)) {
3a90a63d02b8b7 Douglas Gilbert 2020-07-12  5519  			mk_sense_buffer(cmnd, ABORTED_COMMAND, TRANSPORT_PROBLEM, ACK_NAK_TO);
3a90a63d02b8b7 Douglas Gilbert 2020-07-12  5520  			atomic_set(&sdeb_inject_pending, 0);
3a90a63d02b8b7 Douglas Gilbert 2020-07-12  5521  		}
3a90a63d02b8b7 Douglas Gilbert 2020-07-12  5522  	}
f66b85171a0ebd Martin Wilck    2018-02-14  5523  
941c01f1d8b12b Hannes Reinecke 2021-04-21  5524  	if (unlikely(sdebug_verbose && !scsi_result_is_good(cmnd)))
f66b85171a0ebd Martin Wilck    2018-02-14  5525  		sdev_printk(KERN_INFO, sdp, "%s: non-zero result=0x%x\n",
06067178668aa7 Hannes Reinecke 2021-04-21  5526  			    __func__, scsi_get_compat_result(cmnd));
f66b85171a0ebd Martin Wilck    2018-02-14  5527  
10bde980ac18da Douglas Gilbert 2018-01-10  5528  	if (delta_jiff > 0 || ndelay > 0) {
b333a819813c75 Douglas Gilbert 2016-04-25  5529  		ktime_t kt;
cbf67842c3d9e7 Douglas Gilbert 2014-07-26  5530  
b333a819813c75 Douglas Gilbert 2016-04-25  5531  		if (delta_jiff > 0) {
0c4bc91d664953 Douglas Gilbert 2020-04-21  5532  			u64 ns = jiffies_to_nsecs(delta_jiff);
0c4bc91d664953 Douglas Gilbert 2020-04-21  5533  
0c4bc91d664953 Douglas Gilbert 2020-04-21  5534  			if (sdebug_random && ns < U32_MAX) {
0c4bc91d664953 Douglas Gilbert 2020-04-21  5535  				ns = prandom_u32_max((u32)ns);
0c4bc91d664953 Douglas Gilbert 2020-04-21  5536  			} else if (sdebug_random) {
0c4bc91d664953 Douglas Gilbert 2020-04-21  5537  				ns >>= 12;	/* scale to 4 usec precision */
0c4bc91d664953 Douglas Gilbert 2020-04-21  5538  				if (ns < U32_MAX)	/* over 4 hours max */
0c4bc91d664953 Douglas Gilbert 2020-04-21  5539  					ns = prandom_u32_max((u32)ns);
0c4bc91d664953 Douglas Gilbert 2020-04-21  5540  				ns <<= 12;
0c4bc91d664953 Douglas Gilbert 2020-04-21  5541  			}
0c4bc91d664953 Douglas Gilbert 2020-04-21  5542  			kt = ns_to_ktime(ns);
0c4bc91d664953 Douglas Gilbert 2020-04-21  5543  		} else {	/* ndelay has a 4.2 second max */
0c4bc91d664953 Douglas Gilbert 2020-04-21  5544  			kt = sdebug_random ? prandom_u32_max((u32)ndelay) :
0c4bc91d664953 Douglas Gilbert 2020-04-21  5545  					     (u32)ndelay;
a2aede970a8e12 Douglas Gilbert 2020-04-21  5546  			if (ndelay < INCLUSIVE_TIMING_MAX_NS) {
a2aede970a8e12 Douglas Gilbert 2020-04-21  5547  				u64 d = ktime_get_boottime_ns() - ns_from_boot;
a2aede970a8e12 Douglas Gilbert 2020-04-21  5548  
a2aede970a8e12 Douglas Gilbert 2020-04-21  5549  				if (kt <= d) {	/* elapsed duration >= kt */
223f91b4807922 Douglas Gilbert 2020-08-13  5550  					spin_lock_irqsave(&sqp->qc_lock, iflags);
a2aede970a8e12 Douglas Gilbert 2020-04-21  5551  					sqcp->a_cmnd = NULL;
a2aede970a8e12 Douglas Gilbert 2020-04-21  5552  					atomic_dec(&devip->num_in_q);
a2aede970a8e12 Douglas Gilbert 2020-04-21  5553  					clear_bit(k, sqp->in_use_bm);
223f91b4807922 Douglas Gilbert 2020-08-13  5554  					spin_unlock_irqrestore(&sqp->qc_lock, iflags);
a2aede970a8e12 Douglas Gilbert 2020-04-21  5555  					if (new_sd_dp)
a2aede970a8e12 Douglas Gilbert 2020-04-21  5556  						kfree(sd_dp);
a2aede970a8e12 Douglas Gilbert 2020-04-21  5557  					/* call scsi_done() from this thread */
a2aede970a8e12 Douglas Gilbert 2020-04-21  5558  					cmnd->scsi_done(cmnd);
a2aede970a8e12 Douglas Gilbert 2020-04-21  5559  					return 0;
a2aede970a8e12 Douglas Gilbert 2020-04-21  5560  				}
a2aede970a8e12 Douglas Gilbert 2020-04-21  5561  				/* otherwise reduce kt by elapsed time */
a2aede970a8e12 Douglas Gilbert 2020-04-21  5562  				kt -= d;
a2aede970a8e12 Douglas Gilbert 2020-04-21  5563  			}
0c4bc91d664953 Douglas Gilbert 2020-04-21  5564  		}
771f712ba5b0c6 Douglas Gilbert 2021-03-03  5565  		if (hipri) {
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5566  			sd_dp->cmpl_ts = ktime_add(ns_to_ktime(ns_from_boot), kt);
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5567  			spin_lock_irqsave(&sqp->qc_lock, iflags);
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5568  			if (!sd_dp->init_poll) {
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5569  				sd_dp->init_poll = true;
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5570  				sqcp->sd_dp = sd_dp;
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5571  				sd_dp->sqa_idx = sqp - sdebug_q_arr;
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5572  				sd_dp->qc_idx = k;
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5573  			}
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5574  			sd_dp->defer_t = SDEB_DEFER_POLL;
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5575  			spin_unlock_irqrestore(&sqp->qc_lock, iflags);
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5576  		} else {
10bde980ac18da Douglas Gilbert 2018-01-10  5577  			if (!sd_dp->init_hrt) {
10bde980ac18da Douglas Gilbert 2018-01-10  5578  				sd_dp->init_hrt = true;
a10bc12af6347d Douglas Gilbert 2016-04-25  5579  				sqcp->sd_dp = sd_dp;
a10bc12af6347d Douglas Gilbert 2016-04-25  5580  				hrtimer_init(&sd_dp->hrt, CLOCK_MONOTONIC,
c483739430f107 Douglas Gilbert 2016-05-06  5581  					     HRTIMER_MODE_REL_PINNED);
a10bc12af6347d Douglas Gilbert 2016-04-25  5582  				sd_dp->hrt.function = sdebug_q_cmd_hrt_complete;
c483739430f107 Douglas Gilbert 2016-05-06  5583  				sd_dp->sqa_idx = sqp - sdebug_q_arr;
c483739430f107 Douglas Gilbert 2016-05-06  5584  				sd_dp->qc_idx = k;
cbf67842c3d9e7 Douglas Gilbert 2014-07-26  5585  			}
10bde980ac18da Douglas Gilbert 2018-01-10  5586  			sd_dp->defer_t = SDEB_DEFER_HRT;
a2aede970a8e12 Douglas Gilbert 2020-04-21  5587  			/* schedule the invocation of scsi_done() for a later time */
c483739430f107 Douglas Gilbert 2016-05-06  5588  			hrtimer_start(&sd_dp->hrt, kt, HRTIMER_MODE_REL_PINNED);
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5589  		}
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5590  		if (sdebug_statistics)
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5591  			sd_dp->issuing_cpu = raw_smp_processor_id();
c483739430f107 Douglas Gilbert 2016-05-06  5592  	} else {	/* jdelay < 0, use work queue */
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5593  		if (unlikely((sdebug_opts & SDEBUG_OPT_CMD_ABORT) &&
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5594  			     atomic_read(&sdeb_inject_pending)))
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5595  			sd_dp->aborted = true;
771f712ba5b0c6 Douglas Gilbert 2021-03-03  5596  		if (hipri) {
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5597  			sd_dp->cmpl_ts = ns_to_ktime(ns_from_boot);
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5598  			spin_lock_irqsave(&sqp->qc_lock, iflags);
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5599  			if (!sd_dp->init_poll) {
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5600  				sd_dp->init_poll = true;
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5601  				sqcp->sd_dp = sd_dp;
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5602  				sd_dp->sqa_idx = sqp - sdebug_q_arr;
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5603  				sd_dp->qc_idx = k;
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5604  			}
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5605  			sd_dp->defer_t = SDEB_DEFER_POLL;
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5606  			spin_unlock_irqrestore(&sqp->qc_lock, iflags);
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5607  		} else {
10bde980ac18da Douglas Gilbert 2018-01-10  5608  			if (!sd_dp->init_wq) {
10bde980ac18da Douglas Gilbert 2018-01-10  5609  				sd_dp->init_wq = true;
a10bc12af6347d Douglas Gilbert 2016-04-25  5610  				sqcp->sd_dp = sd_dp;
c483739430f107 Douglas Gilbert 2016-05-06  5611  				sd_dp->sqa_idx = sqp - sdebug_q_arr;
c483739430f107 Douglas Gilbert 2016-05-06  5612  				sd_dp->qc_idx = k;
a10bc12af6347d Douglas Gilbert 2016-04-25  5613  				INIT_WORK(&sd_dp->ew.work, sdebug_q_cmd_wq_complete);
cbf67842c3d9e7 Douglas Gilbert 2014-07-26  5614  			}
10bde980ac18da Douglas Gilbert 2018-01-10  5615  			sd_dp->defer_t = SDEB_DEFER_WQ;
a10bc12af6347d Douglas Gilbert 2016-04-25  5616  			schedule_work(&sd_dp->ew.work);
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5617  		}
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5618  		if (sdebug_statistics)
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5619  			sd_dp->issuing_cpu = raw_smp_processor_id();
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5620  		if (unlikely(sd_dp->aborted)) {
3a90a63d02b8b7 Douglas Gilbert 2020-07-12  5621  			sdev_printk(KERN_INFO, sdp, "abort request tag %d\n", cmnd->request->tag);
7382f9d8dc0db2 Douglas Gilbert 2018-07-21  5622  			blk_abort_request(cmnd->request);
3a90a63d02b8b7 Douglas Gilbert 2020-07-12  5623  			atomic_set(&sdeb_inject_pending, 0);
4a0c6f432d1531 Douglas Gilbert 2021-02-15  5624  			sd_dp->aborted = false;
7382f9d8dc0db2 Douglas Gilbert 2018-07-21  5625  		}
^1da177e4c3f41 Linus Torvalds  2005-04-16  5626  	}
8759c3fdb10bdd Hannes Reinecke 2021-04-21  5627  	if (unlikely((SDEBUG_OPT_Q_NOISE & sdebug_opts) && qfull))
3a90a63d02b8b7 Douglas Gilbert 2020-07-12  5628  		sdev_printk(KERN_INFO, sdp, "%s: num_in_q=%d +1, %s%s\n", __func__,
3a90a63d02b8b7 Douglas Gilbert 2020-07-12  5629  			    num_in_q, (inject ? "<inject> " : ""), "status: TASK SET FULL");
cbf67842c3d9e7 Douglas Gilbert 2014-07-26  5630  	return 0;
cd62b7dae245dd Douglas Gilbert 2014-08-05  5631  

:::::: The code at line 5441 was first introduced by commit
:::::: f46eb0e9fc763b7b66c325eb94e6aefa960146d2 scsi_debug: use likely hints on fast path

:::::: TO: Douglas Gilbert <dgilbert@interlog.com>
:::::: CC: Martin K. Petersen <martin.petersen@oracle.com>

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

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 34689 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-04-22  7:31 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-22  7:31 [hare-scsi-devel:scsi-result-rework 137/146] drivers/scsi/scsi_debug.c:5441:9: error: 'scsi_result' undeclared; did you mean 'scsi_request'? kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.