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

Commit 0b1f8d44 authored by Wendy Xiong's avatar Wendy Xiong Committed by James Bottomley
Browse files

[SCSI] ipr: Remove extended delay bit on GSCSI reads/writes ops



This patch removes extended delay bit on GSCSI reads/writes ops, the
performance will be significanly better.

Signed-off-by: default avatarWen Xiong <wenxiong@linux.vnet.ibm.com>
Acked-by: default avatarBrian King <brking@linux.vnet.ibm.com>
Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
parent 0759c666
Loading
Loading
Loading
Loading
+5 −1
Original line number Original line Diff line number Diff line
@@ -1143,6 +1143,7 @@ static void ipr_init_res_entry(struct ipr_resource_entry *res,
	res->add_to_ml = 0;
	res->add_to_ml = 0;
	res->del_from_ml = 0;
	res->del_from_ml = 0;
	res->resetting_device = 0;
	res->resetting_device = 0;
	res->reset_occurred = 0;
	res->sdev = NULL;
	res->sdev = NULL;
	res->sata_port = NULL;
	res->sata_port = NULL;


@@ -5015,6 +5016,7 @@ static int __ipr_eh_dev_reset(struct scsi_cmnd *scsi_cmd)
	} else
	} else
		rc = ipr_device_reset(ioa_cfg, res);
		rc = ipr_device_reset(ioa_cfg, res);
	res->resetting_device = 0;
	res->resetting_device = 0;
	res->reset_occurred = 1;


	LEAVE;
	LEAVE;
	return rc ? FAILED : SUCCESS;
	return rc ? FAILED : SUCCESS;
@@ -6183,8 +6185,10 @@ static int ipr_queuecommand(struct Scsi_Host *shost,
			ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_NO_ULEN_CHK;
			ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_NO_ULEN_CHK;


		ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_NO_LINK_DESC;
		ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_NO_LINK_DESC;
		if (ipr_is_gscsi(res))
		if (ipr_is_gscsi(res) && res->reset_occurred) {
			res->reset_occurred = 0;
			ioarcb->cmd_pkt.flags_lo |= IPR_FLAGS_LO_DELAY_AFTER_RST;
			ioarcb->cmd_pkt.flags_lo |= IPR_FLAGS_LO_DELAY_AFTER_RST;
		}
		ioarcb->cmd_pkt.flags_lo |= IPR_FLAGS_LO_ALIGNED_BFR;
		ioarcb->cmd_pkt.flags_lo |= IPR_FLAGS_LO_ALIGNED_BFR;
		ioarcb->cmd_pkt.flags_lo |= ipr_get_task_attributes(scsi_cmd);
		ioarcb->cmd_pkt.flags_lo |= ipr_get_task_attributes(scsi_cmd);
	}
	}
+1 −0
Original line number Original line Diff line number Diff line
@@ -1252,6 +1252,7 @@ struct ipr_resource_entry {
	u8 add_to_ml:1;
	u8 add_to_ml:1;
	u8 del_from_ml:1;
	u8 del_from_ml:1;
	u8 resetting_device:1;
	u8 resetting_device:1;
	u8 reset_occurred:1;


	u32 bus;		/* AKA channel */
	u32 bus;		/* AKA channel */
	u32 target;		/* AKA id */
	u32 target;		/* AKA id */