28 Apr, 2008

25 commits

  • Since

    commit 43cc71eed1250755986da4c0f9898f9a635cb3bf
    Author: Kay Sievers
    Date: Sat Aug 18 04:40:39 2007 +0200

    platform: prefix MODALIAS with "platform:"

    the platform modalias is prefixed with "platform:". Add MODULE_ALIAS()
    to the hotpluggable SCSI platform drivers, to re-enable auto loading.

    [dbrownell@users.sourceforge.net: more drivers, registration fixes]
    [akpm@linux-foundation.org: fix sgiwd93.c]
    Signed-off-by: Kay Sievers
    Signed-off-by: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: James Bottomley

    Kay Sievers
     
  • This patch adds more const keywords where appropriate.

    Signed-off-by: Denys Vlasenko
    Acked-by: Hannes Reinecke
    Signed-off-by: James Bottomley

    Denys Vlasenko
     
  • This patch adds static (and sometimes const) keywords where appropriate.

    Signed-off-by: Denys Vlasenko
    Acked-by: Hannes Reinecke
    Signed-off-by: James Bottomley

    Denys Vlasenko
     
  • Update the precompiled sequencer code to match the latest
    aicasm changes.

    Signed-off-by: Hannes Reinecke
    Signed-off-by: James Bottomley

    Hannes Reinecke
     
  • Add a 'count' variable to each symbol which gets increased every time
    the symbol is referenced. And then modify the register definition to
    include counts for symbols which are referenced from the source code
    only and not from the sequencer code.

    This will give us an automatic usage count for the symbols with only
    minimal hand-crafting.

    Signed-off-by: James Bottomley

    Hannes Reinecke
     
  • Signed-off-by: Andrew Vasquez
    Signed-off-by: James Bottomley

    Andrew Vasquez
     
  • Commit 63a8651f2548c6bb5132c0b4e7dad4f57a9274db ([SCSI] qla2xxx:
    Correct infinite-login-retry issue.) introduced a small
    regression where a successful relogin would result in an fcport's
    loop_id to be incorrectly reset to FC_NO_LOOP_ID. Only clear-out
    loopid, if retries have been 'truly' exhausted.

    Signed-off-by: Andrew Vasquez
    Cc: Stable Tree
    Signed-off-by: James Bottomley

    Andrew Vasquez
     
  • There were several places in the driver which could cause byte
    ordering problem as provided by Al Viro
    .

    Signed-off-by: Seokmann Ju
    Signed-off-by: James Bottomley

    Seokmann Ju
     
  • This patch makes the needlessly global qla2x00_issue_iocb_timeout()
    static.

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Vasquez
    Signed-off-by: James Bottomley

    Adrian Bunk
     
  • This patch makes the following needlessly global functions static:
    - qla2x00_alloc_work()
    - qla2x00_post_work()

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Vasquez
    Signed-off-by: James Bottomley

    Adrian Bunk
     
  • Original code would (incorrectly) only re-register after a
    loop-down condition. Also, FDMI registration should be enabled
    by default.

    Signed-off-by: Andrew Vasquez
    Signed-off-by: James Bottomley

    Andrew Vasquez
     
  • The driver is incorrectly assuming that the 'sp' reference held
    in qla2[x00|4xx]_abort_command() is valid after the mailbox
    command is issued to abort the exchange. It is *not*, as the
    command may be completed during interrupt context before control
    is returned to the mailbox caller.

    Signed-off-by: Andrew Vasquez
    Signed-off-by: James Bottomley

    Andrew Vasquez
     
  • Earlier code could trigger an infinite-retry if 1st invocation
    returned a non-CS_COMPLETE status.

    Signed-off-by: Andrew Vasquez
    Signed-off-by: James Bottomley

    Andrew Vasquez
     
  • Signed-off-by: Andrew Vasquez
    Signed-off-by: James Bottomley

    Andrew Vasquez
     
  • Use the more efficient read-DMA'ble-buffer mailbox commands
    rather than reading a single word/dword at a time. We also
    remove a bulk of the duplicate mailbox command-handling codes in
    favor of more generic read-memory() routines (qla2xxx_dump_ram()
    and qla24xx_dump_ram()).

    Signed-off-by: Andrew Vasquez
    Signed-off-by: James Bottomley

    Andrew Vasquez
     
  • 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
     
  • The new FCP adapter statistics provide a variety of information about
    the virtual adapter (subchannel). In order to collect this information
    the zfcp driver is extended to query this information.

    The information provided by the new FCP adapter statistics can be
    fetched by reading from the following files in the sysfs filesystem

    /sys/class/scsi_host/host/seconds_active
    /sys/class/scsi_host/host/requests
    /sys/class/scsi_host/host/megabytes
    /sys/class/scsi_host/host/utilization

    These are the statistics on a virtual adapter (subchannel) level.

    The information provided is raw and not modified or interpreted by any
    means. No interpretation or modification of the values is done by the
    zfcp driver.

    Signed-off-by: Swen Schillig
    Signed-off-by: Christof Schmitt
    Signed-off-by: James Bottomley

    Swen Schillig
     
  • When statistics are polled from sysfs, the statistics use the same
    commands as the adapter initialization. Change the messages printed
    here, so they are only printed during initialization and not for each
    poll of adapter data.

    Signed-off-by: Swen Schillig
    Signed-off-by: Christof Schmitt
    Signed-off-by: James Bottomley

    Swen Schillig
     
  • When sending a exchange config data command, wait for a free SBAL.
    This does not matter during adapter initialization, but this is
    required for pulling adapter statistics during high I/O load.

    Signed-off-by: Swen Schillig
    Signed-off-by: Christof Schmitt
    Signed-off-by: James Bottomley

    Swen Schillig
     
  • Way back when, when the fc_user_scan routine was created, it kept some
    of its original logic that walked the rport list and kicked off a scan.
    Unfortunately, it didn't keep any of the locking around the rport list,
    nor did it consider the synchronous nature of the scan invoked. The result,
    there are some scan requests where the rport list changes, thus a subsequent
    scan is called on a bogus rport structure and the system NMI's.

    Signed-off-by: James Smart
    Signed-off-by: James Bottomley

    James Smart
     
  • - where the 'irq' function argument is known never to be used, rename
    it to 'dummy' to make this more obvious

    - replace per-irq lookup functions and tables with a direct reference
    to data object obtained via 'dev_id' function argument, passed from
    request_irq()

    Signed-off-by: Jeff Garzik
    Signed-off-by: James Bottomley

    Jeff Garzik
     
  • scsi_transport_spi.c needs to #include :

    next-20080423/drivers/scsi/scsi_transport_spi.c:1467: error: implicit declaration of function 'sysfs_update_group'
    make[3]: *** [drivers/scsi/scsi_transport_spi.o] Error 1

    Signed-off-by: Randy Dunlap
    Signed-off-by: James Bottomley

    Randy Dunlap
     
  • This patch fixes off-by-one errors in error checks (the variables are
    used as array indexes for arrays with MAX_SCSI_TAR resp. MAX_LUN
    elements) spotted by the Coverity checker.

    Signed-off-by: Adrian Bunk
    Signed-off-by: James Bottomley

    Adrian Bunk
     
  • The function type_check() in aicasm grammar code was
    never used properly due to a bug.
    This patch fixes it up and ensures it's only called if appropriate.

    In addition the unused 16bit instruction are disabled, but left in
    the code for reference.

    Signed-off-by: Hannes Reinecke
    Signed-off-by: James Bottomley

    Hannes Reinecke
     
  • We're getting a WARN_ON from SLUB indicating that we're trying to free
    caches with in-use objects. The root cause is a new dependency in the
    command/sense free on unchecked_isa_dma. The WARN_ON is caused by
    drivers which change this in their setup after the command/sense cache
    is allocated.

    The fix is to move the allocation of this cache into scsi_add_host()
    so things like gdth have an opportunity to modify it between alloc and
    add (but *not* after).

    The true fix would be to move unchecked_isa_dma into the template and
    out of the host, so it because a truly read only variable.

    Signed-off-by: James Bottomley

    James Bottomley
     

