1. 23 7月, 2013 1 次提交
  2. 10 5月, 2013 1 次提交
    • J
      [SCSI] sas: unify the pointlessly separated enums sas_dev_type and sas_device_type · aa9f8328
      James Bottomley 提交于
      These enums have been separate since the dawn of SAS, mainly because the
      latter is a procotol only enum and the former includes additional state
      for libsas.  The dichotomy causes endless confusion about which one you
      should use where and leads to pointless warnings like this:
      
      drivers/scsi/mvsas/mv_sas.c: In function 'mvs_update_phyinfo':
      drivers/scsi/mvsas/mv_sas.c:1162:34: warning: comparison between 'enum sas_device_type' and 'enum sas_dev_type' [-Wenum-compare]
      
      Fix by eliminating one of them.  The one kept is effectively the sas.h
      one, but call it sas_device_type and make sure the enums are all
      properly namespaced with the SAS_ prefix.
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      aa9f8328
  3. 02 9月, 2012 1 次提交
  4. 18 5月, 2012 10 次提交
  5. 01 3月, 2012 5 次提交
    • D
      [SCSI] isci: remove IDEV_EH hack to disable "discovery-time" ata resets · 5a998328
      Dan Williams 提交于
      Prior to commit 61aaff49 "isci: filter broadcast change notifications
      during SMP phy resets" we borrowed the MVS_DEV_EH approach from the
      mvsas driver for preventing ->lldd_I_T_nexus_reset() events during ata
      discovery.  This hack was protecting against the old ->phy_reset() in
      ata_bus_probe(), but since the conversion to the new error handling this
      hack is preventing resets from reaching ata devices.
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      5a998328
    • D
      [SCSI] isci: remove bus and reset handlers · 6a719391
      Dan Williams 提交于
      Remove ->eh_device_reset_handler() and ->eh_bus_reset_handler() for the
      same reason they are not implemented for libata hosts, they cannot be
      implemented reliably with ata-eh.  ATA error recovery wants to divert
      all resets to the eh thread and wait for completion, these handlers may
      be invoked from a non-blocking ioctl.
      
      The other path they are called from is libsas-eh, and if we escalate
      past I_T_nexus reset we have larger problems i.e. tear down all
      in-flight commands in the domain potentially without notification to the
      lldd if it has chosen not to implement ->lldd_clear_nexus_port() /
      ->lldd_clear_nexus_ha().
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      6a719391
    • D
      [SCSI] isci: stop interpreting ->lldd_lu_reset() as an ata soft-reset · 43a5ab15
      Dan Williams 提交于
      Driving resets from libsas-eh is pre-mature as libata will make a
      decision about performing a softreset.  Currently libata determines
      whether to perform a softreset based on ata_eh_followup_srst_needed(),
      and none of those conditions apply to isci.
      
      Remove the srst implementation and translate ->lldd_lu_reset() for ata
      devices as a request to drive a reset via libata-eh.
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      43a5ab15
    • D
      [SCSI] isci: fix interpretation of "hard" reset · 92776991
      Dan Williams 提交于
      A hard reset to isci in the direct-attached case is one where the driver
      internally manages debouncing the link.  In the sas-expander-attached
      case a hard reset is one that clears affiliations.  The driver should
      not be prematurely dropping affiliations at run time, that decision (to
      force expander hard resets to ata devices) is left to userspace to
      manage.  So, arrange for I_T_nexus resets to be sas-link-resets in the
      expander-attached case and isci-hard-resets in the direct-attached case.
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      92776991
    • D
      [SCSI] libsas: fix sas_find_local_phy(), take phy references · f41a0c44
      Dan Williams 提交于
      In the direct-attached case this routine returns the phy on which this
      device was first discovered.  Which is broken if we want to support
      wide-targets, as this phy reference can become stale even though the
      port is still active.
      
      In the expander-attached case this routine tries to lookup the phy by
      scanning the attached sas addresses of the parent expander, and BUG_ONs
      if it can't find it.  However since eh and the libsas workqueue run
      independently we can still be attempting device recovery via eh after
      libsas has recorded the device as detached.  This is even easier to hit
      now that eh is blocked while device domain rediscovery takes place, and
      that libata is fed more timed out commands increasing the chances that
      it will try to recover the ata device.
      
      Arrange for dev->phy to always point to a last known good phy, it may be
      stale after the port is torn down, but it will catch up for wide port
      reconfigurations, and never be NULL.
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      f41a0c44
  6. 20 2月, 2012 1 次提交
  7. 16 1月, 2012 1 次提交
  8. 31 10月, 2011 8 次提交
  9. 27 8月, 2011 1 次提交
  10. 04 7月, 2011 1 次提交
  11. 03 7月, 2011 10 次提交