1. 25 Nov, 2006 1 commit
  2. 11 Oct, 2006 1 commit
    • Matthew Wilcox's avatar
      [SCSI] Add ability to scan scsi busses asynchronously · 3e082a91
      Matthew Wilcox authored
      
      
      Since it often takes around 20-30 seconds to scan a scsi bus, it's
      highly advantageous to do this in parallel with other things.  The bulk
      of this patch is ensuring that devices don't change numbering, and that
      all devices are discovered prior to trying to start init.  For those
      who build SCSI as modules, there's a new scsi_wait_scan module that will
      ensure all bus scans are finished.
      
      This patch only handles drivers which call scsi_scan_host.  Fibre Channel,
      SAS, SATA, USB and Firewire all need additional work.
      Signed-off-by: default avatarMatthew Wilcox <matthew@wil.cx>
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
      3e082a91
  3. 04 Oct, 2006 1 commit
  4. 02 Sep, 2006 2 commits
    • James Smart's avatar
      [SCSI] SCSI and FC Transport: add netlink support for posting of transport events · 84314fd4
      James Smart authored
      This patch formally adds support for the posting of FC events via netlink.
      It is a followup to the original RFC at:
        http://marc.theaimsgroup.com/?l=linux-scsi&m=114530667923464&w=2
      and the initial posting at:
        http://marc.theaimsgroup.com/?l=linux-scsi&m=115507374832500&w=2
      
      The patch has been updated to optimize the send path, per the discussions
      in the initial posting.
      
      Per discussions at the Storage Summit and at OLS, we are to use netlink for
      async events from transports. Also per discussions, to avoid a netlink
      protocol per transport, I've create a single NETLINK_SCSITRANSPORT protocol,
      which can then be used by all transports.
      
      This patch:
      - Creates new files scsi_netlink.c and scsi_netlink.h, which contains the
        single and shared definitions for the SCSI Transport. It is tied into the
        base SCSI subsystem intialization.
        Contains a single interface routine, scsi_send_transport_event(), for a
        transport to send an event (via multicast to a protocol specific group).
      - Creates a new scsi_netlink_fc.h file, which contains the FC netlink event
        messages
      - Adds 3 new routines to the fc transport:
         fc_get_event_number() -  to get a FC event #
         fc_host_post_event()  -  to send a simple FC event (32 bits of data)
         fc_host_post_vendor_event() - to send a Vendor unique event, with
                                       arbitrary amounts of data.
      
         Note: the separation of event number allows for a LLD to send a standard
           event, followed by vendor-specific data for the event.
      
      Note: This patch assumes 2 prior fc transport patches have been installed:
         http://marc.theaimsgroup.com/?l=linux-scsi&m=115555807316329&w=2
         http://marc.theaimsgroup.com/?l=linux-scsi&m=115581614930261&w=2
      
      
      
         Sorry - next time I'll do something like making these individual
         patches of the same posting when I know they'll be posted closely
         together.
      Signed-off-by: default avatarJames Smart <James.Smart@emulex.com>
      
      Tidy up configuration not to make SCSI always select NET
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
      84314fd4
    • Jeff Garzik's avatar
      [SCSI] Add Promise SuperTrak driver · 5a25ba16
      Jeff Garzik authored
      
      
      Add Promise SuperTrak 'stex' driver, supporting SuperTrak
      EX8350/8300/16350/16300 controllers.  The controller's firmware accepts
      SCSI commands, handing them to the underlying RAID or JBOD disks.
      
      The driver consisted of the following cleanups and fixes, beyond its
      initial submission:
      
      Ed Lin:
            stex: cleanup and minor fixes
            stex: add new device ids
            stex: update internal copy code path
            stex: add hard reset function
            stex: adjust command timeout in slave_config routine
            stex: use more efficient method for unload/shutdown flush
      
      Jeff Garzik:
            [SCSI] Add Promise SuperTrak 'shasta' driver.
            Rename drivers/scsi/shasta.c to stex.c ("SuperTrak EX").
            [SCSI] stex: update with community comments from 'Promise SuperTrak' thread
            [SCSI] stex: Fix warning, trim trailing whitespace.
            [SCSI] stex: remove last remnants of "shasta" project code name
            [SCSI] stex: removed 6-byte command emulation
            [SCSI] stex: minor cleanups
            [SCSI] stex: minor fixes: irq flag, error return value
            [SCSI] stex: use dma_alloc_coherent()
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
      5a25ba16
  5. 29 Aug, 2006 1 commit
    • James Bottomley's avatar
      [SCSI] aic94xx: new driver · 2908d778
      James Bottomley authored
      
      
      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: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
      2908d778
  6. 10 Aug, 2006 1 commit
  7. 28 Jul, 2006 1 commit
  8. 22 Jun, 2006 1 commit
  9. 10 Jun, 2006 1 commit
    • HighPoint Linux Team's avatar
      [SCSI] hptiop: HighPoint RocketRAID 3xxx controller driver · ede1e6f8
      HighPoint Linux Team authored
      
      
      HighPoint RocketRAID 3220/3320 series 8 channel PCI-X SATA RAID Host
      Adapters.
      
      Fixes from original submission:
      
      Merge Andrew Morton's patches:
      - Provide locking for global list
      - Fix debug printks
      - uninline function with multiple callsites
      - coding style fixups
      - remove unneeded casts of void*
      - kfree(NULL) is legal
      - Don't "succeed" if register_chrdev() failed - otherwise we'll later
        unregister a not-registered chrdev.
      - Don't return from hptiop_do_ioctl() with the spinlock held.
      - uninline __hpt_do_ioctl()
      
      Update for Arjan van de Ven's comments:
      - put all asm/ includes after the linux/ ones
      - replace mdelay with msleep
      - add pci posting flush
      - do not set pci command reqister in map_pci_bar
      - do not try merging sg elements in hptiop_buildsgl()
      - remove unused outstandingcommands member from hba structure
      - remove unimplemented hptiop_abort() handler
      - remove typedef u32 hpt_id_t
      
      Other updates:
      - fix endianess
      Signed-off-by: default avatarHighPoint Linux Team <linux@highpoint-tech.com>
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
      ede1e6f8
  10. 14 Apr, 2006 1 commit
    • Mike Christie's avatar
      [SCSI] iscsi: add libiscsi · 7996a778
      Mike Christie authored
      
      
      There is a lot of code duplcited between iscsi_tcp
      and the upcoming iscsi_iser driver. This patch puts
      the duplicated code in a lib. There is more code
      to move around but this takes care of the
      basics. For iscsi_offload if they use the lib we will
      probably move some things around. For example in the
      queuecommand we will not assume that the LLD wants
      to do queue_work, but it is better to handle that
      later when we know for sure what iscsi_offload looks
      like (we could probably do this for iscsi_iser though to).
      
      Ideally I would like to get the iscsi_transports modules
      to a place where all they really have to do is put data
      on the wire, but how to do that will hopefully be more clear
      when we see other modules like iscsi_offload. Or maybe
      iscsi_offload will not use the lib and it will just be
      iscsi_iser and iscsi_tcp and maybe the iscsi_tcp_tgt if that
      is allowed in mainline.
      Signed-off-by: default avatarMike Christie <michaelc@cs.wisc.edu>
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
      7996a778
  11. 13 Apr, 2006 1 commit
  12. 02 Apr, 2006 1 commit
  13. 23 Mar, 2006 1 commit
  14. 09 Feb, 2006 1 commit
  15. 12 Jan, 2006 2 commits
  16. 06 Nov, 2005 1 commit
  17. 29 Oct, 2005 1 commit
  18. 10 Oct, 2005 1 commit
  19. 26 Sep, 2005 1 commit
  20. 09 Sep, 2005 1 commit
    • Christoph Hellwig's avatar
      [SCSI] SAS transport class · c7ebbbce
      Christoph Hellwig authored
      
      
      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: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
      c7ebbbce
  21. 07 Sep, 2005 1 commit
  22. 31 Aug, 2005 1 commit
    • James Bottomley's avatar
      [SCSI] embryonic RAID class · 61a7afa2
      James Bottomley authored
      
      
      The idea behind a RAID class is to provide a uniform interface to all
      RAID subsystems (both hardware and software) in the kernel.
      
      To do that, I've made this class a transport class that's entirely
      subsystem independent (although the matching routines have to match per
      subsystem, as you'll see looking at the code).  I put it in the scsi
      subdirectory purely because I needed somewhere to play with it, but it's
      not a scsi specific module.
      
      I used a fusion raid card as the test bed for this; with that kind of
      card, this is the type of class output you get:
      
      jejb@titanic> ls -l /sys/class/raid_devices/20\:0\:0\:0/
      total 0
      lrwxrwxrwx  1 root root     0 Aug 16 17:21 component-0 -> ../../../devices/pci0000:80/0000:80:04.0/host20/target20:1:0/20:1:0:0/
      lrwxrwxrwx  1 root root     0 Aug 16 17:21 component-1 -> ../../../devices/pci0000:80/0000:80:04.0/host20/target20:1:1/20:1:1:0/
      lrwxrwxrwx  1 root root     0 Aug 16 17:21 device -> ../../../devices/pci0000:80/0000:80:04.0/host20/target20:0:0/20:0:0:0/
      -r--r--r--  1 root root 16384 Aug 16 17:21 level
      -r--r--r--  1 root root 16384 Aug 16 17:21 resync
      -r--r--r--  1 root root 16384 Aug 16 17:21 state
      
      So it's really simple: for a SCSI device representing a hardware raid,
      it shows the raid level, the array state, the resync % complete (if the
      state is resyncing) and the underlying components of the RAID (these are
      exposed in fusion on the virtual channel 1).
      
      As you can see, this type of information can be exported by almost
      anything, including software raid.
      
      The more difficult trick, of course, is going to be getting it to
      perform configuration type actions with writable attributes.
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
      61a7afa2
  23. 06 Aug, 2005 1 commit
  24. 28 Jul, 2005 1 commit
  25. 20 May, 2005 2 commits
  26. 18 Apr, 2005 1 commit
  27. 16 Apr, 2005 1 commit
    • Linus Torvalds's avatar
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds authored
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4