27 Apr, 2008

1 commit


25 Apr, 2008

1 commit

  • - remove pointless casts from void*

    - remove needless references to 'irq' function argument, when that
    information is already stored somewhere in a driver-private struct.

    - where the 'irq' function argument is known never to be used, rename
    it to 'dummy' to make this more obvious

    - remove always-false tests for dev_id==NULL

    - remove always-true tests for 'irq == host_struct->irq'

    - replace per-irq lookup functions and tables with a direct reference
    to data object obtained via 'dev_id' function argument, passed from
    request_irq()

    This change's main purpose is to prepare for the patchset in
    jgarzik/misc-2.6.git#irq-remove, that explores removal of the
    never-used 'irq' argument in each interrupt handler.

    Signed-off-by: Jeff Garzik
    Signed-off-by: James Bottomley

    Jeff Garzik
     

24 Apr, 2008

3 commits

  • The driver stores the PCI resource address into 'u_long' variable before
    calling ioremap_nocache() on it. This warrants kernel oops when the registers
    are accessed on PPC 44x platforms which (being 32-bit) have PCI memory space
    mapped beyond 4 GB.

    The arch/ppc/ kernel has a fixup in ioremap() that helps create an illusion
    that the PCI memory resources are mapped below 4 GB, but arch/powerpc/ code
    got rid of this trick, having instead CONFIG_RESOURCES_64BIT enabled.

    Signed-off-by: Sergei Shtylyov
    Signed-off-by: James Bottomley

    Sergei Shtylyov
     
  • The driver stores the PCI resource address into 'u_long' variable before
    calling ioremap_nocache() on it. This warrants kernel oops when the registers
    are accessed on PPC 44x platforms which (being 32-bit) have PCI memory space
    mapped beyond 4 GB.

    The arch/ppc/ kernel has a fixup in ioremap() that helps create an illusion
    that the PCI memory resources are mapped below 4 GB, but arch/powerpc/ code
    got rid of this trick, having instead CONFIG_RESOURCES_64BIT enabled.

    Signed-off-by: Sergei Shtylyov
    Signed-off-by: James Bottomley

    Sergei Shtylyov
     
  • Deinlines and moves big functions from .h to .c files.
    Adds prototypes for ahc_lookup_scb and ahd_lookup_scb to .h files.

    Signed-off-by: Denys Vlasenko
    Signed-off-by: James Bottomley

    Denys Vlasenko
     

