16 Aug, 2008

7 commits

  • Bump driver version to 1.0.2.

    Signed-off-by: Brian King
    Signed-off-by: James Bottomley

    Brian King
     
  • When logging async events, also print the payload in addition to the
    event received.

    Signed-off-by: Brian King
    Signed-off-by: James Bottomley

    Brian King
     
  • Sanitize the response lengths in order to prevent possible oopses
    in the command response path.

    Signed-off-by: Brian King
    Signed-off-by: James Bottomley

    Brian King
     
  • If the client virtual fibre channel adapter is already logged into the
    server and does an NPIV Login again, the async queue, which is used for
    reporting Link Up/Link Down type of events, does not get reset on the
    server side. Fix up the client driver so that we also do not reset it.
    This fixes a problem of lost async events following relogins.

    Signed-off-by: Brian King
    Signed-off-by: James Bottomley

    Brian King
     
  • If an ELS is received while the virtual fibre channel adapter is going
    through its discovery, a flag is set which causes discovery to get
    re-driven. However, the hosts's state does not get set back to
    IBMVFC_INITIALIZING and scsi_block_requests does not get called again,
    which can result in queuecommand ops getting sent during
    discovery. This should not occur and may cause problems. One example
    is that we may no longer be logged into the target we send the command
    to, resulting in a failure which should not have occurred.

    Signed-off-by: Brian King
    Signed-off-by: James Bottomley

    Brian King
     
  • This fixes a hang on module removal. The module removal code was setting
    the hosts's state to IBMVFC_HOST_OFFLINE before tearing down the kernel
    thread, but, due to a bug in ibmvfc_wait_while_resetting, was not waiting
    for the kernel thread's offlining work to be done prior to destroying
    the kernel thread, which left the scsi host in a blocked state which we
    never got out of.

    Signed-off-by: Brian King
    Signed-off-by: James Bottomley

    Brian King
     
  • When running ibmvscsi in a shared memory partition, it must provide
    a default value for the amount of DMA resources it will need in order to
    perform reasonably well. This was being calculated in sectors rather than
    bytes, as it should. This patch fixes this.

    Signed-off-by: Brian King
    Signed-off-by: James Bottomley

    Brian King
     

28 Jul, 2008

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (59 commits)
    [SCSI] replace __FUNCTION__ with __func__
    [SCSI] extend the last_sector_bug flag to cover more sectors
    [SCSI] qla2xxx: Update version number to 8.02.01-k6.
    [SCSI] qla2xxx: Additional NPIV corrections.
    [SCSI] qla2xxx: suppress uninitialized-var warning
    [SCSI] qla2xxx: use memory_read_from_buffer()
    [SCSI] qla2xxx: Issue proper ISP callbacks during stop-firmware.
    [SCSI] ch: fix ch_remove oops
    [SCSI] 3w-9xxx: add MSI support and misc fixes
    [SCSI] scsi_lib: use blk_rq_tagged in scsi_request_fn
    [SCSI] ibmvfc: Update driver version to 1.0.1
    [SCSI] ibmvfc: Add ADISC support
    [SCSI] ibmvfc: Miscellaneous fixes
    [SCSI] ibmvfc: Fix hang on module removal
    [SCSI] ibmvfc: Target refcounting fixes
    [SCSI] ibmvfc: Reduce unnecessary log noise
    [SCSI] sym53c8xx: free luntbl in sym_hcb_free
    [SCSI] scsi_scan.c: Release mutex in error handling code
    [SCSI] scsi_eh_prep_cmnd should save scmd->underflow
    [SCSI] sd: Support for SCSI disk (SBC) Data Integrity Field
    ...

    Linus Torvalds
     

27 Jul, 2008

