Hi Bart, I love your patch! Perhaps something to improve: [auto build test WARNING on mkp-scsi/for-next] [also build test WARNING on jejb-scsi/for-next linus/master v6.0-rc6 next-20220923] [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#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Bart-Van-Assche/Fix-a-deadlock-in-the-UFS-driver/20220924-041421 base: https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next config: m68k-allyesconfig compiler: m68k-linux-gcc (GCC) 12.1.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://github.com/intel-lab-lkp/linux/commit/7bc4b0fc4020042f87539d32e24d2e49e613b541 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Bart-Van-Assche/Fix-a-deadlock-in-the-UFS-driver/20220924-041421 git checkout 7bc4b0fc4020042f87539d32e24d2e49e613b541 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=m68k SHELL=/bin/bash drivers/scsi/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot All warnings (new ones prefixed by >>): drivers/scsi/scsi_transport_fc.c: In function 'fc_bsg_job_timeout': >> drivers/scsi/scsi_transport_fc.c:4063:32: warning: implicit conversion from 'enum scsi_timeout_action' to 'enum blk_eh_timer_return' [-Wenum-conversion] 4063 | return SCSI_EH_RESET_TIMER; | ^~~~~~~~~~~~~~~~~~~ vim +4063 drivers/scsi/scsi_transport_fc.c 4034 4035 4036 /* 4037 * BSG support 4038 */ 4039 4040 /** 4041 * fc_bsg_job_timeout - handler for when a bsg request timesout 4042 * @req: request that timed out 4043 */ 4044 static enum blk_eh_timer_return 4045 fc_bsg_job_timeout(struct request *req) 4046 { 4047 struct bsg_job *job = blk_mq_rq_to_pdu(req); 4048 struct Scsi_Host *shost = fc_bsg_to_shost(job); 4049 struct fc_rport *rport = fc_bsg_to_rport(job); 4050 struct fc_internal *i = to_fc_internal(shost->transportt); 4051 int err = 0, inflight = 0; 4052 4053 if (rport && rport->port_state == FC_PORTSTATE_BLOCKED) 4054 return BLK_EH_RESET_TIMER; 4055 4056 inflight = bsg_job_get(job); 4057 4058 if (inflight && i->f->bsg_timeout) { 4059 /* call LLDD to abort the i/o as it has timed out */ 4060 err = i->f->bsg_timeout(job); 4061 if (err == -EAGAIN) { 4062 bsg_job_put(job); > 4063 return SCSI_EH_RESET_TIMER; 4064 } else if (err) 4065 printk(KERN_ERR "ERROR: FC BSG request timeout - LLD " 4066 "abort failed with status %d\n", err); 4067 } 4068 4069 /* the blk_end_sync_io() doesn't check the error */ 4070 if (inflight) 4071 blk_mq_end_request(req, BLK_STS_IOERR); 4072 return BLK_EH_DONE; 4073 } 4074 -- 0-DAY CI Kernel Test Service https://01.org/lkp