18 Jun, 2007

24 commits

  • Add m68k support to the 53c700 SCSI driver

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

    Kars de Jong
     
  • If there is IO going to the volume while a hidden disk is being torn down,
    there is a case where we would return a DID_NO_CONNECT for IO sent to the
    volume. The end result is the volume goes read-only. This problem is due to the
    fact the firmware mapped target ids saved in per device object is phys_disk_num
    for hidden raid components, and target_id for the volume. There is a single
    case when both phys_disk_num and target_id are equal, so enters this issue. We
    fix this issue by checking the tflags when the device is torned down,
    insuring the IO being completed is meant for hidden raid component, not the
    volume. In addition to this fix, there are a couple other cases to address
    hidden raid components. For instance task_abort and device reset are not
    supported by mpt fw for hidden raid components, a bus reset would be required
    or target reset to volume.

    Signed-off-by: Eric Moore
    Signed-off-by: James Bottomley

    Eric Moore
     
  • nice cosmetic cleaning of eh thread callback funtions

    Signed-off-by: Eric Moore
    Signed-off-by: James Bottomley

    Eric Moore
     
  • I was investigating strange driver behaviour and thought that readable
    code and proper visible types might help explain why it didn't work right
    the moment a second SCB was outstanding to the controller. I was right

    - Cleanup, linuxise, demacro
    - Remove the BSD dual licence on the new work
    - Switch the if ALPHA to if __LP64__. (struct size is then right
    elsewhere) and then to CONFIG_64BIT as per Christoph's request
    - Fix the recursive locking on a reset. This is the only actual real code
    change (I hope ;)).

    I'm not clear what the right way to handle the BIOS param stuff is on n
    on x86-32/64. Using phys_to_virt and stuff is ugly and probably doesn't
    make sense elsewhere

    Still has a couple of odd things - and there seems to be a commonly shared
    EEPROM handling error several drivers have. Roughly speaking several SCSI
    drivers go

    try and read EEPROM
    It failed..
    Write any changes between the default and the data we read

    Which is great as for some paths we've no idea what was in
    before, so each boot won't write it all back, won't checksum but will
    repeat the bug

    Also it can still sleep for a second with IRQ off, and there is some
    dubious looking error path locking marked FIXME in case anyone feels
    inspired to work on it. Not a newly introduced bug, and at least its now
    marked.

    Signed-off-by: Alan Cox
    Signed-off-by: James Bottomley

    Alan Cox
     
  • When a target scan is initiated from sysfs, we should check the
    portstate prior to invoke scsi_scan_target().
    Otherwise scsi_scan_target() might oops as the rport might already
    been removed from the scsi host and the traversal from the rport to
    the scsi_host in scsi_scan_target() will fail.
    Also the portstate already told us that communication with the target
    has failed, so it's quite pointless to try.

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

    Hannes Reinecke
     
  • - remove the unnecessary map_single path.

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

    TODO: use scsi_for_each_sg().

    Signed-off-by: FUJITA Tomonori
    Acked-by: Mike Christie
    Signed-off-by: James Bottomley

    FUJITA Tomonori
     
  • bump version

    Signed-off-by: Eric Moore
    Signed-off-by: James Bottomley

    Eric Moore
     
  • rewrite of mpt_fc_log_info to use the enum/defines from mpi_log_fc.h

    Signed-off-by: Eric Moore
    Signed-off-by: James Bottomley

    Eric Moore
     
  • remove unused header

    Signed-off-by: Eric Moore
    Signed-off-by: James Bottomley

    Eric Moore
     
  • fc inband managment header deleted

    Signed-off-by: Eric Moore
    Signed-off-by: James Bottomley

    Eric Moore
     
  • mpi header update

    Signed-off-by: Eric Moore
    Signed-off-by: James Bottomley

    Eric Moore
     
  • Update assocated fusion sources with new support email address.

    Signed-off-by: Eric Moore
    Signed-off-by: James Bottomley

    Eric Moore
     
  • Since it is completely possible for scsi core to call
    a LLDD's eh_abort function after the command has completed,
    fix ibmvscsi to return SUCCESS if this is the case.

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

    Brian King
     
  • Fix a couple locking bugs discovered during code inspection.
    ibmvscsi_send_srp_event needs to be called with the host lock
    held. This patch fixes a couple paths in the code where this
    wasn't true.

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

    Brian King
     
  • Adds an eh_host_reset_handler to ibmvscsi which resets the connection
    to the vscsi server. This patch also adds a timer to internally
    issues commands to prevent client hangs in the case of a misbehaving
    server. Tested by modifying the VIOS such that it would occasionally
    drop one or more request in sequence.

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

    Brian King
     
  • Converts ibmvscsi to use dev_printk and friends to simplify
    debugging. ibmvscsi adapter initialization now looks like this:

    ibmvscsi 30000005: SRP_VERSION: 16.a
    ibmvscsi 30000005: partner initialization complete
    ibmvscsi 30000005: sent SRP login
    ibmvscsi 30000005: SRP_LOGIN succeeded

    Additionally, this patch adds the logging of a couple return codes in
    a couple logs.

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

    Brian King
     
  • Since sg_tablesize is set appropriately in the scsi host template,
    remove the unnecessary check to make sure it is not exceeded
    following the dma_map_sg call.

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

    Brian King
     
  • - remove the unnecessary map_single path.

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

    Note: needs to change i2o_dma_map_sg when the chaining sg is ready.

    Signed-off-by: FUJITA Tomonori
    Acked-by: "Salyzyn, Mark"
    Signed-off-by: James Bottomley

    FUJITA Tomonori
     
  • Add the ability for an application to issue a hardware reset to the
    adapter via sysfs. Typical uses include restarting the adapter after it
    has been flashed. Bumped revision number for the driver and added a
    feature to periodically check the adapter's health (check_interval),
    update the adapter's concept of time (update_interval) and block
    checking/resetting of the adapter (check_reset).

    Signed-off-by: Mark Salyzyn
    Signed-off-by: James Bottomley

    Salyzyn, Mark
     
  • Sundry cleanups:
    1) Use kzalloc instead of kmalloc.
    2) Make sure probe worked before recalling the SCSI command to finalize
    processing.
    3) _aac_probe_container2 and _aac_probe_container1 return value goes
    unused, change return to void.
    4) Use a lower depth pointer reference to pick up the driver instance
    variable.
    5) Although effectively unused except to fake for scsicmd validity, set
    the scsi_done in probe code to aac_probe_container_callback1 instead of
    the less valid dummy reference to _aac_probe_container1.
    6) SCp.phase is set in aac_valid_context, drop setting up this value in
    caller when unnecessary.
    7) take container target id at the beginning, rather than referencing
    scmd_id() to pick it up.

    There should be no side effects or functionality changes.

    Signed-off-by: Mark Salyzyn
    Signed-off-by: James Bottomley

    Salyzyn, Mark
     
  • Correct the module info text for the default value of
    "every_nth" to 0.

    Signed-off-by: Randy Dunlap
    Acked-by: Douglas Gilbert
    Signed-off-by: James Bottomley

    Randy Dunlap
     
  • This patch provides the following:

    1. remove warning ignoring the return value of pci_set_mwi()
    2. allows HBA to be online when the initiator ip address is uninitialized.

    Signed-off-by: David Somayajulu
    Signed-off-by: James Bottomley

    David C Somayajulu
     
  • Description:

    1. Implement PCI-Express error recovery function and AER
    capability, especially thanks to Yanmin Zhang's openhanded help
    about AER

    2. Implement the selection of ARCMSR_MAX_XFER_SECTORS_B=4096 if
    firmware version is latter than 1.42

    3. Add arcmsr_done4_abort_postqueue in arcmsr_iop_reset function
    to improve the stability as hot-unplug/plug

    4. Modify the ISR, arcmsr_interrupt routine, to prevent the
    inconsistency with sg_mod driver if application directly calls
    the arcmsr driver w/o passing through scsi midlayer

    Signed-off-by: Nick Cheng
    [jejb: unused variable removal]
    Signed-off-by: James Bottomley

    nickcheng(鄭守謙
     
  • - remove the unnecessary map_single path.

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

    Signed-off-by: FUJITA Tomonori
    Acked-by: "Salyzyn, Mark"
    Signed-off-by: James Bottomley

    FUJITA Tomonori
     

17 Jun, 2007

1 commit


07 Jun, 2007

2 commits


03 Jun, 2007

8 commits

  • iSCSI must support software iscsi (iscsi_tcp, iser), hardware iscsi (qla4xxx),
    and partial offload (broadcom). To be able to allow each stack or driver
    or port (virtual or physical) to be able to log into the same target portal
    we use the initiator tuple [[HWADDRESS | NETDEVNAME], INITIATOR_NAME] and
    the target tuple [TARGETNAME, CONN_ADDRESS, CONN_PORT] to id a session.
    This patch adds the netdev name, which is used by software iscsi when
    it binds a session to a netdevice using the SO_BINDTODEVICE sock opt.
    It cannot use HWADDRESS because if someone did vlans then the same netdevice
    will have the same mac and the initiator,target id will not be unique.

    Signed-off-by: Mike Christie
    Cc: Roland Dreier
    Cc: David C Somayajulu
    Signed-off-by: James Bottomley

    Mike Christie
     
  • This patch exports the local address for the session. For
    qla4xxx this is the ip of the hba's port. For software
    this is the src addr of the socket.

    Signed-off-by: Mike Christie
    Cc: David C Somayajulu
    Signed-off-by: James Bottomley

    Mike Christie
     
  • This patch should fix the file descriptor leak problem. A quick look
    through the kernel shows that users of sockfd_lookup use sockfd_put to
    release their handle. We were using sock_release which from the comments
    and code look like it does not release the get() on the file from the
    lookup.

    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     
  • Userspace will want to know what the driver/FW/HW capabilites
    when it comes to some operations like if the hardware can
    do discovery or if it can store iscsi info like what target
    was used for boot. This patch adds some new caps so userspace
    can tell if the driver supports hardware/fw based sendtargets
    discovery and if the hardware has some flash which may be
    holding or can contain some iscsi target info
    .
    Signed-off-by: Mike Christie
    Cc: David C Somayajulu
    Signed-off-by: James Bottomley

    Mike Christie
     
  • Add a slave_configure function to iSCSI TCP to remove any DMA
    alignment restriction. This permits the use of direct IO from
    arbitrary addresses.

    Signed-off-by: Pete Wyckoff
    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     
  • If we got the padding, data and header in different skbs,
    we were not handling the padding correctly because we attributed it
    to the data's skb. This resulted in the initiator reading from
    pad bytes + skb offset instead of the correct offset.

    If you could not connect with the open solaris target, this
    will fix the lock up problem you were hitting.

    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     
  • This patch allows us to set can_queue and cmds_per_lun from userspace
    when we create the session/host. From there we can set it on a per
    target basis. The patch fully converts iscsi_tcp, but only hooks
    up ib_iser for cmd_per_lun since it currently has a lots of preallocations
    based on can_queue.

    Signed-off-by: Mike Christie
    Cc: Roland Dreier
    Signed-off-by: James Bottomley

    Mike Christie
     
  • The cmdsn allocation and pdu transmit code can race, and we can end
    up sending a pdu with cmdsn 10 before a pdu with 5. The target will
    then fail the connection/session. This patch fixes the problem by
    delaying the cmdsn allocation until we are about to send the pdu.

    This also removes the xmitmutex. We were using the connection xmitmutex
    during error handling to handle races with mtask and ctask cleanup and
    completion. For ctasks we now have nice refcounting and for the mtask,
    if we hit the case where the mtask timesout and it is floating
    around somewhere in the driver, we end up dropping the session.
    And to handle session level cleanup, we use the xmit suspend bit
    along with scsi_flush_queue and the session lock to make sure
    that the xmit thread is not possibly transmitting a task while
    we are trying to kill it.

    Signed-off-by: Mike Christie
    Cc: Roland Dreier
    Signed-off-by: James Bottomley

    Mike Christie
     

02 Jun, 2007

5 commits

  • If iscsi_tcp partially sends a header, it would recalculate the
    header size and readd the size of the digest (if header digests
    are used).This would cause us to send sizeof(digest) extra bytes
    when we sent the rest of the header.

    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     
  • The attached patches add sysfs files for the chap settings
    to the iscsi transport class, iscsi_tcp and ib_iser. This is
    needed for software iscsi because there are times when iscsid
    can die and it will need to reread the values it was using.
    And it is needed by qla4xxx for basic management opertaions.
    This patch does not hook in qla4xxx yet, because I am not sure
    the mbx command to use.

    Signed-off-by: Mike Christie
    Cc: Roland Dreier
    Signed-off-by: James Bottomley

    Mike Christie
     
  • - Remove shadow of request length from struct iscsi_cmd_task.
    - change all users to use scsi_cmnd->request_bufflen directly

    (With bidi we will use scsi-ml API to retrieve in/out length)

    Signed-off-by: Boaz Harrosh
    Signed-off-by: Benny Halevy
    Signed-off-by: Mike Christie
    Cc: Roland Dreier
    Signed-off-by: James Bottomley

    Mike Christie
     
  • This patch fixes handling of expected datasn/r2tsn as received from
    target. It is done according to: T10 rfc3720 section 3.2.2.3. Data Sequencing.

    . unify expected datasn/r2tsn into one counter
    . calculate than check expected datasn/r2tsn. On error print a message
    and fail the request. (TODO use iscsi retransmits)
    . remove the FIXME ;)
    . avoid zero length memset

    Signed-off-by: Boaz Harrosh
    Signed-off-by: Benny Halevy
    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     
  • For iscsi root boot, software iscsi needs to know what the BIOS/OF
    initiator used for the initiator name so this puts it in sysfs
    for userspace to be able to pick up.

    For hw iscsi, it is nice to see what the card is using.

    This patch adds the new param, and hooks in qla4xxx, iscsi_tcp, and ib_iser.

    Signed-off-by: Mike Christie
    Cc: Roland Dreier
    Cc: David C Somayajulu
    Signed-off-by: James Bottomley

    Mike Christie