diff options
Diffstat (limited to 'drivers/scsi/libiscsi.c')
| -rw-r--r-- | drivers/scsi/libiscsi.c | 36 | 
1 files changed, 10 insertions, 26 deletions
diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c index 0c550d5b9133..256a999d010b 100644 --- a/drivers/scsi/libiscsi.c +++ b/drivers/scsi/libiscsi.c @@ -84,22 +84,6 @@ MODULE_PARM_DESC(debug_libiscsi_eh,  					     __func__, ##arg);		\  	} while (0); -/* Serial Number Arithmetic, 32 bits, less than, RFC1982 */ -#define SNA32_CHECK 2147483648UL - -static int iscsi_sna_lt(u32 n1, u32 n2) -{ -	return n1 != n2 && ((n1 < n2 && (n2 - n1 < SNA32_CHECK)) || -			    (n1 > n2 && (n2 - n1 < SNA32_CHECK))); -} - -/* Serial Number Arithmetic, 32 bits, less than, RFC1982 */ -static int iscsi_sna_lte(u32 n1, u32 n2) -{ -	return n1 == n2 || ((n1 < n2 && (n2 - n1 < SNA32_CHECK)) || -			    (n1 > n2 && (n2 - n1 < SNA32_CHECK))); -} -  inline void iscsi_conn_queue_work(struct iscsi_conn *conn)  {  	struct Scsi_Host *shost = conn->session->host; @@ -169,7 +153,7 @@ void iscsi_prep_data_out_pdu(struct iscsi_task *task, struct iscsi_r2t_info *r2t  	hdr->datasn = cpu_to_be32(r2t->datasn);  	r2t->datasn++;  	hdr->opcode = ISCSI_OP_SCSI_DATA_OUT; -	memcpy(hdr->lun, task->lun, sizeof(hdr->lun)); +	hdr->lun = task->lun;  	hdr->itt = task->hdr_itt;  	hdr->exp_statsn = r2t->exp_statsn;  	hdr->offset = cpu_to_be32(r2t->data_offset + r2t->sent); @@ -296,7 +280,7 @@ static int iscsi_check_tmf_restrictions(struct iscsi_task *task, int opcode)  		/*  		 * Allow PDUs for unrelated LUNs  		 */ -		hdr_lun = scsilun_to_int((struct scsi_lun *)tmf->lun); +		hdr_lun = scsilun_to_int(&tmf->lun);  		if (hdr_lun != task->sc->device->lun)  			return 0;  		/* fall through */ @@ -360,7 +344,7 @@ static int iscsi_prep_scsi_cmd_pdu(struct iscsi_task *task)  	struct iscsi_conn *conn = task->conn;  	struct iscsi_session *session = conn->session;  	struct scsi_cmnd *sc = task->sc; -	struct iscsi_cmd *hdr; +	struct iscsi_scsi_req *hdr;  	unsigned hdrlength, cmd_len;  	itt_t itt;  	int rc; @@ -374,7 +358,7 @@ static int iscsi_prep_scsi_cmd_pdu(struct iscsi_task *task)  		if (rc)  			return rc;  	} -	hdr = (struct iscsi_cmd *) task->hdr; +	hdr = (struct iscsi_scsi_req *)task->hdr;  	itt = hdr->itt;  	memset(hdr, 0, sizeof(*hdr)); @@ -389,8 +373,8 @@ static int iscsi_prep_scsi_cmd_pdu(struct iscsi_task *task)  		return rc;  	hdr->opcode = ISCSI_OP_SCSI_CMD;  	hdr->flags = ISCSI_ATTR_SIMPLE; -	int_to_scsilun(sc->device->lun, (struct scsi_lun *)hdr->lun); -	memcpy(task->lun, hdr->lun, sizeof(task->lun)); +	int_to_scsilun(sc->device->lun, &hdr->lun); +	task->lun = hdr->lun;  	hdr->exp_statsn = cpu_to_be32(conn->exp_statsn);  	cmd_len = sc->cmd_len;  	if (cmd_len < ISCSI_CDB_SIZE) @@ -830,7 +814,7 @@ static void iscsi_scsi_cmd_rsp(struct iscsi_conn *conn, struct iscsi_hdr *hdr,  			       struct iscsi_task *task, char *data,  			       int datalen)  { -	struct iscsi_cmd_rsp *rhdr = (struct iscsi_cmd_rsp *)hdr; +	struct iscsi_scsi_rsp *rhdr = (struct iscsi_scsi_rsp *)hdr;  	struct iscsi_session *session = conn->session;  	struct scsi_cmnd *sc = task->sc; @@ -968,7 +952,7 @@ static void iscsi_send_nopout(struct iscsi_conn *conn, struct iscsi_nopin *rhdr)  	hdr.flags = ISCSI_FLAG_CMD_FINAL;  	if (rhdr) { -		memcpy(hdr.lun, rhdr->lun, 8); +		hdr.lun = rhdr->lun;  		hdr.ttt = rhdr->ttt;  		hdr.itt = RESERVED_ITT;  	} else @@ -2092,7 +2076,7 @@ static void iscsi_prep_abort_task_pdu(struct iscsi_task *task,  	hdr->opcode = ISCSI_OP_SCSI_TMFUNC | ISCSI_OP_IMMEDIATE;  	hdr->flags = ISCSI_TM_FUNC_ABORT_TASK & ISCSI_FLAG_TM_FUNC_MASK;  	hdr->flags |= ISCSI_FLAG_CMD_FINAL; -	memcpy(hdr->lun, task->lun, sizeof(hdr->lun)); +	hdr->lun = task->lun;  	hdr->rtt = task->hdr_itt;  	hdr->refcmdsn = task->cmdsn;  } @@ -2233,7 +2217,7 @@ static void iscsi_prep_lun_reset_pdu(struct scsi_cmnd *sc, struct iscsi_tm *hdr)  	hdr->opcode = ISCSI_OP_SCSI_TMFUNC | ISCSI_OP_IMMEDIATE;  	hdr->flags = ISCSI_TM_FUNC_LOGICAL_UNIT_RESET & ISCSI_FLAG_TM_FUNC_MASK;  	hdr->flags |= ISCSI_FLAG_CMD_FINAL; -	int_to_scsilun(sc->device->lun, (struct scsi_lun *)hdr->lun); +	int_to_scsilun(sc->device->lun, &hdr->lun);  	hdr->rtt = RESERVED_ITT;  }  |