23 Apr, 2008

10 commits

  • scsi_transport_sas calls blk_cleanup_queue too early for bsg
    queues. If a user holds a sas_host, end_device, or expander device
    open, remove the device, then send a request to it, we get a kernel
    crash. We need to call blk_cleanup_queue in the release callback as we
    do with scsi devices.

    This patch moves blk_cleanup_queue to sas_expander_release and
    sas_end_device_release from sas_bsg_remove. sas_host can't use the
    release callback in struct device so use bsg's release callback.

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

    FUJITA Tomonori
     
  • This patch adds release callback support, which is called when a bsg
    device goes away. bsg_register_queue() takes a pointer to a callback
    function. This feature is useful for stuff like sas_host that can't
    use the release callback in struct device.

    If a caller doesn't need bsg's release callback, it can call
    bsg_register_queue() with NULL pointer (e.g. scsi devices can use
    release callback in struct device so they don't need bsg's callback).

    With this patch, bsg uses kref for refcounts on bsg devices instead of
    get/put_device in fops->open/release. bsg calls put_device and the
    caller's release callback (if it was registered) in kref_put's
    release.

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

    FUJITA Tomonori
     
  • The current target allocation code registeres each possible target
    with sysfs; it will be deleted again if no useable LUN on this target
    was found. This results in a string of 'target add/target remove' uevents.

    Based on a patch by Hannes Reinecke this patch reworks
    the target allocation code so that only uevents for existing targets
    are sent. The sysfs registration is split off from the existing
    scsi_target_alloc() into a in a new scsi_add_target() function, which
    should be called whenever an existing target is found. Only then a
    uevent is sent, so we'll be generating events for existing targets
    only.

    Signed-off-by: James Bottomley

    James Bottomley
     
  • This patch removes the unused sysfs attibute overwriting logic for
    the scsi host attibutes, and plugs them into the driver core default
    attribute creation.

    Signed-off-by: Hannes Reinecke
    Signed-off-by: Kay Sievers
    Signed-off-by: James Bottomley

    Hannes Reinecke
     
  • We now take advantage of the mode_t return of is_valid, and also
    update the attributes when the target is configured.

    Signed-off-by: James Bottomley

    James Bottomley
     
  • We have a problem in scsi_transport_spi in that we need to customise
    not only the visibility of the attributes, but also their mode. Fix
    this by making the is_visible() callback return a mode, with 0
    indicating is not visible.

    Also add a sysfs_update_group() API to allow us to change either the
    visibility or mode of the files at any time on the fly.

    Acked-by: Kay Sievers
    Signed-off-by: James Bottomley

    James Bottomley
     
  • lpfc and qla2xxx overwrite the standard 'state' attribute with
    custom callbacks. So rename the custom attributes to 'link_state'
    and retain the original meaning of the 'state' attribute.

    Signed-off-by: Hannes Reinecke
    Acked-by: Andrew Vasquez
    Acked-by: James Smart
    Signed-off-by: James Bottomley

    Hannes Reinecke
     
  • This patch implements scsi_host and scsi_target device types
    and adds both to the scsi_bus.

    Signed-off-by: Hannes Reinecke
    Signed-off-by: Kay Sievers
    Signed-off-by: James Bottomley

    Hannes Reinecke
     
  • ses uses an unusual two level class hierarchy which broke in this
    conversion. Fix it up still with a two level hierarchy, but this time
    let the ses device manage the links to and from the real device in the
    enclosure.

    Signed-off-by: James Bottomley

    James Bottomley
     
  • There's a change in the SCSI tree that adds another class_device, so change
    it to an ordinary device

    [jejb: this one got rebased until it's basically cosmetic only]

    Cc: Kai Makisara
    Signed-off-by: James Bottomley

    James Bottomley