1. 31 Jul, 2023 2 commits
    • Karan Tilak Kumar's avatar
      scsi: fnic: Replace return codes in fnic_clean_pending_aborts() · 5a43b07a
      Karan Tilak Kumar authored
      fnic_clean_pending_aborts() was returning a non-zero value irrespective of
      failure or success.  This caused the caller of this function to assume that
      the device reset had failed, even though it would succeed in most cases. As
      a consequence, a successful device reset would escalate to host reset.
      Reviewed-by: default avatarSesidhar Baddela <sebaddel@cisco.com>
      Tested-by: default avatarKaran Tilak Kumar <kartilak@cisco.com>
      Signed-off-by: default avatarKaran Tilak Kumar <kartilak@cisco.com>
      Link: https://lore.kernel.org/r/20230727193919.2519-1-kartilak@cisco.comSigned-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      5a43b07a
    • Michael Kelley's avatar
      scsi: storvsc: Fix handling of virtual Fibre Channel timeouts · 175544ad
      Michael Kelley authored
      Hyper-V provides the ability to connect Fibre Channel LUNs to the host
      system and present them in a guest VM as a SCSI device. I/O to the vFC
      device is handled by the storvsc driver. The storvsc driver includes a
      partial integration with the FC transport implemented in the generic
      portion of the Linux SCSI subsystem so that FC attributes can be displayed
      in /sys.  However, the partial integration means that some aspects of vFC
      don't work properly. Unfortunately, a full and correct integration isn't
      practical because of limitations in what Hyper-V provides to the guest.
      
      In particular, in the context of Hyper-V storvsc, the FC transport timeout
      function fc_eh_timed_out() causes a kernel panic because it can't find the
      rport and dereferences a NULL pointer. The original patch that added the
      call from storvsc_eh_timed_out() to fc_eh_timed_out() is faulty in this
      regard.
      
      In many cases a timeout is due to a transient condition, so the situation
      can be improved by just continuing to wait like with other I/O requests
      issued by storvsc, and avoiding the guaranteed panic. For a permanent
      failure, continuing to wait may result in a hung thread instead of a panic,
      which again may be better.
      
      So fix the panic by removing the storvsc call to fc_eh_timed_out().  This
      allows storvsc to keep waiting for a response.  The change has been tested
      by users who experienced a panic in fc_eh_timed_out() due to transient
      timeouts, and it solves their problem.
      
      In the future we may want to deprecate the vFC functionality in storvsc
      since it can't be fully fixed. But it has current users for whom it is
      working well enough, so it should probably stay for a while longer.
      
      Fixes: 3930d730 ("scsi: storvsc: use default I/O timeout handler for FC devices")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarMichael Kelley <mikelley@microsoft.com>
      Link: https://lore.kernel.org/r/1690606764-79669-1-git-send-email-mikelley@microsoft.comSigned-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      175544ad
  2. 26 Jul, 2023 2 commits
  3. 23 Jul, 2023 1 commit
  4. 20 Jul, 2023 1 commit
  5. 11 Jul, 2023 2 commits
  6. 09 Jul, 2023 10 commits
  7. 08 Jul, 2023 22 commits