1. 11 9月, 2005 1 次提交
  2. 10 9月, 2005 1 次提交
    • C
      [SCSI] SAS transport class · c7ebbbce
      Christoph Hellwig 提交于
      The SAS transport class contains common code to deal with SAS HBAs, an
      aproximated representation of SAS topologies in the driver model,
      and various sysfs attributes to expose these topologies and managment
      interfaces to userspace.
      
      In addition to the basic SCSI core objects this transport class introduces
      two additional intermediate objects:  The SAS PHY as represented by struct
      sas_phy defines an "outgoing" PHY on a SAS HBA or Expander, and the SAS
      remote PHY represented by struct sas_rphy defines an "incoming" PHY on a
      SAS Expander or end device.  Note that this is purely a software concept, the
      underlying hardware for a PHY and a remote PHY is the exactly the same.
      
      There is no concept of a SAS port in this code, users can see what PHYs
      form a wide port based on the port_identifier attribute, which is the same
      for all PHYs in a port.
      
      This submission doesn't handle hot-plug addition or removal of SAS devices
      and thus doesn't do scanning in a workqueue yet, that will be added in
      phase2 after this submission.  In a third phase I will add additional
      managment infrastructure.
      
      I think this submission is ready for 2.6.14, but additional comments are
      of course very welcome.
      
      I'd like to thanks James Smart a lot for his very useful input on the
      design.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      c7ebbbce
  3. 07 9月, 2005 2 次提交
  4. 29 8月, 2005 3 次提交
  5. 28 8月, 2005 1 次提交
  6. 15 8月, 2005 1 次提交
  7. 09 8月, 2005 1 次提交
    • J
      [SCSI] fix target scanning oops with fc transport class · 5c44cd2a
      James.Smart@Emulex.Com 提交于
      We have some nasty issues with 2.6.12-rc6. Any request to scan on
      the lpfc or qla2xxx FC adapters will oops. What is happening is the
      system is defaulting to non-transport registered targets, which
      inherit the parent of the scan. On this second scan, performed by
      the attribute, the parent becomes the shost instead of the rport.
      The slave functions in the 2 FC adapters use starget_to_rport()
      routines, which incorrectly map the shost as an rport pointer.
      
      Additionally, this pointed out other weaknesses:
      - If the target structure is torn down outside of the transport,
        we have no method for it to be regenerated at the proper parent.
      - We have race conditions on the target being allocated by both
        the midlayer scan (parent=shost) and by the fc transport
        (parent=rport).
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      5c44cd2a
  8. 08 8月, 2005 1 次提交
    • J
      [SCSI] add global timeout to the scsi mid-layer · b21a4138
      James Bottomley 提交于
      There are certain rogue devices (and the aic7xxx driver) that return
      BUSY or QUEUE_FULL forever.  This code will apply a global timeout (of
      the total number of retries times the per command timer) to a given
      command.  If it is exceeded, the command is completed regardless of its
      state.
      
      The patch also removes the unused field in the command: timeout and
      timeout_total.
      
      This solves the problem of detecting an endless loop in the mid-layer
      because of BUSY/QUEUE_FULL bouncing, but will not recover the device.
      In the aic7xxx case, the driver can be recovered by sending a bus reset,
      so possibly this should be tied into the error handler?
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      b21a4138
  9. 04 8月, 2005 1 次提交
    • J
      [SCSI] add missing hold_mcs parameter to the spi transport class · d872ebe4
      James Bottomley 提交于
      This parameter is important only to people who take the time to tune the
      margin control settings, otherwise it's completely irrelevant.  However,
      just in case anyone should want to do this, it's appropriate to include
      the parameter.
      
      I don't do anything with it in DV by design, so the parameter will come
      up as off by default, so if anyone actually wants to play with the
      margin control settings they'll have to enable it under the
      spi_transport class first.
      
      I also updated the transfer settings display to report all of the PPR
      settings instead of only DT, IU and QAS
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      d872ebe4
  10. 31 7月, 2005 3 次提交
  11. 15 7月, 2005 1 次提交
  12. 14 7月, 2005 1 次提交
    • J
      [SCSI] add int_to_scsilun() function · 2f4701d8
      James.Smart@Emulex.Com 提交于
      One of the issues we had was reverting the midlayers lun value
      into the 8byte lun value that we wanted to send to the device.
      Historically, there's been some combination of byte swapping,
      setting high/low, etc. There's also been no common thread between
      how our driver did it and others.  I also got very confused as
      to why byteswap routines were being used.
      
      Anyway, this patch is a LLDD-callable function that reverts the
      midlayer's lun value, stored in an int, to the 8-byte quantity
      (note: this is not the real 8byte quantity, just the same amount
      that scsilun_to_int() was able to convert and store originally).
      
      This also solves the dilemma of the thread:
      http://marc.theaimsgroup.com/?l=linux-kernel&m=112116767118981&w=2
      
      A patch for the lpfc driver to use this function will be along
      in a few days (batched with other patches).
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      2f4701d8
  13. 12 7月, 2005 1 次提交
  14. 27 6月, 2005 4 次提交
  15. 26 6月, 2005 1 次提交
  16. 24 6月, 2005 1 次提交
  17. 26 5月, 2005 3 次提交
    • J
      [SCSI] allow the HBA to reserve target and device private areas · c3e9dda4
      James Bottomley 提交于
      This patch basically allows any HBA attached to the SPI transport class
      to declare an extra area which the mid-layer will allocate as part of
      its device and target allocations.
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      c3e9dda4
    • J
      [SCSI] Add target alloc/destroy callbacks to the host template · a283bd37
      James Bottomley 提交于
      This gives the HBA driver notice when a target is created and
      destroyed to allow it to manage its own target based allocations
      accordingly.
      
      This is a much reduced verson of the original patch sent in by
      James.Smart@Emulex.com
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      a283bd37
    • A
      [SCSI] TYPE_RBC cache fixes (sbp2.c affected) · 631e8a13
      Al Viro 提交于
      	a) TYPE_SDAD renamed to TYPE_RBC and taken to scsi.h
      	b) in sbp2.c remapping of TYPE_RPB to TYPE_DISK turned off
      	c) relevant places in midlayer and sd.c taught to accept TYPE_RBC
      	d) sd.c::sd_read_cache_type() looks into page 6 when dealing with
      TYPE_RBC - these guys have writeback cache flag there and are not guaranteed
      to have page 8 at all.
      	e) sd_read_cache_type() got an extra sanity check - it checks that
      it got the page it asked for before using its contents.  And screams if
      mismatch had happened.  Rationale: there are broken devices out there that
      are "helpful" enough to go for "I don't have a page you've asked for, here,
      have another one".  For example, PL3507 had been caught doing just that...
      	f) sbp2 sets sdev->use_10_for_rw and sdev->use_10_for_ms instead
      of bothering to remap READ6/WRITE6/MOD_SENSE, so most of the conversions
      in there are gone now.
      
      	Incidentally, I wonder if USB storage devices that have no
      mode page 8 are simply RBC ones.  I haven't touched that, but it might
      be interesting to check...
      Signed-off-by: NAl Viro <viro@parcelfarce.linux.theplanet.co.uk>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      631e8a13
  18. 21 5月, 2005 2 次提交
  19. 19 4月, 2005 5 次提交
  20. 17 4月, 2005 6 次提交