On 11/17/2014 10:54 AM, [email protected] wrote:
> In OCR(Online Controller Reset) path, driver sets adapter state to 
> MEGASAS_HBA_OPERATIONAL before getting new RAID map.
> There will be a small window where IO will come from OS with old RAID map.
> This patch will update adapter state to MEGASAS_HBA_OPERATIONAL, only after 
> driver has new RAID map to avoid
> any IOs getting build using old RAID map.
>
> Signed-off-by: Sumit Saxena <[email protected]>
> Signed-off-by: Kashyap Desai <[email protected]>
> ---
>  drivers/scsi/megaraid/megaraid_sas_fusion.c |   26 +++++++++++++-------------
>  1 files changed, 13 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c 
> b/drivers/scsi/megaraid/megaraid_sas_fusion.c
> index 98dfc1d..4e259ed 100644
> --- a/drivers/scsi/megaraid/megaraid_sas_fusion.c
> +++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c
> @@ -2803,11 +2803,6 @@ int megasas_reset_fusion(struct Scsi_Host *shost, int 
> iotimeout)
>                               }
>                       }
>  
> -                     clear_bit(MEGASAS_FUSION_IN_RESET,
> -                               &instance->reset_flags);
> -                     instance->instancet->enable_intr(instance);
> -                     instance->adprecovery = MEGASAS_HBA_OPERATIONAL;
> -
>                       if (megasas_get_ctrl_info(instance)) {
>                               dev_info(&instance->pdev->dev,
>                                       "Failed from %s %d\n",
> @@ -2825,6 +2820,11 @@ int megasas_reset_fusion(struct Scsi_Host *shost, int 
> iotimeout)
>                       if (!megasas_get_map_info(instance))
>                               megasas_sync_map_info(instance);
>  
> +                     clear_bit(MEGASAS_FUSION_IN_RESET,
> +                               &instance->reset_flags);
> +                     instance->instancet->enable_intr(instance);
> +                     instance->adprecovery = MEGASAS_HBA_OPERATIONAL;
> +
>                       /* Restart SR-IOV heartbeat */
>                       if (instance->requestorId) {
>                               if (!megasas_sriov_start_heartbeat(instance, 0))
> @@ -2841,14 +2841,14 @@ int megasas_reset_fusion(struct Scsi_Host *shost, int 
> iotimeout)
>                              "successful for scsi%d.\n",
>                               instance->host->host_no);
>  
> -                     if (instance->crash_dump_drv_support) {
> -                             if (instance->crash_dump_app_support)
> -                                     megasas_set_crash_dump_params(instance,
> -                                             MR_CRASH_BUF_TURN_ON);
> -                             else
> -                                     megasas_set_crash_dump_params(instance,
> -                                             MR_CRASH_BUF_TURN_OFF);
> -                     }
> +                     if (instance->crash_dump_drv_support &&
> +                             instance->crash_dump_app_support)
> +                             megasas_set_crash_dump_params(instance,
> +                                     MR_CRASH_BUF_TURN_ON);
> +                     else
> +                             megasas_set_crash_dump_params(instance,
> +                                     MR_CRASH_BUF_TURN_OFF);
> +
>                       retval = SUCCESS;
>                       goto out;
>               }

Reviewed-by: Tomas Henzl <[email protected]>

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to