14 Dec, 2011

2 commits

  • When the qla4xxx_get_fwddb_entry returns QLA_ERROR
    the nex_idx is not updated,
    for (idx = 0; idx < max_ddbs; idx = next_idx) {
    ret = qla4xxx_get_fwddb_entry(ha, idx, NULL, 0, NULL,
    &next_idx, &state, &conn_err,
    NULL, NULL);
    if (ret == QLA_ERROR)
    continue;

    This means there is a risk that the 'idx < max_ddbs' condition will never
    met and the loop will loop forever.
    Fix this by explicitly increasing the next_idx in the error condition.

    Maybe a break instead of continue is more appropriate, leaving the decision
    on the qlogic maintainer.

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

    Tomas Henzl
     
  • With open-iscsi support, target entries persisted in the FLASH were not
    login. Added support in the qla4xxx driver to do the login on probe
    time to the target entries saved in the FLASH by user.
    With this changes upgrade to the new kernel with open-iscsi support in
    qla4xxx will ensure users original target entries login on driver load

    Signed-off-by: Manish Rangankar
    Signed-off-by: Ravi Anand
    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Mike Christie
     

17 Oct, 2011

4 commits

  • Devices are getting blocked during continuous link up and down.
    Solution is, during relogin unblock the session, using iscsi_conn_start,
    before sending connection logged in event.

    JIRA Key: UPSISCSI-138

    Signed-off-by: Manish Rangankar
    Signed-off-by: Vikas Chaudhary
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Manish Rangankar
     
  • During link down, iscsid tries to do re-login to failed session. In case of
    link down-up-down, LLD was sending connection login failed event to iscsid,
    which is destroying the session, instead we have to continue re-login by
    sending connection err event.

    JIRA Key: UPSISCSI-134

    Signed-off-by: Manish Rangankar
    Signed-off-by: Vikas Chaudhary
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Manish Rangankar
     
  • Unable to login to session if login-logout issued consecutively for
    multiple sessions. Solution is to clear idx in DDB map on the basis
    of no-active connection asynchronous event (AEN).

    JIRA Key: UPSISCSI-135

    Signed-off-by: Manish Rangankar
    Signed-off-by: Vikas Chaudhary
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Manish Rangankar
     
  • Firmware reserves DDBs if there are entries in the FLASH.
    So there are no free DDBs left when a iSCSI login is initiated
    by user space tool like iscsiadm.
    Since now login is not controlled by firmware, LLD need to free
    up the DDBs after firmware init. This will ensure free DDBs are
    available for iSCSI logins using iscsiadm.

    JIRA Key: UPSISCSI-151

    Signed-off-by: Lalit Chandivade
    Signed-off-by: Vikas Chaudhary
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Lalit Chandivade
     

27 Aug, 2011

4 commits

  • Added board_id, fw_state, phy_port_cnt, phy_port_num,
    iscsi_func_cnt, hba_model

    Signed-off-by: Harish Zunjarrao
    Signed-off-by: Vikas Chaudhary
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Vikas Chaudhary
     
  • 1. Remove device database entry (ddb) state.
    2. Remove device database (DDB) list building.
    With open-iscsi integration the logins to the target devices are
    handled by the user space. So the information of target is now
    maintained in the iscsi_session object. This is handled at
    libiscsi level so there is no need to maintain a list of DDBs in
    the qla4xxx LLD.
    3. qla4xxx: Remove add_device_dynamically.
    Since autologin in FW is disabled with open-iscsi integration,
    driver will never get an AEN for which driver has not requested
    a DDB index. So remove the add_device_dynamically function.
    4. Remove qla4xxx_tgt_dscvr
    Since firmware autologin is disabled this function will not work.
    Now user has the ability to do the target discovery and login to
    each target individually. Firwmare will not do the login on its own.
    5. Remove relogin related code
    All relogin is handled by userspace now. qla4xxx just need to
    notify userspace of a connection failure, this triggers the
    relogin.
    6. Remove add_session and alloc_session
    Now qla4xxx uses iscsi_session_setup that would do the necessary
    allocations for session and ddb_entry.

    Signed-off-by: Manish Rangankar
    Signed-off-by: Lalit Chandivade
    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Manish Rangankar
     
  • Add scsi_transport_iscsi hooks in qla4xxx to support
    iSCSI session management using iscsiadm.

    This patch is based on discussion here
    http://groups.google.com/group/open-iscsi/browse_thread/thread/e89fd888baf656a0#

    Now users can use iscsiadm to do target discovery and do login/logout to
    individual targets using the qla4xxx iSCSI class interface.

    This patch leaves some dead code, but to make it easier to review
    we are leaving and in the next patch we will remove that old code.

    V2 - NOTE: Added code to avoid waiting for AEN during login/logout
    in the driver, instead added a kernel to user event
    to notify iscsid about login status. Because of this
    iscsid will not get blocked.

    Signed-off-by: Manish Rangankar
    Signed-off-by: Lalit Chandivade
    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Manish Rangankar
     
  • - Move all ipaddress related param to "struct ipaddress_config"
    from "struct scsi_qla_host"
    - update function - qla4xxx_update_local_ip()
    - Rename IPOPT_IPv4_PROTOCOL_ENABLE to IPOPT_IPV4_PROTOCOL_ENABLE

    Signed-off-by: Vikas Chaudhary
    [update for new ISCSI_IFACE values]
    Signed-off-by: Mike Christie
    Signed-off-by: James Bottomley

    Vikas Chaudhary
     

25 May, 2011

1 commit


31 Mar, 2011

1 commit


24 Mar, 2011

4 commits


22 Dec, 2010

1 commit


26 Oct, 2010

2 commits

  • Since interrupts are registered in start_firmware(load_risc) for 82xx,
    free them if init_firmware fails.

    Signed-off-by: Vikas Chaudhary
    Signed-off-by: Karen Higgins
    Signed-off-by: Ravi Anand
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Vikas Chaudhary
     
  • * cleanup function qla4xxx_recovery_timeout
    - No need to wakeup dpc thread from function
    qla4xxx_recovery_timeout() as we are not doing anything
    in do_dpc() thread when wakeup from
    qla4xxx_recovery_timeout()

    * cleanup function qla4xxx_wait_for_hba_online
    - Remove hard coded value from qla4xxx_wait_for_hba_online().

    * cleanup function qla4xxx_start_firmware_from_flash
    - display seconds

    * cleanup function qla4_8xxx_load_risc
    - Remove redundant code.

    * cleanup function qla4xxx_get_firmware_status
    - update debug statement

    * cleanup function qla4_8xxx_try_start_fw
    - update return status

    Signed-off-by: Vikas Chaudhary
    Signed-off-by: Ravi Anand
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Vikas Chaudhary
     

07 Aug, 2010

3 commits


05 Aug, 2010

1 commit

  • * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (48 commits)
    Documentation: update broken web addresses.
    fix comment typo "choosed" -> "chosen"
    hostap:hostap_hw.c Fix typo in comment
    Fix spelling contorller -> controller in comments
    Kconfig.debug: FAIL_IO_TIMEOUT: typo Faul -> Fault
    fs/Kconfig: Fix typo Userpace -> Userspace
    Removing dead MACH_U300_BS26
    drivers/infiniband: Remove unnecessary casts of private_data
    fs/ocfs2: Remove unnecessary casts of private_data
    libfc: use ARRAY_SIZE
    scsi: bfa: use ARRAY_SIZE
    drm: i915: use ARRAY_SIZE
    drm: drm_edid: use ARRAY_SIZE
    synclink: use ARRAY_SIZE
    block: cciss: use ARRAY_SIZE
    comment typo fixes: charater => character
    fix comment typos concerning "challenge"
    arm: plat-spear: fix typo in kerneldoc
    reiserfs: typo comment fix
    update email address
    ...

    Linus Torvalds
     

28 Jul, 2010

8 commits


17 Jun, 2010

1 commit


03 May, 2010

4 commits

  • Per RFC 3720, Login Response Status Code 0x02 should not be retried.
    Condensed connection error checking code to a single routine, and
    added check for status class 0x02.

    Signed-off-by: Karen Higgins
    Signed-off-by: Vikas Chaudhary
    Signed-off-by: Ravi Anand
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Vikas Chaudhary
     
  • Updated firmware ready timeout algorithm to prevent
    long delays and use jiffies to time out instead of
    counter. Also use msleep_interruptible instead of msleep.

    Signed-off-by: Karen Higgins
    Signed-off-by: Vikas Chaudhary
    Signed-off-by: Ravi Anand
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Vikas Chaudhary
     
  • Link Down -> Mark all devices missing
    Previously, the driver took no action on a Link Down,
    and waited for the I/O on a dead connection to timeout
    in the firmware before marking the DDB missing.

    Link Up -> Mark all devices online
    F/W will do auto login to all the devices only once.
    After that its the responsibility of the driver to
    relogin to devices whenever there is :
    * Any sort of connection failure or
    * KATO expires indicating target has logged out or
    * I/O times out etc.

    Signed-off-by: Vikas Chaudhary
    Signed-off-by: Karen Higgins
    Signed-off-by: Ravi Anand
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Vikas Chaudhary
     
  • Signed-off-by: Karen Higgins
    Signed-off-by: Vikas Chaudhary
    Signed-off-by: Ravi Anand
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Vikas Chaudhary
     

18 Feb, 2010

1 commit


25 Jan, 2009

1 commit

  • qla4xxx does not check the I_T nexus values correctly
    so it ends up creating one session to the target. If
    a portal should disappear or they should be reported
    in different order the driver will think it is already
    logged in when it could now be speaking to a different
    target portal or accessing it through a different
    initiator port (iscsi initiator port is not tied to
    hardware and is just the initiator name plus isid
    so you could end up with multiple ports through one
    host).

    This patch has the driver check the iscsi scsi port
    values when matching sessions (we do not check
    the initiator name because that is static). It results
    in a portal from each target portal group getting
    logged into instead of just one per target. In the future
    the firmware should hopefully send us notification of other
    sessions that are created to other portals within the
    same tpgt and the sessions should have different isids.

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

    Mike Christie
     

06 Mar, 2008

1 commit

  • The host reset callout could be starting to reset the hba at the same
    time the dpc thread is. This creates lots of problems because they both
    want to do wierd things with the firmware and interrupts, etc.

    This patch just has the host reset function fully shutdown the dpc
    thread before resetting the hba.

    This patch also moves the setting of the session online bit to fix
    a potential race with the dpc thread and iscsi recovery thread.

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

    Mike Christie
     

08 Feb, 2008

1 commit

  • Qla4xxx can just call the iscsi recovery functions directly.
    There is no need for userspace to do this for qla4xxx, because
    we do not use the mutex to iterate over devices anymore and iscsi_block
    /unblock_session can be called from interrupt context or the dpc thread.
    And having userspace do this just creates uneeded headaches for qla4xxx root
    situations where the session may experience problems. For example
    during the kernel shutdown the scsi layer wants to send sync caches, but at
    this time userspace is not up (iscsid is not running), so we cannot
    recover from the problem.

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

    Mike Christie