1. 24 2月, 2016 2 次提交
    • S
      megaraid_sas: MFI IO timeout handling · 6d40afbc
      Sumit Saxena 提交于
      This patch will do proper error handling for DCMD timeout failure cases
      for Fusion adapters:
      
      1. For MFI adapters, in case of DCMD timeout (DCMD which must return
      SUCCESS) driver will call kill adapter.
      
      2. What action needs to be taken in case of DCMD timeout is decided by
      function dcmd_timeout_ocr_possible().  DCMD timeout causing OCR is
      applicable to the following commands:
      
      	MR_DCMD_PD_LIST_QUERY
      	MR_DCMD_LD_GET_LIST
      	MR_DCMD_LD_LIST_QUERY
      	MR_DCMD_CTRL_SET_CRASH_DUMP_PARAMS
      	MR_DCMD_SYSTEM_PD_MAP_GET_INFO
      	MR_DCMD_LD_MAP_GET_INFO
      
      3. If DCMD fails from driver init path there are certain DCMDs which
      must return SUCCESS. If those DCMDs fail, driver bails out. For optional
      DCMDs like pd_info etc., driver continues without executing certain
      functionality.
      Signed-off-by: NSumit Saxena <sumit.saxena@avagotech.com>
      Signed-off-by: NKashyap Desai <kashyap.desai@avagotech.com>
      Reviewed-by: NTomas Henzl <thenzl@redhat.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      6d40afbc
    • S
      megaraid_sas: Do not allow PCI access during OCR · 11c71cb4
      Sumit Saxena 提交于
      This patch will do synhronization between OCR function and AEN function
      using "reset_mutex" lock.  reset_mutex will be acquired only in the
      first half of the AEN function which issues a DCMD. Second half of the
      function which calls SCSI API (scsi_add_device/scsi_remove_device)
      should be out of reset_mutex to avoid deadlock between scsi_eh thread
      and driver.
      
      During chip reset (inside OCR function), there should not be any PCI
      access and AEN function (which is called in delayed context) may be
      firing DCMDs (doing PCI writes) when chip reset is happening in parallel
      which will cause FW fault. This patch will solve the problem by making
      AEN thread and OCR thread mutually exclusive.
      Signed-off-by: NSumit Saxena <sumit.saxena@avagotech.com>
      Signed-off-by: NKashyap Desai <kashyap.desai@avagotech.com>
      Reviewed-by: NTomas Henzl <thenzl@redhat.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      11c71cb4
  2. 09 1月, 2016 1 次提交
  3. 10 11月, 2015 3 次提交
  4. 03 11月, 2015 3 次提交
  5. 29 10月, 2015 19 次提交
  6. 26 8月, 2015 2 次提交
  7. 15 6月, 2015 1 次提交
  8. 13 6月, 2015 1 次提交
  9. 01 6月, 2015 1 次提交
    • S
      megaraid_sas : Modify return value of megasas_issue_blocked_cmd() and... · 2be2a988
      Sumit.Saxena@avagotech.com 提交于
      megaraid_sas : Modify return value of megasas_issue_blocked_cmd() and wait_and_poll() to consider command status returned by firmware
      
      This patch is rebased on top of recently sent 18 patches(submitted by me) for
      megaraid_sas driver.
      
      Change the return value of wait_and_poll() and megsas_issue_blocked_cmd()
      based on MFI_STAT returned by firmware for that command. Earlier driver always
      send return type based on command completion (but never check MFI_STAT_OK for
      that command), so even if command is failed by firmware still driver will
      return SUCCESS status from these functions wait_and_poll() and
      megsas_issue_blocked_cmd() and if caller of these functions does not check
      command status (MFI_STAT), then it may endup using invalid data returned in
      DMA buffers(one of the example is megasas_ld_list_query DCMD). Best thing to
      avoid this type of issue is do error handling and set proper return type from
      caller function wait_and_poll() and megsas_issue_blocked_cmd().
      
      The change proposed in this patch will fix the regression introduced in patch-
      "90dc9d98 megaraid_sas : MFI MPT linked list corruption fix" inside function
      megasas_ld_list_query().  Prior to this MFI MPT linked list corruption fix
      patch, megasas_ld_list_query() function used to check DCMD status(returned by
      firmware) but with this linked list corruption fix patch, DCMD status will not
      be checked inside function megasas_ld_list_query() and introduced this issue
      of wrong data being used by function megasas_ld_list_query().
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NKashyap Desai <kashyap.desai@avagotech.com>
      Signed-off-by: NSumit Saxena <sumit.saxena@avagotech.com>
      Reviewed-by: NTomas Henzl <thenzl@redhat.com>
      Signed-off-by: NJames Bottomley <JBottomley@Odin.com>
      2be2a988
  10. 26 5月, 2015 1 次提交
  11. 25 5月, 2015 6 次提交