1. 14 7月, 2016 1 次提交
    • S
      megaraid_sas: Do not fire MR_DCMD_PD_LIST_QUERY to controllers which do not support it · d9083160
      Sumit Saxena 提交于
      There was an issue reported by Lucz Geza on Dell Perc 6i. As per issue
      reported, megaraid_sas driver goes into an infinite error reporting loop
      as soon as there is a change in the status of one of the
      arrays (degrade, resync online etc ).  Below are the error logs reported
      continuously-
      
      Jun 25 08:49:30 ns8 kernel: [  757.757017] megaraid_sas 0000:02:00.0: DCMD failed/not supported by firmware: megasas_get_pd_list 4115
      Jun 25 08:49:30 ns8 kernel: [  757.778017] megaraid_sas 0000:02:00.0: DCMD failed/not supported by firmware: megasas_get_pd_list 4115
      Jun 25 08:49:30 ns8 kernel: [  757.799017] megaraid_sas 0000:02:00.0: DCMD failed/not supported by firmware: megasas_get_pd_list 4115
      Jun 25 08:49:30 ns8 kernel: [  757.820018] megaraid_sas 0000:02:00.0: DCMD failed/not supported by firmware: megasas_get_pd_list 4115
      Jun 25 08:49:30 ns8 kernel: [  757.841018] megaraid_sas 0000:02:00.0: DCMD failed/not supported by firmware: megasas_get_pd_list 4115
      
      This issue is very much specific to controllers which do not support
      DCMD- MR_DCMD_PD_LIST_QUERY.  In case of any hotplugging/rescanning of
      drives, AEN thread will be scheduled by driver and fire DCMD-
      MR_DCMD_PD_LIST_QUERY and if this DCMD is failed then driver will fail
      this event processing and will not go ahead for further events. This
      will cause infinite loop of same event getting retried infinitely and
      causing above mentioned logs.
      
      Fix for this problem is: not to fire DCMD MR_DCMD_PD_LIST_QUERY for
      controllers which do not support it and send DCMD SUCCESS status to AEN
      function so that it can go ahead with other event processing.
      Reported-by: NLucz Geza <geza@lucz.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NSumit Saxena <sumit.saxena@broadcom.com>
      Reviewed-by: NTomas Henzl <thenzl@redhat.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      d9083160
  2. 06 5月, 2016 1 次提交
  3. 16 4月, 2016 2 次提交
  4. 19 3月, 2016 1 次提交
  5. 11 3月, 2016 1 次提交
  6. 24 2月, 2016 14 次提交
  7. 10 11月, 2015 2 次提交
  8. 03 11月, 2015 1 次提交
  9. 29 10月, 2015 13 次提交
  10. 26 8月, 2015 2 次提交
  11. 13 6月, 2015 1 次提交
  12. 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