linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [scsi:misc 58/85] drivers/scsi/qla2xxx/qla_target.c:5326:35: sparse: sparse: cast from restricted __be16
@ 2020-01-03 20:18 kbuild test robot
  2020-01-03 20:45 ` Bart Van Assche
  0 siblings, 1 reply; 2+ messages in thread
From: kbuild test robot @ 2020-01-03 20:18 UTC (permalink / raw)
  To: Bart Van Assche
  Cc: kbuild-all, linux-scsi, Martin K. Petersen, Daniel Wagner,
	Roman Bolshakov

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git misc
head:   c53cf10ef6d9faeee9baa1fab824139c6f10a134
commit: a9c4ae108610716140bdec56ae0bebbe1c5cbe49 [58/85] scsi: qla2xxx: Use get_unaligned_*() instead of open-coding these functions
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-129-g341daf20-dirty
        git checkout a9c4ae108610716140bdec56ae0bebbe1c5cbe49
        make ARCH=x86_64 allmodconfig
        make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

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


sparse warnings: (new ones prefixed by >>)

   drivers/scsi/qla2xxx/qla_target.c:1843:15: sparse:    expected unsigned int [usertype] f_ctl
   drivers/scsi/qla2xxx/qla_target.c:1843:15: sparse:    got restricted __le32 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:1916:23: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:1916:23: sparse:    expected unsigned short [usertype] timeout
   drivers/scsi/qla2xxx/qla_target.c:1916:23: sparse:    got restricted __le16 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:1935:31: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:1935:31: sparse:    expected restricted __le16 [usertype] ox_id
   drivers/scsi/qla2xxx/qla_target.c:1935:31: sparse:    got unsigned short [usertype] ox_id
   drivers/scsi/qla2xxx/qla_target.c:2229:23: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:2229:23: sparse:    expected unsigned short [usertype] timeout
   drivers/scsi/qla2xxx/qla_target.c:2229:23: sparse:    got restricted __le16 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:2238:37: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:2238:37: sparse:    expected unsigned short [usertype] scsi_status
   drivers/scsi/qla2xxx/qla_target.c:2238:37: sparse:    got restricted __le16 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:2240:38: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:2240:38: sparse:    expected unsigned short [usertype] response_len
   drivers/scsi/qla2xxx/qla_target.c:2240:38: sparse:    got restricted __le16 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:2286:23: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:2286:23: sparse:    expected unsigned short [usertype] timeout
   drivers/scsi/qla2xxx/qla_target.c:2286:23: sparse:    got restricted __le16 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:2295:37: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:2295:37: sparse:    expected unsigned short [usertype] scsi_status
   drivers/scsi/qla2xxx/qla_target.c:2295:37: sparse:    got restricted __le16 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:2297:38: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:2297:38: sparse:    expected unsigned short [usertype] response_len
   drivers/scsi/qla2xxx/qla_target.c:2297:38: sparse:    got restricted __le16 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:2298:34: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:2298:34: sparse:    expected unsigned int [usertype] residual
   drivers/scsi/qla2xxx/qla_target.c:2298:34: sparse:    got restricted __le32 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:2301:45: sparse: sparse: invalid assignment: |=
   drivers/scsi/qla2xxx/qla_target.c:2301:45: sparse:    left side has type unsigned short
   drivers/scsi/qla2xxx/qla_target.c:2301:45: sparse:    right side has type restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:2587:27: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:2587:27: sparse:    expected unsigned short [usertype] nport_handle
   drivers/scsi/qla2xxx/qla_target.c:2587:27: sparse:    got restricted __le16 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:2588:22: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:2588:22: sparse:    expected unsigned short [usertype] timeout
   drivers/scsi/qla2xxx/qla_target.c:2588:22: sparse:    got restricted __le16 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:2595:40: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:2595:40: sparse:    expected unsigned int [usertype] relative_offset
   drivers/scsi/qla2xxx/qla_target.c:2595:40: sparse:    got restricted __le32 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:2650:42: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:2650:42: sparse:    expected unsigned int [usertype] transfer_length
   drivers/scsi/qla2xxx/qla_target.c:2650:42: sparse:    got restricted __le32 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:2657:35: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:2657:35: sparse:    expected unsigned short [usertype] dseg_count
   drivers/scsi/qla2xxx/qla_target.c:2657:35: sparse:    got restricted __le16 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:2819:34: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:2819:34: sparse:    expected unsigned int [usertype] residual
   drivers/scsi/qla2xxx/qla_target.c:2819:34: sparse:    got restricted __le32 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:2820:37: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:2820:37: sparse:    expected unsigned short [usertype] scsi_status
   drivers/scsi/qla2xxx/qla_target.c:2820:37: sparse:    got restricted __le16 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:2841:45: sparse: sparse: invalid assignment: |=
   drivers/scsi/qla2xxx/qla_target.c:2841:45: sparse:    left side has type unsigned short
   drivers/scsi/qla2xxx/qla_target.c:2841:45: sparse:    right side has type restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:2843:46: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:2843:46: sparse:    expected unsigned short [usertype] sense_length
   drivers/scsi/qla2xxx/qla_target.c:2843:46: sparse:    got restricted __le16 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:2846:69: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:2846:69: sparse:    expected unsigned int [usertype]
   drivers/scsi/qla2xxx/qla_target.c:2846:69: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:3100:27: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:3100:27: sparse:    expected unsigned short [usertype] nport_handle
   drivers/scsi/qla2xxx/qla_target.c:3100:27: sparse:    got restricted __le16 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:3282:60: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:3282:60: sparse:    expected unsigned short [usertype] scsi_status
   drivers/scsi/qla2xxx/qla_target.c:3282:60: sparse:    got restricted __le16 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:3284:57: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:3284:57: sparse:    expected unsigned int [usertype] residual
   drivers/scsi/qla2xxx/qla_target.c:3284:57: sparse:    got restricted __le32 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:3100:27: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:3100:27: sparse:    expected unsigned short [usertype] nport_handle
   drivers/scsi/qla2xxx/qla_target.c:3100:27: sparse:    got restricted __le16 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:3576:13: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:3578:25: sparse: sparse: restricted __le32 degrades to integer
   drivers/scsi/qla2xxx/qla_target.c:3582:29: sparse: sparse: invalid assignment: |=
   drivers/scsi/qla2xxx/qla_target.c:3582:29: sparse:    left side has type unsigned short
   drivers/scsi/qla2xxx/qla_target.c:3582:29: sparse:    right side has type restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:3653:25: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:3653:25: sparse:    expected unsigned short [usertype] timeout
   drivers/scsi/qla2xxx/qla_target.c:3653:25: sparse:    got restricted __le16 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:3846:21: sparse: sparse: restricted __le16 degrades to integer
   drivers/scsi/qla2xxx/qla_target.c:4508:13: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:4529:19: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:4702:19: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:4797:26: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:4880:19: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:4920:26: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:5056:21: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:5151:18: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:5157:34: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:5172:21: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:5192:21: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:5237:21: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:5238:21: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:5239:21: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:5314:25: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:5314:25: sparse:    expected unsigned short [usertype] timeout
   drivers/scsi/qla2xxx/qla_target.c:5314:25: sparse:    got restricted __le16 [usertype]
>> drivers/scsi/qla2xxx/qla_target.c:5326:35: sparse: sparse: cast from restricted __be16
   drivers/scsi/qla2xxx/qla_target.c:5326:35: sparse: sparse: incorrect type in argument 1 (different base types)
   drivers/scsi/qla2xxx/qla_target.c:5326:35: sparse:    expected unsigned short [usertype] val
   drivers/scsi/qla2xxx/qla_target.c:5326:35: sparse:    got restricted __be16 [usertype] ox_id
>> drivers/scsi/qla2xxx/qla_target.c:5326:35: sparse: sparse: cast from restricted __be16
>> drivers/scsi/qla2xxx/qla_target.c:5326:35: sparse: sparse: cast from restricted __be16
   drivers/scsi/qla2xxx/qla_target.c:5326:33: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:5326:33: sparse:    expected restricted __le16 [usertype] ox_id
   drivers/scsi/qla2xxx/qla_target.c:5326:33: sparse:    got int
   drivers/scsi/qla2xxx/qla_target.c:5327:39: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:5327:39: sparse:    expected unsigned short [usertype] scsi_status
   drivers/scsi/qla2xxx/qla_target.c:5327:39: sparse:    got restricted __le16 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:5731:13: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:5947:21: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:5947:46: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:5948:21: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:5948:46: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:5965:21: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:5965:46: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:5966:21: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:5966:46: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:5973:21: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:5973:46: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:5974:21: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:5974:46: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:5976:21: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:6000:21: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:6000:46: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:6001:21: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:6001:46: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:6003:30: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_target.c:6783:29: sparse: sparse: cast to restricted __le32
   drivers/scsi/qla2xxx/qla_target.c:6832:48: sparse: sparse: incorrect type in assignment (different base types)
>> drivers/scsi/qla2xxx/qla_target.c:6832:48: sparse:    expected unsigned short [usertype] msix_atio
   drivers/scsi/qla2xxx/qla_target.c:6832:48: sparse:    got restricted __le16 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:6873:44: sparse: sparse: incorrect type in assignment (different base types)
>> drivers/scsi/qla2xxx/qla_target.c:6873:44: sparse:    expected unsigned short [usertype] exchange_count
   drivers/scsi/qla2xxx/qla_target.c:6873:44: sparse:    got restricted __le16 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:6875:44: sparse: sparse: incorrect type in assignment (different base types)
   drivers/scsi/qla2xxx/qla_target.c:6875:44: sparse:    expected unsigned short [usertype] exchange_count
   drivers/scsi/qla2xxx/qla_target.c:6875:44: sparse:    got restricted __le16 [usertype]
   drivers/scsi/qla2xxx/qla_target.c:6878:40: sparse: sparse: invalid assignment: |=
>> drivers/scsi/qla2xxx/qla_target.c:6878:40: sparse:    left side has type unsigned int
>> drivers/scsi/qla2xxx/qla_target.c:6878:40: sparse:    right side has type restricted __le32
   drivers/scsi/qla2xxx/qla_target.c:6882:48: sparse: sparse: invalid assignment: |=
   drivers/scsi/qla2xxx/qla_target.c:6882:48: sparse:    left side has type unsigned int
   drivers/scsi/qla2xxx/qla_target.c:6882:48: sparse:    right side has type restricted __le32
   drivers/scsi/qla2xxx/qla_target.c:6885:40: sparse: sparse: invalid assignment: &=
   drivers/scsi/qla2xxx/qla_target.c:6885:40: sparse:    left side has type unsigned int
   drivers/scsi/qla2xxx/qla_target.c:6885:40: sparse:    right side has type restricted __le32
   drivers/scsi/qla2xxx/qla_target.c:6887:40: sparse: sparse: invalid assignment: &=
   drivers/scsi/qla2xxx/qla_target.c:6887:40: sparse:    left side has type unsigned int
   drivers/scsi/qla2xxx/qla_target.c:6887:40: sparse:    right side has type restricted __le32
   drivers/scsi/qla2xxx/qla_target.c:6890:48: sparse: sparse: invalid assignment: |=
   drivers/scsi/qla2xxx/qla_target.c:6890:48: sparse:    left side has type unsigned int
   drivers/scsi/qla2xxx/qla_target.c:6890:48: sparse:    right side has type restricted __le32
   drivers/scsi/qla2xxx/qla_target.c:6893:48: sparse: sparse: invalid assignment: &=
   drivers/scsi/qla2xxx/qla_target.c:6893:48: sparse:    left side has type unsigned int
   drivers/scsi/qla2xxx/qla_target.c:6893:48: sparse:    right side has type restricted __le32
   drivers/scsi/qla2xxx/qla_target.c:6896:28: sparse: sparse: too many warnings

vim +5326 drivers/scsi/qla2xxx/qla_target.c

2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5137  
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5138  /*
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5139   * ha->hardware_lock supposed to be held on entry. Might drop it, then reaquire
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5140   */
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5141  static void qlt_handle_imm_notify(struct scsi_qla_host *vha,
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5142  	struct imm_ntfy_from_isp *iocb)
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5143  {
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5144  	struct qla_hw_data *ha = vha->hw;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5145  	uint32_t add_flags = 0;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5146  	int send_notify_ack = 1;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5147  	uint16_t status;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5148  
57bf595a6f2437 Bart Van Assche    2019-08-08  5149  	lockdep_assert_held(&ha->hardware_lock);
57bf595a6f2437 Bart Van Assche    2019-08-08  5150  
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5151  	status = le16_to_cpu(iocb->u.isp2x.status);
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5152  	switch (status) {
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5153  	case IMM_NTFY_LIP_RESET:
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5154  	{
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5155  		ql_dbg(ql_dbg_tgt_mgt, vha, 0xf032,
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5156  		    "qla_target(%d): LIP reset (loop %#x), subcode %x\n",
2d70c103fd2a06 Nicholas Bellinger 2012-05-15 @5157  		    vha->vp_idx, le16_to_cpu(iocb->u.isp24.nport_handle),
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5158  		    iocb->u.isp24.status_subcode);
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5159  
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5160  		if (qlt_reset(vha, iocb, QLA_TGT_ABORT_ALL) == 0)
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5161  			send_notify_ack = 0;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5162  		break;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5163  	}
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5164  
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5165  	case IMM_NTFY_LIP_LINK_REINIT:
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5166  	{
0e8cd71ceca4c1 Saurav Kashyap     2014-01-14  5167  		struct qla_tgt *tgt = vha->vha_tgt.qla_tgt;
bd432bb53cffea Bart Van Assche    2019-04-11  5168  
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5169  		ql_dbg(ql_dbg_tgt_mgt, vha, 0xf033,
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5170  		    "qla_target(%d): LINK REINIT (loop %#x, "
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5171  		    "subcode %x)\n", vha->vp_idx,
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5172  		    le16_to_cpu(iocb->u.isp24.nport_handle),
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5173  		    iocb->u.isp24.status_subcode);
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5174  		if (tgt->link_reinit_iocb_pending) {
82de802ad46e23 Quinn Tran         2017-06-13  5175  			qlt_send_notify_ack(ha->base_qpair,
82de802ad46e23 Quinn Tran         2017-06-13  5176  			    &tgt->link_reinit_iocb, 0, 0, 0, 0, 0, 0);
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5177  		}
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5178  		memcpy(&tgt->link_reinit_iocb, iocb, sizeof(*iocb));
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5179  		tgt->link_reinit_iocb_pending = 1;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5180  		/*
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5181  		 * QLogic requires to wait after LINK REINIT for possible
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5182  		 * PDISC or ADISC ELS commands
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5183  		 */
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5184  		send_notify_ack = 0;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5185  		break;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5186  	}
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5187  
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5188  	case IMM_NTFY_PORT_LOGOUT:
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5189  		ql_dbg(ql_dbg_tgt_mgt, vha, 0xf034,
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5190  		    "qla_target(%d): Port logout (loop "
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5191  		    "%#x, subcode %x)\n", vha->vp_idx,
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5192  		    le16_to_cpu(iocb->u.isp24.nport_handle),
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5193  		    iocb->u.isp24.status_subcode);
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5194  
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5195  		if (qlt_reset(vha, iocb, QLA_TGT_NEXUS_LOSS_SESS) == 0)
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5196  			send_notify_ack = 0;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5197  		/* The sessions will be cleared in the callback, if needed */
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5198  		break;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5199  
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5200  	case IMM_NTFY_GLBL_TPRLO:
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5201  		ql_dbg(ql_dbg_tgt_mgt, vha, 0xf035,
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5202  		    "qla_target(%d): Global TPRLO (%x)\n", vha->vp_idx, status);
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5203  		if (qlt_reset(vha, iocb, QLA_TGT_NEXUS_LOSS) == 0)
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5204  			send_notify_ack = 0;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5205  		/* The sessions will be cleared in the callback, if needed */
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5206  		break;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5207  
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5208  	case IMM_NTFY_PORT_CONFIG:
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5209  		ql_dbg(ql_dbg_tgt_mgt, vha, 0xf036,
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5210  		    "qla_target(%d): Port config changed (%x)\n", vha->vp_idx,
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5211  		    status);
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5212  		if (qlt_reset(vha, iocb, QLA_TGT_ABORT_ALL) == 0)
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5213  			send_notify_ack = 0;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5214  		/* The sessions will be cleared in the callback, if needed */
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5215  		break;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5216  
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5217  	case IMM_NTFY_GLBL_LOGO:
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5218  		ql_dbg(ql_dbg_tgt_mgt, vha, 0xf06a,
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5219  		    "qla_target(%d): Link failure detected\n",
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5220  		    vha->vp_idx);
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5221  		/* I_T nexus loss */
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5222  		if (qlt_reset(vha, iocb, QLA_TGT_NEXUS_LOSS) == 0)
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5223  			send_notify_ack = 0;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5224  		break;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5225  
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5226  	case IMM_NTFY_IOCB_OVERFLOW:
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5227  		ql_dbg(ql_dbg_tgt_mgt, vha, 0xf06b,
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5228  		    "qla_target(%d): Cannot provide requested "
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5229  		    "capability (IOCB overflowed the immediate notify "
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5230  		    "resource count)\n", vha->vp_idx);
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5231  		break;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5232  
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5233  	case IMM_NTFY_ABORT_TASK:
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5234  		ql_dbg(ql_dbg_tgt_mgt, vha, 0xf037,
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5235  		    "qla_target(%d): Abort Task (S %08x I %#x -> "
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5236  		    "L %#x)\n", vha->vp_idx,
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5237  		    le16_to_cpu(iocb->u.isp2x.seq_id),
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5238  		    GET_TARGET_ID(ha, (struct atio_from_isp *)iocb),
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5239  		    le16_to_cpu(iocb->u.isp2x.lun));
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5240  		if (qlt_abort_task(vha, iocb) == 0)
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5241  			send_notify_ack = 0;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5242  		break;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5243  
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5244  	case IMM_NTFY_RESOURCE:
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5245  		ql_dbg(ql_dbg_tgt_mgt, vha, 0xf06c,
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5246  		    "qla_target(%d): Out of resources, host %ld\n",
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5247  		    vha->vp_idx, vha->host_no);
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5248  		break;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5249  
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5250  	case IMM_NTFY_MSG_RX:
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5251  		ql_dbg(ql_dbg_tgt_mgt, vha, 0xf038,
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5252  		    "qla_target(%d): Immediate notify task %x\n",
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5253  		    vha->vp_idx, iocb->u.isp2x.task_flags);
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5254  		break;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5255  
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5256  	case IMM_NTFY_ELS:
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5257  		if (qlt_24xx_handle_els(vha, iocb) == 0)
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5258  			send_notify_ack = 0;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5259  		break;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5260  	default:
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5261  		ql_dbg(ql_dbg_tgt_mgt, vha, 0xf06d,
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5262  		    "qla_target(%d): Received unknown immediate "
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5263  		    "notify status %x\n", vha->vp_idx, status);
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5264  		break;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5265  	}
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5266  
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5267  	if (send_notify_ack)
82de802ad46e23 Quinn Tran         2017-06-13  5268  		qlt_send_notify_ack(ha->base_qpair, iocb, add_flags, 0, 0, 0,
82de802ad46e23 Quinn Tran         2017-06-13  5269  		    0, 0);
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5270  }
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5271  
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5272  /*
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5273   * ha->hardware_lock supposed to be held on entry. Might drop it, then reaquire
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5274   * This function sends busy to ISP 2xxx or 24xx.
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5275   */
82de802ad46e23 Quinn Tran         2017-06-13  5276  static int __qlt_send_busy(struct qla_qpair *qpair,
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5277  	struct atio_from_isp *atio, uint16_t status)
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5278  {
82de802ad46e23 Quinn Tran         2017-06-13  5279  	struct scsi_qla_host *vha = qpair->vha;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5280  	struct ctio7_to_24xx *ctio24;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5281  	struct qla_hw_data *ha = vha->hw;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5282  	request_t *pkt;
5d964837c6a743 Quinn Tran         2017-01-19  5283  	struct fc_port *sess = NULL;
7560151b6b3c1f Quinn Tran         2015-12-17  5284  	unsigned long flags;
f7e761f56c7119 Quinn Tran         2017-06-02  5285  	u16 temp;
8ea4faf829eb2e Quinn Tran         2018-05-01  5286  	port_id_t id;
8ea4faf829eb2e Quinn Tran         2018-05-01  5287  
df95f39ae76474 Bart Van Assche    2019-08-08  5288  	id = be_to_port_id(atio->u.isp24.fcp_hdr.s_id);
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5289  
7560151b6b3c1f Quinn Tran         2015-12-17  5290  	spin_lock_irqsave(&ha->tgt.sess_lock, flags);
8ea4faf829eb2e Quinn Tran         2018-05-01  5291  	sess = qla2x00_find_fcport_by_nportid(vha, &id, 1);
7560151b6b3c1f Quinn Tran         2015-12-17  5292  	spin_unlock_irqrestore(&ha->tgt.sess_lock, flags);
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5293  	if (!sess) {
82de802ad46e23 Quinn Tran         2017-06-13  5294  		qlt_send_term_exchange(qpair, NULL, atio, 1, 0);
33e7997755936b Quinn Tran         2014-09-25  5295  		return 0;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5296  	}
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5297  	/* Sending marker isn't necessary, since we called from ISR */
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5298  
82de802ad46e23 Quinn Tran         2017-06-13  5299  	pkt = (request_t *)__qla2x00_alloc_iocbs(qpair, NULL);
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5300  	if (!pkt) {
667024a3654918 Arun Easi          2014-09-25  5301  		ql_dbg(ql_dbg_io, vha, 0x3063,
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5302  		    "qla_target(%d): %s failed: unable to allocate "
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5303  		    "request packet", vha->vp_idx, __func__);
33e7997755936b Quinn Tran         2014-09-25  5304  		return -ENOMEM;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5305  	}
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5306  
60a9eadb19f33a Quinn Tran         2017-06-13  5307  	qpair->tgt_counters.num_q_full_sent++;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5308  	pkt->entry_count = 1;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5309  	pkt->handle = QLA_TGT_SKIP_HANDLE | CTIO_COMPLETION_HANDLE_MARK;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5310  
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5311  	ctio24 = (struct ctio7_to_24xx *)pkt;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5312  	ctio24->entry_type = CTIO_TYPE7;
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5313  	ctio24->nport_handle = sess->loop_id;
ad950360eebb5f Bart Van Assche    2015-07-09  5314  	ctio24->timeout = cpu_to_le16(QLA_TGT_TIMEOUT);
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5315  	ctio24->vp_index = vha->vp_idx;
df95f39ae76474 Bart Van Assche    2019-08-08  5316  	ctio24->initiator_id = be_id_to_le(atio->u.isp24.fcp_hdr.s_id);
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5317  	ctio24->exchange_addr = atio->u.isp24.exchange_addr;
f7e761f56c7119 Quinn Tran         2017-06-02  5318  	temp = (atio->u.isp24.attr << 9) |
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5319  		CTIO7_FLAGS_STATUS_MODE_1 | CTIO7_FLAGS_SEND_STATUS |
f7e761f56c7119 Quinn Tran         2017-06-02  5320  		CTIO7_FLAGS_DONT_RET_CTIO;
f7e761f56c7119 Quinn Tran         2017-06-02  5321  	ctio24->u.status1.flags = cpu_to_le16(temp);
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5322  	/*
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5323  	 * CTIO from fw w/o se_cmd doesn't provide enough info to retry it,
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5324  	 * if the explicit conformation is used.
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5325  	 */
2d70c103fd2a06 Nicholas Bellinger 2012-05-15 @5326  	ctio24->u.status1.ox_id = swab16(atio->u.isp24.fcp_hdr.ox_id);
2d70c103fd2a06 Nicholas Bellinger 2012-05-15  5327  	ctio24->u.status1.scsi_status = cpu_to_le16(status);
e25f76549bd779 Quinn Tran         2018-05-01  5328  
e25f76549bd779 Quinn Tran         2018-05-01  5329  	ctio24->u.status1.residual = get_datalen_for_atio(atio);
e25f76549bd779 Quinn Tran         2018-05-01  5330  
e25f76549bd779 Quinn Tran         2018-05-01  5331  	if (ctio24->u.status1.residual != 0)
e25f76549bd779 Quinn Tran         2018-05-01  5332  		ctio24->u.status1.scsi_status |= SS_RESIDUAL_UNDER;
e25f76549bd779 Quinn Tran         2018-05-01  5333  
63163e06012787 Himanshu Madhani   2014-09-25  5334  	/* Memory Barrier */
63163e06012787 Himanshu Madhani   2014-09-25  5335  	wmb();
8abfa9e2268337 Quinn Tran         2017-06-13  5336  	if (qpair->reqq_start_iocbs)
8abfa9e2268337 Quinn Tran         2017-06-13  5337  		qpair->reqq_start_iocbs(qpair);
8abfa9e2268337 Quinn Tran         2017-06-13  5338  	else
82de802ad46e23 Quinn Tran         2017-06-13  5339  		qla2x00_start_iocbs(vha, qpair->req);
33e7997755936b Quinn Tran         2014-09-25  5340  	return 0;
33e7997755936b Quinn Tran         2014-09-25  5341  }
33e7997755936b Quinn Tran         2014-09-25  5342  

:::::: The code at line 5326 was first introduced by commit
:::::: 2d70c103fd2a066f904712b14239a5ce141f8236 [SCSI] qla2xxx: Add LLD target-mode infrastructure for >= 24xx series

:::::: TO: Nicholas Bellinger <nab@linux-iscsi.org>
:::::: CC: James Bottomley <JBottomley@Parallels.com>

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [scsi:misc 58/85] drivers/scsi/qla2xxx/qla_target.c:5326:35: sparse: sparse: cast from restricted __be16
  2020-01-03 20:18 [scsi:misc 58/85] drivers/scsi/qla2xxx/qla_target.c:5326:35: sparse: sparse: cast from restricted __be16 kbuild test robot
@ 2020-01-03 20:45 ` Bart Van Assche
  0 siblings, 0 replies; 2+ messages in thread
