Commit 52205ac8 authored by Shivasharan S's avatar Shivasharan S Committed by Martin K. Petersen
Browse files

scsi: megaraid_sas: megasas_get_request_descriptor always return valid desc



No functional change. Code clean up. Removing error code which is not
valid scenario.  In megasas_get_request_descriptor we can remove the
error handling which is not required.  With fusion controllers, if there
is a valid message frame available, we are guaranteed to get a
corresponding request descriptor.

Signed-off-by: default avatarShivasharan S <shivasharan.srikanteshwara@broadcom.com>
Signed-off-by: default avatarKashyap Desai <kashyap.desai@broadcom.com>
Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
Reviewed-by: default avatarTomas Henzl <thenzl@redhat.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent f55cf47d
Loading
Loading
Loading
Loading
+2 −22
Original line number Diff line number Diff line
@@ -2438,18 +2438,12 @@ megasas_build_io_fusion(struct megasas_instance *instance,
	return 0;
}

union MEGASAS_REQUEST_DESCRIPTOR_UNION *
static union MEGASAS_REQUEST_DESCRIPTOR_UNION *
megasas_get_request_descriptor(struct megasas_instance *instance, u16 index)
{
	u8 *p;
	struct fusion_context *fusion;

	if (index >= instance->max_mpt_cmds) {
		dev_err(&instance->pdev->dev, "Invalid SMID (0x%x)request for "
		       "descriptor for scsi%d\n", index,
			instance->host->host_no);
		return NULL;
	}
	fusion = instance->ctrl_context;
	p = fusion->req_frames_desc +
		sizeof(union MEGASAS_REQUEST_DESCRIPTOR_UNION) * index;
@@ -2960,7 +2954,7 @@ build_mpt_mfi_pass_thru(struct megasas_instance *instance,
union MEGASAS_REQUEST_DESCRIPTOR_UNION *
build_mpt_cmd(struct megasas_instance *instance, struct megasas_cmd *cmd)
{
	union MEGASAS_REQUEST_DESCRIPTOR_UNION *req_desc;
	union MEGASAS_REQUEST_DESCRIPTOR_UNION *req_desc = NULL;
	u16 index;

	if (build_mpt_mfi_pass_thru(instance, cmd)) {
@@ -2972,9 +2966,6 @@ build_mpt_cmd(struct megasas_instance *instance, struct megasas_cmd *cmd)

	req_desc = megasas_get_request_descriptor(instance, index - 1);

	if (!req_desc)
		return NULL;

	req_desc->Words = 0;
	req_desc->SCSIIO.RequestFlags = (MPI2_REQ_DESCRIPT_FLAGS_SCSI_IO <<
					 MEGASAS_REQ_DESCRIPT_FLAGS_TYPE_SHIFT);
@@ -2997,11 +2988,6 @@ megasas_issue_dcmd_fusion(struct megasas_instance *instance,
	union MEGASAS_REQUEST_DESCRIPTOR_UNION *req_desc;

	req_desc = build_mpt_cmd(instance, cmd);
	if (!req_desc) {
		dev_info(&instance->pdev->dev, "Failed from %s %d\n",
					__func__, __LINE__);
		return DCMD_NOT_FIRED;
	}

	megasas_fire_cmd_fusion(instance, req_desc);
	return DCMD_SUCCESS;
@@ -3438,12 +3424,6 @@ megasas_issue_tm(struct megasas_instance *instance, u16 device_handle,

	req_desc = megasas_get_request_descriptor(instance,
			(cmd_fusion->index - 1));
	if (!req_desc) {
		dev_err(&instance->pdev->dev, "Failed from %s %d\n",
			__func__, __LINE__);
		megasas_return_cmd(instance, cmd_mfi);
		return -ENOMEM;
	}

	cmd_fusion->request_desc = req_desc;
	req_desc->Words = 0;