27 Jul, 2008

1 commit

  • Support for controllers and disks that implement DIF protection
    information:

    - During command preparation the RDPROTECT/WRPROTECT must be set
    correctly if the target has DIF enabled.

    - READ(6) and WRITE(6) are not supported when DIF is on.

    - The controller must be told how to handle the I/O via the
    protection operation field in scsi_cmnd.

    - Refactor the I/O completion code that extracts failed LBA from the
    returned sense data and handle DIF failures correctly.

    - sd_dif.c implements the functions required to prepare and complete
    requests with protection information attached.

    Signed-off-by: Martin K. Petersen
    Signed-off-by: James Bottomley

    Martin K. Petersen
     

12 Jul, 2008

1 commit


05 Jun, 2008

1 commit

  • Some of the storage devices (that can be accessed through multiple paths),
    do need some special handling for
    1. Activating the passive path of the storage access.
    2. Decode and handle the special sense codes returned by the devices.
    3. Handle the I/Os being sent to the passive path, especially
    during the device probe time.
    when accessed through multiple paths.

    As of today this special device handling is done at the dm-multipath
    layer using dm-handlers. That works well for (1); for (2) to be handled
    at dm layer, scsi sense information need to be exported from SCSI to dm-layer,
    which is not very attractive; (3) cannot be done at all at the dm layer.

    Device handler has been moved to SCSI mainly to handle (2) and (3) properly.

    Signed-off-by: Chandra Seetharaman
    Signed-off-by: Mike Anderson
    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Chandra Seetharaman
     

28 Apr, 2008

1 commit

  • Replace the mac_esp driver with a new one based on the esp_scsi core.

    For esp_scsi: add support for sync transfers for the PIO mode, add a new
    esp_driver_ops method to get the maximum dma transfer size (like the old
    NCR53C9x driver), and some cleanups.

    Signed-off-by: Finn Thain
    Acked-by: David S. Miller
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: James Bottomley

    Finn Thain
     

23 Feb, 2008

1 commit


08 Feb, 2008

5 commits

  • This adds support to SCSI for enclosure services devices. It also makes
    use of the enclosure services added in an earlier patch to display the
    enclosure topology in sysfs.

    At the moment, the enclosures are SAS specific, but if anyone actually
    has a non-SAS enclosure that follows the SES-2 standard, we can add that
    as well.

    On my Vitesse based system, the enclosures show up like this:

    sparkweed:~# ls -l /sys/class/enclosure/0\:0\:1\:0/
    total 0
    -r--r--r-- 1 root root 4096 2008-02-03 15:44 components
    lrwxrwxrwx 1 root root 0 2008-02-03 15:44 device -> ../../../devices/pci0000:01/0000:01:02.0/host0/port-0:0/expander-0:0/port-0:0:12/end_device-0:0:12/target0:0:1/0:0:1:0
    drwxr-xr-x 2 root root 0 2008-02-03 15:44 SLOT 000
    drwxr-xr-x 2 root root 0 2008-02-03 15:44 SLOT 001
    drwxr-xr-x 2 root root 0 2008-02-03 15:44 SLOT 002
    drwxr-xr-x 2 root root 0 2008-02-03 15:44 SLOT 003
    drwxr-xr-x 2 root root 0 2008-02-03 15:44 SLOT 004
    drwxr-xr-x 2 root root 0 2008-02-03 15:44 SLOT 005
    lrwxrwxrwx 1 root root 0 2008-02-03 15:44 subsystem -> ../../enclosure
    --w------- 1 root root 4096 2008-02-03 15:44 uevent

    And the individual occupied slots like this:

    sparkweed:~# ls -l /sys/class/enclosure/0\:0\:1\:0/SLOT\ 001/
    total 0
    -rw-r--r-- 1 root root 4096 2008-02-03 15:45 active
    lrwxrwxrwx 1 root root 0 2008-02-03 15:45 device -> ../../../../devices/pci0000:01/0000:01:02.0/host0/port-0:0/expander-0:0/port-0:0:11/end_device-0:0:11/target0:0:0/0:0:0:0
    -rw-r--r-- 1 root root 4096 2008-02-03 15:45 fault
    -rw-r--r-- 1 root root 4096 2008-02-03 15:45 locate
    -rw-r--r-- 1 root root 4096 2008-02-03 15:45 status
    lrwxrwxrwx 1 root root 0 2008-02-03 15:45 subsystem -> ../../../enclosure_component
    -r--r--r-- 1 root root 4096 2008-02-03 15:45 type
    --w------- 1 root root 4096 2008-02-03 15:45 uevent

    You can flash the various blinky lights by echoing to the fault and locate files.

    >From the device's point of view, you can see it has an enclosure like this:

    sparkweed:~# ls /sys/class/scsi_disk/0\:0\:0\:0/device/
    block:sda generic queue_depth state
    bsg:0:0:0:0 iocounterbits queue_type subsystem
    bus iodone_cnt rescan timeout
    delete ioerr_cnt rev type
    device_blocked iorequest_cnt scsi_device:0:0:0:0 uevent
    driver modalias scsi_disk:0:0:0:0 vendor
    enclosure_component:SLOT 001 model scsi_generic:sg0
    evt_media_change power scsi_level

    Note the enclosure_component:SLOT 001 which shows where in the enclosure
    this device fits.

    The astute will notice that I'm using SCSI VPD Inquiries to identify the
    devices. This, unfortunately, won't work for SATA devices unless we do
    some really nasty hacking about on the SAT because the only think that
    knows the SAS addresses for SATA devices is libsas, not libata where the
    SAT resides.

    Signed-off-by: James Bottomley

    James Bottomley
     
  • These drivers depend on the deprecated NCR53C9X core and need to be converted
    to the esp_scsi core.

    Acked-by: Boaz Harrosh
    Cc: Linux/m68k
    Signed-off-by: James Bottomley

    James Bottomley
     
  • This driver depends on the deprecated NCR53C9X core and needs to be converted
    to the esp_scsi core.

    Acked-by: Boaz Harrosh
    Cc: "Maciej W. Rozycki"
    Signed-off-by: James Bottomley

    James Bottomley
     
  • This driver depends on the deprecated NCR53C9X core and needs to be converted
    to the esp_scsi core.

    Acked-by: Boaz Harrosh
    Signed-off-by: James Bottomley

    James Bottomley
     
  • Converted sun3x_esp driver to use esp_scsi.c

    Signed-off-by: Thomas Bogendoerfer
    Signed-off-by: James Bottomley

    Thomas Bogendoerfer
     

