1. 25 Nov, 2006 1 commit
  2. 22 Nov, 2006 2 commits
  3. 04 Oct, 2006 1 commit
  4. 03 Oct, 2006 2 commits
  5. 30 Sep, 2006 1 commit
    • David Howells's avatar
      [PATCH] BLOCK: Make it possible to disable the block layer [try #6] · 9361401e
      David Howells authored
      Make it possible to disable the block layer.  Not all embedded devices require
      it, some can make do with just JFFS2, NFS, ramfs, etc - none of which require
      the block layer to be present.
      This patch does the following:
       (*) Introduces CONFIG_BLOCK to disable the block layer, buffering and blockdev
       (*) Adds dependencies on CONFIG_BLOCK to any configuration item that controls
           an item that uses the block layer.  This includes:
           (*) Block I/O tracing.
           (*) Disk partition code.
           (*) All filesystems that are block based, eg: Ext3, ReiserFS, ISOFS.
           (*) The SCSI layer.  As far as I can tell, even SCSI chardevs use the
           	 block layer to do scheduling.  Some drivers that use SCSI facilities -
           	 such as USB storage - end up disabled indirectly from this.
           (*) Various block-based device drivers, such as IDE and the old CDROM
           (*) MTD blockdev handling and FTL.
           (*) JFFS - which uses set_bdev_super(), something it could avoid doing by
           	 taking a leaf out of JFFS2's book.
       (*) Makes most of the contents of linux/blkdev.h, linux/buffer_head.h and
           linux/elevator.h contingent on CONFIG_BLOCK being set.  sector_div() is,
           however, still used in places, and so is still available.
       (*) Also made contingent are the contents of linux/mpage.h, linux/genhd.h and
           parts of linux/fs.h.
       (*) Makes a number of files in fs/ contingent on CONFIG_BLOCK.
       (*) Makes mm/bounce.c (bounce buffering) contingent on CONFIG_BLOCK.
       (*) set_page_dirty() doesn't call __set_page_dirty_buffers() if CONFIG_BLOCK
           is not enabled.
       (*) fs/no-block.c is created to hold out-of-line stubs and things that are
           required when CONFIG_BLOCK is not set:
           (*) Default blockdev file operations (to give error ENODEV on opening).
       (*) Makes some /proc changes:
           (*) /proc/devices does not list any blockdevs.
           (*) /proc/diskstats and /proc/partitions are contingent on CONFIG_BLOCK.
       (*) Makes some compat ioctl handling contingent on CONFIG_BLOCK.
       (*) If CONFIG_BLOCK is not defined, makes sys_quotactl() return -ENODEV if
           given command other than Q_SYNC or if a special device is specified.
       (*) In init/do_mounts.c, no reference is made to the blockdev routines if
           CONFIG_BLOCK is not defined.  This does not prohibit NFS roots or JFFS2.
       (*) The bdflush, ioprio_set and ioprio_get syscalls can now be absent (return
           error ENOSYS by way of cond_syscall if so).
       (*) The seclvl_bd_claim() and seclvl_bd_release() security calls do nothing if
           CONFIG_BLOCK is not set, since they can't then happen.
      Signed-Off-By: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
  6. 26 Sep, 2006 2 commits
  7. 07 Sep, 2006 1 commit
  8. 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:
      and the initial posting at:
      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
      - 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:
         Sorry - next time I'll do something like making these individual
         patches of the same posting when I know they'll be posted closely
      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>
    • 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>
  9. 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
      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>
  10. 10 Aug, 2006 1 commit
  11. 28 Jul, 2006 1 commit
  12. 27 Jun, 2006 1 commit
  13. 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
      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>
  14. 09 Jun, 2006 1 commit
  15. 29 Apr, 2006 1 commit
  16. 13 Apr, 2006 2 commits
  17. 22 Mar, 2006 1 commit
  18. 20 Mar, 2006 1 commit
  19. 06 Jan, 2006 2 commits
  20. 16 Dec, 2005 1 commit
  21. 12 Nov, 2005 1 commit
  22. 06 Nov, 2005 1 commit
  23. 29 Oct, 2005 1 commit
  24. 17 Oct, 2005 1 commit
  25. 10 Oct, 2005 1 commit
  26. 09 Sep, 2005 2 commits
    • James Bottomley's avatar
      [SCSI] move iscsi to a better place in Kconfig · 96bad874
      James Bottomley authored
      Now it looks like we'll have multiple users of the iscsi transport
      class, the iscsi initiator shouldn't really be a dependency of it.  This
      patch moves iscsi to being an initiator in its own right which selects
      the transport attributes.
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
    • 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
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
  27. 07 Sep, 2005 1 commit
  28. 05 Sep, 2005 1 commit
  29. 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>
  30. 24 Aug, 2005 1 commit
  31. 06 Aug, 2005 1 commit
  32. 31 Jul, 2005 1 commit
    • Adrian Bunk's avatar
      [PATCH] SCSI_SATA has to be a tristate · faa72533
      Adrian Bunk authored
      SCSI=m must disallow static drivers.
      The problem is that all the SATA drivers depend on SCSI_SATA.
      With SCSI=m and SCSI_SATA=y this allows the static enabling of the SATA
      drivers with unwanted effects, e.g.:
        -> SCSI_ATA_ADMA is built statically but scsi/built-in.o is not linked
           into the kernel
        -> SCSI_ATA_ADMA and libata are built statically but
           scsi/built-in.o is not linked into the kernel,
           SCSI_SATA_AHCI is built modular (unresolved symbols due to missing
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      Cc: Jeff Garzik <jgarzik@pobox.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
  33. 28 Jul, 2005 1 commit