From: Bart Van Assche @ 2020-01-03 20:45 UTC (permalink / raw)
  To: kbuild test robot
  Cc: kbuild-all, linux-scsi, Martin K. Petersen, Daniel Wagner,
	Roman Bolshakov

On 1/3/20 12:18 PM, kbuild test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git misc
> head:   c53cf10ef6d9faeee9baa1fab824139c6f10a134
> commit: a9c4ae108610716140bdec56ae0bebbe1c5cbe49 [58/85] scsi: qla2xxx: Use get_unaligned_*() instead of open-coding these functions
> reproduce:
>          # apt-get install sparse
>          # sparse version: v0.6.1-129-g341daf20-dirty
>          git checkout a9c4ae108610716140bdec56ae0bebbe1c5cbe49
>          make ARCH=x86_64 allmodconfig
>          make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
> 
> If you fix the issue, kindly add following tag
> Reported-by: kbuild test robot <lkp@intel.com>
> 
> 
> sparse warnings: (new ones prefixed by >>)
> [ ... ]
Because I think that I don't have introduced any new endianness issues 
with the mentioned patch, please ignore this kernel test robot report. 
I'm working on patches that make the qla2xxx driver endianness clean.

Bart.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-01-03 20:45 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-03 20:18 [scsi:misc 58/85] drivers/scsi/qla2xxx/qla_target.c:5326:35: sparse: sparse: cast from restricted __be16 kbuild test robot
2020-01-03 20:45 ` Bart Van Assche

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).