12 Jan, 2008

3 commits

  • subdir-y|m isn't supposed to contain modules or built-in components.
    Change subdir-$(CONFIG_PCMCIA) to obj-$(CONFIG_PCMCIA).

    Signed-off-by: Tejun Heo
    Acked-by: Sam Ravnborg
    Signed-off-by: James Bottomley

    Tejun Heo
     
  • - Apparently no one wonts this driver, and no one
    is willing to fix it for future changes to SCSI.
    So remove it, and if someone wants it in the future
    He can revive it with the needed fixes.

    Signed-off-by: Boaz Harrosh
    Signed-off-by: James Bottomley

    Boaz Harrosh
     
  • The psi240i driver is still written for cmnd->request_buffer
    as a char pointer to actual data. There was never any attempt
    to use the scatterlist option.

    - remove all source files (3) from drivers/scsi
    - Remove from Makefile and Kconfig

    Signed-off-by: Boaz Harrosh
    Signed-off-by: James Bottomley

    Boaz Harrosh
     

18 Oct, 2007

1 commit

  • This code has been slowly rotting for about eight years. It's currently
    impeding a few SCSI cleanups, and nobody seems to have hardware to test
    it any more. I talked to Dave Miller about it, and he agrees we can
    delete it. If anyone wants a software FC stack in future, they can
    retrieve this driver from git.

    Signed-off-by: Matthew Wilcox
    Acked-by: David S. Miller
    Signed-off-by: James Bottomley

    Matthew Wilcox
     

13 Oct, 2007

1 commit

  • This adds srp transport class that works with ib_srp and ibmvscsi.

    It creates only /sys/class/{srp_host,srp_remote_ports} and
    srp_remote_ports has only "port_id" attribute.

    viola:/sys/class/srp_remote_ports/port-0:1# ls
    device port_id subsystem uevent
    viola:/sys/class/srp_remote_ports/port-0:1# cat port_id
    4c:49:4e:55:58:20:56:49:4f:00:00:00:00:00:00:00

    Signed-off-by: FUJITA Tomonori
    Signed-off-by: James Bottomley

    FUJITA Tomonori
     

22 Jul, 2007

1 commit

  • Add a BD/DVD/CD-ROM Storage Driver for the PS3:
    - Implemented as a SCSI device driver
    - Uses software scatter-gather with a 64 KiB bounce buffer as the hypervisor
    doesn't support scatter-gather

    Cc: Geoff Levand
    Signed-off-by: Geert Uytterhoeven
    Cc: Jens Axboe
    Cc: James Bottomley
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     

15 Jul, 2007

