1. 05 6月, 2013 1 次提交
    • J
      [SCSI] libsas: implement > 16 byte CDB support · e73823f7
      James Bottomley 提交于
      Remove the arbitrary expectation in libsas that all SCSI commands are 16 bytes
      or less.  Instead do all copies via cmd->cmd_len (and use a pointer to this in
      the libsas task instead of a copy).  Note that this still doesn't enable > 16
      byte CDB support in the underlying drivers because their internal format has
      to be fixed and the wire format of > 16 byte CDBs according to the SAS spec is
      different.  the libsas drivers (isci, aic94xx, mvsas and pm8xxx are all
      updated for this change.
      
      Cc: Lukasz Dorau <lukasz.dorau@intel.com>
      Cc: Maciej Patelczyk <maciej.patelczyk@intel.com>
      Cc: Dave Jiang <dave.jiang@intel.com>
      Cc: Jack Wang <xjtuwjp@gmail.com>
      Cc: Lindar Liu <lindar_liu@usish.com>
      Cc: Xiangliang Yu <yuxiangl@marvell.com>
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      e73823f7
  2. 08 7月, 2012 1 次提交
  3. 28 7月, 2010 1 次提交
  4. 27 7月, 2008 1 次提交
  5. 08 4月, 2008 1 次提交
  6. 24 2月, 2008 1 次提交
    • J
      [SCSI] aic94xx: fix TMF ascb handling to prevent sequencer panic · e2396f1e
      James Bottomley 提交于
      This is a particularly nasty bug.  The problem is that if any internal
      ascb times out, currently we free it even though it's pending at the
      sequencer.  This results in the sequencer getting terminally confused
      and the error message:
      
      BUG:sequencer:dl:no ascb
      
      Being returned when it comes back.  The way to fix this is to manage
      freeing the ascb from the tasklet completion routine, so that we only
      free it when the sequencer actually returns it.  The code is also
      altered to use on stack completions and transfer variables.
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      e2396f1e
  7. 26 1月, 2008 1 次提交
  8. 12 1月, 2008 1 次提交
  9. 16 10月, 2007 1 次提交
  10. 13 10月, 2007 1 次提交
  11. 03 10月, 2007 1 次提交
  12. 19 7月, 2007 3 次提交
    • J
      [SCSI] libsas, aic94xx: fix dma mapping cockups with ATA · 0f05df8b
      James Bottomley 提交于
      This one was noticed by Gilbert Wu of Adaptec:
      
      The libata core actually does the DMA mapping for you, so there has to
      be an exception in the device drivers that *don't* do dma mapping for
      ATA commands.  However, since we've already done this, libsas must now
      dma map any ATA commands that it wishes to issue ... and yes, this is a
      horrible mess.
      
      Additionally, the test in aic94xx for ATA protocols isn't quite right.
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      0f05df8b
    • D
      [SCSI] aic94xx: Don't call pci_map_sg for already-mapped scatterlists · ba330ffe
      Darrick J. Wong 提交于
      It turns out that libata has already dma_map_sg'd the scatterlist
      entries that go with an ata_queued_cmd by the time it calls
      sas_ata_qc_issue.  sas_ata_qc_issue passes this scatterlist to aic94xx.
      Unfortunately, aic94xx assumes that any scatterlist passed to it needs
      to be pci_map_sg'd... which blows away the mapping that libata created!
      This causes (on a x260) Calgary IOMMU table leaks and duplicate frees
      when aic94xx and libata try to {pci,dma}_unmap_sg the scatterlist.
      Signed-off-by: NDarrick J. Wong <djwong@us.ibm.com>
      
      Key this check off ATA_PROTOCOL_STP
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      ba330ffe
    • J
      [SCSI] libsas: fixup NCQ for SATA disks · 0281e02c
      James Bottomley 提交于
      We actually had two problems: the one with the tag (which is fixed by
      zeroing the tag before sending the taskfile to the sequencer) but the
      other with the fact that we sent our first NCQ command to the device
      before the sequencer had been informed of the NCQ tagging
      capabilities.  I fixed the latter by moving the rphy_add() to the
      correct point in the code after the NCQ capabilities are set up.
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      0281e02c
  13. 14 1月, 2007 1 次提交
    • D
      [SCSI] libsas: Don't give scsi_cmnds to the EH if they never made it to the... · b218a0d8
      Darrick J. Wong 提交于
      [SCSI] libsas: Don't give scsi_cmnds to the EH if they never made it to the SAS LLDD or have already returned
      
      On a system with many SAS targets, it appears possible that a scsi_cmnd
      can time out without ever making it to the SAS LLDD or at the same time
      that a completion is occurring.  In both of these cases, telling the
      LLDD to abort the sas_task makes no sense because the LLDD won't know
      about the sas_task; what we really want to do is to increase the timer.
      Note that this involves creating another sas_task bit to indicate
      whether or not the task has been sent to the LLDD; I could have
      implemented this by slightly redefining SAS_TASK_STATE_PENDING, but
      this way seems cleaner.
      
      This second version amends the aic94xx portion to set the
      TASK_AT_INITIATOR flag for all sas_tasks that were passed to
      lldd_execute_task.
      Signed-off-by: NDarrick J. Wong <djwong@us.ibm.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      b218a0d8
  14. 25 9月, 2006 1 次提交
  15. 29 8月, 2006 1 次提交
    • J
      [SCSI] aic94xx: new driver · 2908d778
      James Bottomley 提交于
      This is the end point of the separate aic94xx driver based on the
      original driver and transport class from Luben Tuikov
      <ltuikov@yahoo.com>
      
      The log of the separate development is:
      
      Alexis Bruemmer:
        o aic94xx: fix hotplug/unplug for expanderless systems
        o aic94xx: disable split completion timer/setting by default
        o aic94xx: wide port off expander support
        o aic94xx: remove various inline functions
        o aic94xx: use bitops
        o aic94xx: remove queue comment
        o aic94xx: remove sas_common.c
        o aic94xx: sas remove depot's
        o aic94xx: use available list_for_each_entry_safe_reverse()
        o aic94xx: sas header file merge
      
      James Bottomley:
        o aic94xx: fix TF_TMF_NO_CTX processing
        o aic94xx: convert to request_firmware interface
        o aic94xx: fix hotplug/unplug
        o aic94xx: add link error counts to the expander phys
        o aic94xx: add transport class phy reset capability
        o aic94xx: remove local_attached flag
        o Remove README
        o Fixup Makefile variable for libsas rename
        o Rename sas->libsas
        o aic94xx: correct return code for sas_discover_event
        o aic94xx: use parent backlink port
        o aic94xx: remove channel abstraction
        o aic94xx: fix routing algorithms
        o aic94xx: add backlink port
        o aic94xx: fix cascaded expander properties
        o aic94xx: fix sleep under lock
        o aic94xx: fix panic on module removal in complex topology
        o aic94xx: make use of the new sas_port
        o rename sas_port to asd_sas_port
        o Fix for eh_strategy_handler move
        o aic94xx: move entirely over to correct transport class formulation
        o remove last vestages of sas_rphy_alloc()
        o update for eh_timed_out move
        o Preliminary expander support for aic94xx
        o sas: remove event thread
        o minor warning cleanups
        o remove last vestiges of id mapping arrays
        o Further updates
        o Convert aic94xx over entirely to the transport class end device and
        o update aic94xx/sas to use the new sas transport class end device
        o [PATCH] aic94xx: attaching to the sas transport class
        o Add missing completion removal from prior patch
        o [PATCH] aic94xx: attaching to the sas transport class
        o Build fixes from akpm
      
      Jeff Garzik:
        o [scsi aic94xx] Remove ->owner from PCI info table
      
      Luben Tuikov:
        o initial aic94xx driver
      
      Mike Anderson:
        o aic94xx: fix panic on module insertion
        o aic94xx: stub out SATA_DEV case
        o aic94xx: compile warning cleanups
        o aic94xx: sas_alloc_task
        o aic94xx: ref count update
        o aic94xx nexus loss time value
        o [PATCH] aic94xx: driver assertion in non-x86 BIOS env
      
      Randy Dunlap:
        o libsas: externs not needed
      
      Robert Tarte:
        o aic94xx: sequence patch - fixes SATA support
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      2908d778