From: Sumit Saxena <sumit.saxena@avagotech.com> To: jbottomley@parallels.com, hch@infradead.org, martin.petersen@oracle.com Cc: linux-scsi@vger.kernel.org, kashyap.desai@avagotech.com, sumit.saxena@avagotech.com, Uday Lingala <uday.lingala@avagotech.com> Subject: [PATCH 14/15] megaraid_sas: SPERC OCR changes Date: Fri, 18 Dec 2015 18:57:07 +0530 [thread overview] Message-ID: <1450445228-26571-15-git-send-email-Sumit.Saxena@avagotech.com> (raw) In-Reply-To: <1450445228-26571-1-git-send-email-Sumit.Saxena@avagotech.com> This patch will do some fixes in OCR path of SRIOV enabled series of Avago controllers. 1)Removing late detection HB. 2)Change in the behavior if the FW found in READY/OPERAETIONAL state. Signed-off-by: Uday Lingala <uday.lingala@avagotech.com> Signed-off-by: Sumit Saxena <sumit.saxena@avagotech.com> --- drivers/scsi/megaraid/megaraid_sas_fusion.c | 73 ++++++--------------------- 1 files changed, 16 insertions(+), 57 deletions(-) diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c index a973587..90217a2 100644 --- a/drivers/scsi/megaraid/megaraid_sas_fusion.c +++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c @@ -3472,52 +3472,7 @@ int megasas_reset_fusion(struct Scsi_Host *shost, int reason) /* Let SR-IOV VF & PF sync up if there was a HB failure */ if (instance->requestorId && !reason) { msleep(MEGASAS_OCR_SETTLE_TIME_VF); - /* Look for a late HB update after VF settle time */ - if (abs_state == MFI_STATE_OPERATIONAL && - (instance->hb_host_mem->HB.fwCounter != - instance->hb_host_mem->HB.driverCounter)) { - instance->hb_host_mem->HB.driverCounter = - instance->hb_host_mem->HB.fwCounter; - dev_warn(&instance->pdev->dev, "SR-IOV:" - "Late FW heartbeat update for " - "scsi%d.\n", - instance->host->host_no); - } else { - /* In VF mode, first poll for FW ready */ - for (i = 0; - i < (MEGASAS_RESET_WAIT_TIME * 1000); - i += 20) { - status_reg = - instance->instancet-> - read_fw_status_reg( - instance->reg_set); - abs_state = status_reg & - MFI_STATE_MASK; - if (abs_state == MFI_STATE_READY) { - dev_warn(&instance->pdev->dev, - "SR-IOV: FW was found" - "to be in ready state " - "for scsi%d.\n", - instance->host->host_no); - break; - } - msleep(20); - } - if (abs_state != MFI_STATE_READY) { - dev_warn(&instance->pdev->dev, "SR-IOV: " - "FW not in ready state after %d" - " seconds for scsi%d, status_reg = " - "0x%x.\n", - MEGASAS_RESET_WAIT_TIME, - instance->host->host_no, - status_reg); - megaraid_sas_kill_hba(instance); - instance->skip_heartbeat_timer_del = 1; - atomic_set(&instance->adprecovery, MEGASAS_HW_CRITICAL_ERROR); - retval = FAILED; - goto out; - } - } + goto transition_to_ready; } /* Now try to reset the chip */ @@ -3526,25 +3481,28 @@ int megasas_reset_fusion(struct Scsi_Host *shost, int reason) if (instance->instancet->adp_reset (instance, instance->reg_set)) continue; - +transition_to_ready: /* Wait for FW to become ready */ if (megasas_transition_to_ready(instance, 1)) { - dev_warn(&instance->pdev->dev, "Failed to " - "transition controller to ready " - "for scsi%d.\n", - instance->host->host_no); - continue; + dev_warn(&instance->pdev->dev, + "Failed to transition controller to ready for " + "scsi%d.\n", instance->host->host_no); + if (instance->requestorId && !reason) + goto fail_kill_adapter; + else + continue; } - megasas_reset_reply_desc(instance); megasas_fusion_update_can_queue(instance, OCR_CONTEXT); if (megasas_ioc_init_fusion(instance)) { dev_warn(&instance->pdev->dev, - "megasas_ioc_init_fusion() failed!" - " for scsi%d\n", - instance->host->host_no); - continue; + "megasas_ioc_init_fusion() failed! for " + "scsi%d\n", instance->host->host_no); + if (instance->requestorId && !reason) + goto fail_kill_adapter; + else + continue; } megasas_refire_mgmt_cmd(instance); @@ -3601,6 +3559,7 @@ int megasas_reset_fusion(struct Scsi_Host *shost, int reason) retval = SUCCESS; goto out; } +fail_kill_adapter: /* Reset failed, kill the adapter */ dev_warn(&instance->pdev->dev, "Reset failed, killing " "adapter scsi%d.\n", instance->host->host_no); -- 1.7.1
next prev parent reply other threads:[~2015-12-18 13:28 UTC|newest] Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-12-18 13:26 [PATCH 00/15] megaraid_sas: Updates for scsi-next Sumit Saxena 2015-12-18 13:26 ` [PATCH 01/15] megaraid_sas: Do not allow PCI access during OCR Sumit Saxena 2016-01-11 17:02 ` Tomas Henzl 2015-12-18 13:26 ` [PATCH 02/15] megaraid_sas: MFI IO timeout handling Sumit Saxena 2016-01-11 17:02 ` Tomas Henzl 2015-12-18 13:26 ` [PATCH 03/15] megaraid_sas: Syncing request flags macro names with firmware Sumit Saxena 2016-01-11 17:03 ` Tomas Henzl 2015-12-18 13:26 ` [PATCH 04/15] megaraid_sas: Task management support Sumit Saxena 2016-01-11 17:03 ` Tomas Henzl 2016-01-14 12:04 ` Sumit Saxena 2015-12-18 13:26 ` [PATCH 05/15] megaraid_sas: Update device Queue depth based on interface type Sumit Saxena 2016-01-12 14:16 ` Tomas Henzl 2016-01-14 11:48 ` Sumit Saxena 2015-12-18 13:26 ` [PATCH 06/15] megaraid_sas: Fastpath region lock bypass Sumit Saxena 2016-01-12 14:44 ` Tomas Henzl 2015-12-18 13:27 ` [PATCH 07/15] megaraid_sas: Reply Descriptor Post Queue(RDPQ) support Sumit Saxena 2015-12-18 14:49 ` [PATCH] megaraid_sas: fix kzalloc-simple.cocci warnings kbuild test robot 2015-12-18 14:49 ` [PATCH 07/15] megaraid_sas: Reply Descriptor Post Queue(RDPQ) support kbuild test robot 2016-01-14 17:38 ` Tomas Henzl 2016-01-27 18:15 ` Sumit Saxena 2015-12-18 13:27 ` [PATCH 08/15] megaraid_sas: Code optimization build_and_issue_cmd return-type Sumit Saxena 2016-01-14 18:05 ` Tomas Henzl 2015-12-18 13:27 ` [PATCH 09/15] megaraid_sas: Dual Queue depth support Sumit Saxena 2016-01-19 13:34 ` Tomas Henzl 2016-01-19 13:44 ` Sumit Saxena 2016-01-20 13:55 ` Tomas Henzl 2016-01-20 14:09 ` Sumit Saxena 2016-01-20 14:16 ` Tomas Henzl 2016-01-20 15:08 ` Sumit Saxena 2016-01-20 16:00 ` Tomas Henzl 2016-01-27 2:02 ` Martin K. Petersen 2016-01-27 7:09 ` Sumit Saxena 2015-12-18 13:27 ` [PATCH 10/15] megaraid_sas: IO throttling support Sumit Saxena 2016-01-19 13:38 ` Tomas Henzl 2016-01-28 7:18 ` Sumit Saxena 2015-12-18 13:27 ` [PATCH 11/15] megaraid_sas: Make adprecovery variable atomic Sumit Saxena 2016-01-19 13:52 ` Tomas Henzl 2016-01-28 8:30 ` Sumit Saxena 2015-12-18 13:27 ` [PATCH 12/15] megaraid_sas: MFI adapter's OCR changes Sumit Saxena 2016-01-19 14:22 ` Tomas Henzl 2016-01-28 11:12 ` Sumit Saxena 2015-12-18 13:27 ` [PATCH 13/15] megaraid_sas: Introduce module parameter for SCSI command-timeout Sumit Saxena 2016-01-19 14:57 ` Tomas Henzl 2016-01-28 11:17 ` Sumit Saxena 2015-12-18 13:27 ` Sumit Saxena [this message] 2016-01-19 15:14 ` [PATCH 14/15] megaraid_sas: SPERC OCR changes Tomas Henzl 2015-12-18 13:27 ` [PATCH 15/15] megaraid_sas: SPERC boot driver reorder Sumit Saxena 2015-12-18 14:05 ` Christoph Hellwig 2016-01-08 7:07 ` Sumit Saxena 2016-01-12 5:26 ` Sumit Saxena
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1450445228-26571-15-git-send-email-Sumit.Saxena@avagotech.com \ --to=sumit.saxena@avagotech.com \ --cc=hch@infradead.org \ --cc=jbottomley@parallels.com \ --cc=kashyap.desai@avagotech.com \ --cc=linux-scsi@vger.kernel.org \ --cc=martin.petersen@oracle.com \ --cc=uday.lingala@avagotech.com \ --subject='Re: [PATCH 14/15] megaraid_sas: SPERC OCR changes' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.