24 Aug, 2013

1 commit


27 Nov, 2012

1 commit

  • Removed the individual PCI DEVICE ID checking inside bnx2i. The device
    type can easily be read from the corresponding cnic->flags. This will
    free bnx2i from having to get updated for every new device ID that gets
    added.

    Signed-off-by: Eddie Wai
    Acked-by: Michael Chan
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Eddie Wai
     

20 Jul, 2012

1 commit


08 Jul, 2012

1 commit

  • The netdev->base_addr parameter has been deprecated in the L2 bnx2
    driver. This is used by bnx2i for the BARn iomapping.

    This patch will directly reference the pci_resource_start instead
    of using the deprecated netdev->base_addr.

    This patch is actually a critical bug fix as the 1G bnx2 driver no
    longer supports the netdev->base_addr in the current kernel of the scsi
    tree. This means that Broadcom's 1G Linux iSCSI offload solution would
    not work at all without this patch.

    Signed-off-by: Eddie Wai
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Eddie Wai
     

27 Jun, 2012

1 commit


10 May, 2012

2 commits


04 Jan, 2012

1 commit


27 Aug, 2011

3 commits


28 Jul, 2011

1 commit

  • * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
    target: Convert to DIV_ROUND_UP_SECTOR_T usage for sectors / dev_max_sectors
    kernel.h: Add DIV_ROUND_UP_ULL and DIV_ROUND_UP_SECTOR_T macro usage
    iscsi-target: Add iSCSI fabric support for target v4.1
    iscsi: Add Serial Number Arithmetic LT and GT into iscsi_proto.h
    iscsi: Use struct scsi_lun in iscsi structs instead of u8[8]
    iscsi: Resolve iscsi_proto.h naming conflicts with drivers/target/iscsi

    Linus Torvalds
     

25 Jul, 2011

1 commit

  • This patch renames the following iscsi_proto.h structures to avoid
    namespace issues with drivers/target/iscsi/iscsi_target_core.h:

    *) struct iscsi_cmd -> struct iscsi_scsi_req
    *) struct iscsi_cmd_rsp -> struct iscsi_scsi_rsp
    *) struct iscsi_login -> struct iscsi_login_req

    This patch includes useful ISCSI_FLAG_LOGIN_[CURRENT,NEXT]_STAGE*,
    and ISCSI_FLAG_SNACK_TYPE_* definitions used by iscsi_target_mod, and
    fixes the incorrect definition of struct iscsi_snack to following
    RFC-3720 Section 10.16. SNACK Request.

    Also, this patch updates libiscsi, iSER, be2iscsi, and bn2xi to
    use the updated structure definitions in a handful of locations.

    Signed-off-by: Mike Christie
    Signed-off-by: Nicholas A. Bellinger

    Nicholas Bellinger
     

30 Jun, 2011

2 commits

  • Bumped version from 2.6.2.3 to 2.7.0.3

    Signed-off-by: Eddie Wai
    Signed-off-by: James Bottomley

    Eddie Wai
     
  • This patch breaks the SCSI cmd completion into two parts:
    1. The bh will allocate and queued work to the cmd specific CPU IO
    completion kthread. The CPU for the cmd is from the sc->request->cpu.

    2. The CPU specific IO completion kthread will call the scsi_cmd_resp
    routine to do the actual cmd completion.

    In the normal case, these IO completion kthreads should complete before
    the blk IO times out at 60s. However, in the case when these kthreads
    are blocked for whatever reason and exceeded the timeout, the call
    to conn_destroy will have to iterate and exhaust all related work in the
    percpu work list for all online CPUs. This will guarantee the protection
    of the work->session and conn pointers before they get freed.

    Also modified the event coalescing formula to have at least the
    event_coal_min outstanding cmds in the pipeline so the SCSI producer
    would not get underrun.

    Also changed the following SCSI parameters:
    - can_queue from 1024 to 2048
    - cmds_per_lun from 24 to 128

    Signed-off-by: Eddie Wai
    Acked-by: Benjamin Li
    Acked-by: Michael Chan
    Signed-off-by: James Bottomley

    Eddie Wai
     

25 May, 2011