8 commits

  • [jejb: fixed up a ton of missed conversions.

    All of you are on notice this has happened, driver trees will now
    need to be rebased]

    Signed-off-by: Harvey Harrison
    Cc: SCSI List
    Signed-off-by: Andrew Morton
    Signed-off-by: James Bottomley

    Harvey Harrison
     
  • Update driver version to 1.0.1.

    Signed-off-by: Brian King
    Signed-off-by: James Bottomley

    Brian King
     
  • Add an ADISC to the target discovery job in order to sanity check whether or
    not we need to re-login to the target.

    Signed-off-by: Brian King
    Signed-off-by: James Bottomley

    Brian King
     
  • Properly setup the size of the async event queue. This fixes a bug where async events
    were not getting processed by the driver.

    Setup target_id field in the driver's target struct so that target sysfs attributes
    work for multiple targets.

    Signed-off-by: Brian King
    Signed-off-by: James Bottomley

    Brian King
     
  • If certain ELS events are received during module removal, after the kthread
    is stopped, the rmmod can hang. This fixes the ibmvfc driver so that ELS
    events during rmmod are ignored by stopping all device activity prior to
    killing the kthread and also changes reinitialization to not attempt a reinit
    if the adapter has been taken offline.

    Signed-off-by: Brian King
    Signed-off-by: James Bottomley

    Brian King
     
  • Fix up some refcounting on the ibmvfc drivers internal target struct
    when accessed through some sysfs attributes.

    Signed-off-by: Brian King
    Signed-off-by: James Bottomley

    Brian King
     
  • Reduces some unnecessary log noise by removing a printk during
    host port state query and increasing the log level required to
    log received async events.

    Signed-off-by: Brian King
    Signed-off-by: James Bottomley

    Brian King
     
  • Add per-device dma_mapping_ops support for CONFIG_X86_64 as POWER
    architecture does:

    This enables us to cleanly fix the Calgary IOMMU issue that some devices
    are not behind the IOMMU (http://lkml.org/lkml/2008/5/8/423).

    I think that per-device dma_mapping_ops support would be also helpful for
    KVM people to support PCI passthrough but Andi thinks that this makes it
    difficult to support the PCI passthrough (see the above thread). So I
    CC'ed this to KVM camp. Comments are appreciated.

    A pointer to dma_mapping_ops to struct dev_archdata is added. If the
    pointer is non NULL, DMA operations in asm/dma-mapping.h use it. If it's
    NULL, the system-wide dma_ops pointer is used as before.

    If it's useful for KVM people, I plan to implement a mechanism to register
    a hook called when a new pci (or dma capable) device is created (it works
    with hot plugging). It enables IOMMUs to set up an appropriate
    dma_mapping_ops per device.

    The major obstacle is that dma_mapping_error doesn't take a pointer to the
    device unlike other DMA operations. So x86 can't have dma_mapping_ops per
    device. Note all the POWER IOMMUs use the same dma_mapping_error function
    so this is not a problem for POWER but x86 IOMMUs use different
    dma_mapping_error functions.

    The first patch adds the device argument to dma_mapping_error. The patch
    is trivial but large since it touches lots of drivers and dma-mapping.h in
    all the architecture.

    This patch:

    dma_mapping_error() doesn't take a pointer to the device unlike other DMA
    operations. So we can't have dma_mapping_ops per device.

    Note that POWER already has dma_mapping_ops per device but all the POWER
    IOMMUs use the same dma_mapping_error function. x86 IOMMUs use device
    argument.

    [akpm@linux-foundation.org: fix sge]
    [akpm@linux-foundation.org: fix svc_rdma]
    [akpm@linux-foundation.org: build fix]
    [akpm@linux-foundation.org: fix bnx2x]
    [akpm@linux-foundation.org: fix s2io]
    [akpm@linux-foundation.org: fix pasemi_mac]
    [akpm@linux-foundation.org: fix sdhci]
    [akpm@linux-foundation.org: build fix]
    [akpm@linux-foundation.org: fix sparc]
    [akpm@linux-foundation.org: fix ibmvscsi]
    Signed-off-by: FUJITA Tomonori
    Cc: Muli Ben-Yehuda
    Cc: Andi Kleen
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Avi Kivity
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    FUJITA Tomonori
     

25 Jul, 2008

2 commits

  • Adds support to the ibmvfc driver for collaborative memory overcommit.

    Signed-off-by: Brian King
    Signed-off-by: Robert Jennings
    Acked-by: Paul Mackerras
    Signed-off-by: Benjamin Herrenschmidt

    Brian King
     
  • Enable the driver to function in a Cooperative Memory Overcommitment (CMO)
    environment.

    The following changes are made to enable the driver for CMO:
    * DMA mapping errors will not result in error messages if entitlement has
    been exceeded and resources were not available.
    * The driver has a get_desired_dma function defined to function
    in a CMO environment. It will indicate how much IO memory it would like
    to function.

    Signed-off-by: Robert Jennings
    Acked by: Brian King
    Acked-by: Paul Mackerras
    Acked-by: James Bottomley
    Signed-off-by: Benjamin Herrenschmidt

    Robert Jennings
     

12 Jul, 2008

1 commit


28 May, 2008

1 commit


02 May, 2008

1 commit

  • - struct scsi_cmnd had a 16 bytes command buffer of its own.
    This is an unnecessary duplication and copy of request's
    cmd. It is probably left overs from the time that scsi_cmnd
    could function without a request attached. So clean that up.

    - Once above is done, few places, apart from scsi-ml, needed
    adjustments due to changing the data type of scsi_cmnd->cmnd.

    - Lots of drivers still use MAX_COMMAND_SIZE. So I have left
    that #define but equate it to BLK_MAX_CDB. The way I see it
    and is reflected in the patch below is.
    MAX_COMMAND_SIZE - means: The longest fixed-length (*) SCSI CDB
    as per the SCSI standard and is not related
    to the implementation.
    BLK_MAX_CDB. - The allocated space at the request level

    - I have audit all ISA drivers and made sure none use ->cmnd in a DMA
    Operation. Same audit was done by Andi Kleen.

    (*)fixed-length here means commands that their size can be determined
    by their opcode and the CDB does not carry a length specifier, (unlike
    the VARIABLE_LENGTH_CMD(0x7f) command). This is actually not exactly
    true and the SCSI standard also defines extended commands and
    vendor specific commands that can be bigger than 16 bytes. The kernel
    will support these using the same infrastructure used for VARLEN CDB's.
    So in effect MAX_COMMAND_SIZE means the maximum size command
    scsi-ml supports without specifying a cmd_len by ULD's

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

    Boaz Harrosh
     

30 Apr, 2008

1 commit


20 Apr, 2008

1 commit


04 Mar, 2008

2 commits


07 Feb, 2008

1 commit

  • Mostly in and around irq handlers.

    Signed-off-by: Jeff Garzik
    Cc: Russell King
    Cc: "Luck Tony"
    Cc: Roman Zippel
    Cc: Geert Uytterhoeven
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Acked-by: Dmitry Torokhov
    Cc: Karsten Keil
    Acked-by: "John W. Linville"
    Cc: James Bottomley
    Cc: David Brownell
    Cc: "Antonino A. Daplas"
    Acked-by: Josh Boyer
    Acked-by: Holger Schurig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Garzik
     

31 Jan, 2008

1 commit

  • With the sg table code, every SCSI driver is now either chain capable
    or broken (or has sg_tablesize set so chaining is never activated), so
    there's no need to have a check in the host template.

    Also tidy up the code by moving the scatterlist size defines into the
    SCSI includes and permit the last entry of the scatterlist pools not
    to be a power of two.
    Signed-off-by: James Bottomley

    James Bottomley
     

12 Jan, 2008

3 commits

  • CRQ send errors that return with H_CLOSED should return with
    SCSI_MLQUEUE_HOST_BUSY until firmware alerts the client of a CRQ
    transport event. The transport event will either reinitialize and
    requeue the requests or fail and return IO with DID_ERROR.

    To avoid failing the eh_* functions while re-attaching to the server
    adapter this will retry for a period of time while ibmvscsi_send_srp_event
    returns SCSI_MLQUEUE_HOST_BUSY.

    In ibmvscsi_eh_abort_handler() the loop includes the search of the
    event list. The lock on the hostdata is dropped while waiting to try
    again after failing ibmvscsi_send_srp_event. The event could have been
    purged if a login was in progress when the function was called.

    In ibmvscsi_eh_device_reset_handler() the loop includes the call to
    get_event_struct() because a failing call to ibmvscsi_send_srp_event()
    will have freed the event struct.

    Signed-off-by: Robert Jennings
    Signed-off-by: Brian King
    Signed-off-by: James Bottomley

    Robert Jennings
     
  • Set the default command timeout for ibmvscsi disks to 60 seconds
    to ensure we don't prematurely timeout commands. This fixes a problem
    seen where the default 30 seconds was not long enough due to
    congestion on the server.

    Signed-off-by: Brian King
    Signed-off-by: James Bottomley

    Brian King
     
  • - convert to use the new accessors for the sg lists and the
    parameters.

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

    FUJITA Tomonori
     

04 Nov, 2007

1 commit

  • By setting the request_limit in send_srp_login to 1 we allowed login
    requests to be sent to the server adapter. If this was not an initial
    login, but was a login after a disconnect with the server, other I/O
    requests could attempt to be processed before the login occured. These
    I/O requests would fail, sometimes resulting in filesystems getting
    marked read-only.

    To address this we can set the request_limit to 0 while doing the login
    and add an exception where login requests, along with task management
    events, are always passed to the server.

    There is a case where the request_limit had already reached 0 would result
    in all events being sent rather than returning SCSI_MLQUEUE_HOST_BUSY; this
    has also been fixed by this patch.

    Signed-off-by: Robert Jennings
    Signed-off-by: Brian King
    Signed-off-by: James Bottomley

    Robert Jennings
     

16 Oct, 2007

1 commit


13 Oct, 2007

6 commits


31 Jul, 2007

2 commits