2 commits

  • With

    dma-mapping-prevent-dma-dependent-code-from-linking-on.patch

    scsi fails to build on !HAS_DMA architectures:

    drivers/built-in.o(.text+0x20af6): In function `scsi_dma_map':
    : undefined reference to `dma_map_sg'
    drivers/built-in.o(.text+0x20b5c): In function `scsi_dma_unmap':
    : undefined reference to `dma_unmap_sg'

    I split those functions out into a new file. Builds on s390 and i386.

    Move scsi_dma_{map,unmap} into scsi_lib_dma.c which is only build if
    HAS_DMA is set.

    Signed-off-by: Cornelia Huck
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Cc: James Bottomley
    Cc: Jeff Garzik
    Cc: Christoph Hellwig
    Cc: Dan Williams
    Signed-off-by: Andrew Morton
    Signed-off-by: James Bottomley

    Cornelia Huck
     
  • CONFIG_SCSI_FD_8xx no longer exists.

    Apparently it was renamed to CONFIG_SCSI_SEAGATE, but the Makefile was
    not correctly updated.

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: James Bottomley

    Geert Uytterhoeven
     

18 Jun, 2007

4 commits


31 May, 2007

1 commit


29 May, 2007

2 commits


28 May, 2007

1 commit

  • It's been more than enough time now to try to get the new m68k drivers
    into the tree. Let's remove the old ones and we can remerge the new
    glue once it's ready. Given that there are patches to rename two out
    of the three drivers in m68k CVS and all of them need a lot of
    codingstyle love anyway that's probably the better strategy to begin
    with.

    Signed-off-by: Christoph Hellwig
    Cc: Geert Uytterhoeven
    Cc: Kars de Jong
    Cc: linux-m68k@vger.kernel.org
    Signed-off-by: James Bottomley

    Christoph Hellwig
     

23 May, 2007

1 commit


06 May, 2007

1 commit

  • * master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (87 commits)
    [SCSI] fusion: fix domain validation loops
    [SCSI] qla2xxx: fix regression on sparc64
    [SCSI] modalias for scsi devices
    [SCSI] sg: cap reserved_size values at max_sectors
    [SCSI] BusLogic: stop using check_region
    [SCSI] tgt: fix rdma transfer bugs
    [SCSI] aacraid: fix aacraid not finding device
    [SCSI] aacraid: Correct SMC products in aacraid.txt
    [SCSI] scsi_error.c: Add EH Start Unit retry
    [SCSI] aacraid: [Fastboot] Panics for AACRAID driver during 'insmod' for kexec test.
    [SCSI] ipr: Driver version to 2.3.2
    [SCSI] ipr: Faster sg list fetch
    [SCSI] ipr: Return better qc_issue errors
    [SCSI] ipr: Disrupt device error
    [SCSI] ipr: Improve async error logging level control
    [SCSI] ipr: PCI unblock config access fix
    [SCSI] ipr: Fix for oops following SATA request sense
    [SCSI] ipr: Log error for SAS dual path switch
    [SCSI] ipr: Enable logging of debug error data for all devices
    [SCSI] ipr: Add new PCI-E IDs to device table
    ...

    Linus Torvalds
     

27 Apr, 2007

1 commit

  • Major features:

    1) Tagged queuing support.
    2) Will properly negotiate for synchronous transfers even on
    devices that reject the wide negotiation message, such as
    CDROMs
    3) Significantly lower kernel stack usage in interrupt
    handler path by elimination of function vector arrays,
    replaced by a top-level switch statement state machine.
    4) Uses generic scsi infrastructure as much as possible to
    avoid code duplication.
    5) Automatic request of sense data in response to CHECK_CONDITION
    6) Portable to other platforms using ESP such as DEC and Sun3
    systems.

    Signed-off-by: David S. Miller

    David S. Miller
     

20 Mar, 2007

1 commit

  • Currently scsi_wait_scan is only built modular if SCSI is modular.
    However, it's perfectly possible for a built in SCSI still to have
    modular drivers and thus need scsi_wait_scan as a module. Therefore,
    scsi_wait_scan should always be built as a module (unless the kernel
    doesn't support modules).

    Signed-off-by: James Bottomley

    James Bottomley
     

14 Jan, 2007

1 commit


03 Dec, 2006

2 commits


26 Nov, 2006

1 commit


12 Oct, 2006

1 commit

  • 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: Matthew Wilcox
    Signed-off-by: James Bottomley

    Matthew Wilcox
     

05 Oct, 2006

1 commit


24 Sep, 2006

1 commit


03 Sep, 2006

2 commits

  • 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: James Smart

    Tidy up configuration not to make SCSI always select NET

    Signed-off-by: James Bottomley

    James Smart
     
  • 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: Jeff Garzik
    Signed-off-by: James Bottomley

    Jeff Garzik
     

29 Aug, 2006

1 commit

  • 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: James Bottomley

    James Bottomley