3 commits

  • Modified the event coalescing code for iSCSI offload to combat both
    corner cases and optimize performance as follows:

    1. Added mechanism to loop back a second time to process any leftover
    CQEs that was generated by the hardware during the time the driver is
    busy processing previous CQEs in the bh. This not only helps the
    performance but also fixes the corner case when no more CQEs are being
    generated in the pipeline; so those leftover CQEs will get a a chance
    to be processed.

    2. Added ARM_CQE_FP to distinguish between fast path arming versus
    slow path arming. This change will guarantee that the CQEs will
    always get a chance to be re-armed during fast path completions.

    3. Removed the inline event coalescing division for perf optimization.
    Also fixed a division-by-zero error when the event_coal_div module
    param was set to 0.

    4. Changed the default SQ WQEs size from 256 to 128 to match chip
    default.

    5. Changed the cmd_per_lun from 32 to 24.

    Signed-off-by: Eddie Wai
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Eddie Wai
     
  • Modified the 10s wait time for inflight offload connections to
    advance to the next state to 2s based on test result.
    Modified the 20s shutdown timeout to 30s based on test result.

    Signed-off-by: Eddie Wai
    Reviewed-by: Mike Christie
    Cc: stable@kernel.org
    Signed-off-by: James Bottomley

    Eddie Wai
     
  • The number of chip's internal command cell, which is use to generate
    SCSI cmd packets to the target, was not initialized correctly by
    the driver when the sq_size is changed from the default 128.
    This, in turn, will create a problem where the chip's transmit pipe
    will erroneously reuse an old command cell that is no longer valid.
    The fix is to correctly initialize the chip's command cell upon setup.

    Signed-off-by: Eddie Wai
    Reviewed-by: Mike Christie
    Cc: stable@kernel.org
    Signed-off-by: James Bottomley

    Eddie Wai
     

25 Feb, 2011

3 commits


22 Dec, 2010

9 commits


06 Sep, 2010

3 commits


28 Jul, 2010

6 commits

  • This sysfs attribute is proven to be useful during pivot_root.

    Signed-off-by: Michael Chan
    Signed-off-by: Eddie Wai
    Reviewed-by: Benjamin Li
    Acked-by: Anil Veerabhadrappa
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Michael Chan
     
  • In compliance to RFC793, a TCP graceful termination will be used
    instead of an abortive termination for the case where the remote
    has initiated the close of the connection.
    Additionally, a TCP abortive termination will be used to close the
    connection when a logout response is not received in time after a
    logout request has been initiated.

    Signed-off-by: Eddie Wai
    Reviewed-by: Michael Chan
    Reviewed-by: Benjamin Li
    Acked-by: Anil Veerabhadrappa
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Eddie Wai
     
  • Added variables to separate the fine tuned timeout values for
    connection destroy and context destroy for both 1g and 10g devices.

    v2: Extended the 5771X disconnect timeout from 10s to 20s as the firmware
    has a retransmission timeout of 16s. This fixes one of the iscsi_endpoint
    leak issues when the target is slow or non-responsive to our TCP FIN.

    Signed-off-by: Eddie Wai
    Reviewed-by: Michael Chan
    Reviewed-by: Benjamin Li
    Acked-by: Anil Veerabhadrappa
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Eddie Wai
     
  • For cases where the iSCSI disconnection procedure times out due to
    the iSCSI daemon being slow or unresponsive, the bnx2i_stop routine
    will now perform hardware cleanup via bnx2i_hw_ep_disconnect on all
    active endpoints so that subsequent operations will perform properly.
    Also moved the mutex locks inside ep_connect and ep_disconnect so
    that proper exclusivity can resolve simultaneous calls to the
    ep_disconnect routine.

    v2: Removed the unnecessary read lock in the bnx2i_stop

    Signed-off-by: Eddie Wai
    Reviewed-by: Michael Chan
    Reviewed-by: Benjamin Li
    Acked-by: Anil Veerabhadrappa
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Eddie Wai
     
  • This introduces a new active linklist which would link up all active
    bnx2i_endpoints. This will be used by subsequent patches that
    follows.

    Signed-off-by: Eddie Wai
    Reviewed-by: Michael Chan
    Reviewed-by: Benjamin Li
    Acked-by: Anil Veerabhadrappa
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Eddie Wai
     
  • This patch introduces a new bnx2i_hw_ep_disconnect routine which
    contains all chip related disconnect and clean up procedure of
    iSCSI offload connections. This separation is intended as a
    preparation for the subsequent bnx2i_stop patch.

    Signed-off-by: Eddie Wai
    Reviewed-by: Michael Chan
    Reviewed-by: Benjamin Li
    Reviewed-by: Mike Christie
    Acked-by: Anil Veerabhadrappa
    Signed-off-by: James Bottomley

    Eddie Wai
     

12 Apr, 2010

1 commit

  • bnx2i driver has to wait and cleanup all iscsi endpoints before
    returning from bnx2i_stop(). This is to make sure all chip resources
    are freed before chip is reset.

    As the requirements for 1G and 10G chipsets is different, added
    per-device 'hba_shutdown_tmo' parameter to adapter structure

    If the connections are not torn down by the daemon within this timeout
    period, 'cid's will be leaked in 10G device. 1G devices are more
    flexible and do not leak any resources because the whole chip ports
    gets reset when MTU is changed or ethtool selftest is run

    fixed a minor issue in bnx2i_ep_poll() which unnecessarily forced
    error return code when driver timed out waiting for TCP connect
    request to complete

    Signed-off-by: Anil Veerabhadrappa
    Reviewed-by: Mike Christie
    Signed-off-by: James Bottomley

    Anil Veerabhadrappa