Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7e98df22 authored by Andrew Vasquez's avatar Andrew Vasquez Committed by James Bottomley
Browse files

[SCSI] qla2xxx: Use correct Request-Q-Out register during bidirectional request processing



Original code was not corrected for ISP83xx support. Instead code should used
the cached reference from the req_que structure, rather than the legacy
'if (ISP-TYPE(X))... else if (ISP-TYPE(Y))...' codes.

Signed-off-by: default avatarAndrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: default avatarSaurav Kashyap <saurav.kashyap@qlogic.com>
Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
parent 53016ed3
Loading
Loading
Loading
Loading
+1 −10
Original line number Diff line number Diff line
@@ -2748,7 +2748,6 @@ qla2x00_start_bidir(srb_t *sp, struct scsi_qla_host *vha, uint32_t tot_dsds)
	struct rsp_que *rsp;
	struct req_que *req;
	int rval = EXT_STATUS_OK;
	device_reg_t __iomem *reg = ISP_QUE_REG(ha, vha->req->id);

	rval = QLA_SUCCESS;

@@ -2786,15 +2785,7 @@ qla2x00_start_bidir(srb_t *sp, struct scsi_qla_host *vha, uint32_t tot_dsds)

	/* Check for room on request queue. */
	if (req->cnt < req_cnt + 2) {
		if (ha->mqenable)
			cnt = RD_REG_DWORD(&reg->isp25mq.req_q_out);
		else if (IS_QLA82XX(ha))
			cnt = RD_REG_DWORD(&reg->isp82.req_q_out);
		else if (IS_FWI2_CAPABLE(ha))
			cnt = RD_REG_DWORD(&reg->isp24.req_q_out);
		else
			cnt = qla2x00_debounce_register(
					ISP_REQ_Q_OUT(ha, &reg->isp));
		cnt = RD_REG_DWORD_RELAXED(req->req_q_out);

		if  (req->ring_index < cnt)
			req->cnt = cnt - req->ring_index;