15 Oct, 2010

4 commits

  • Add new interrupt ack functions and other hardware interface logic to
    support the new device.

    Update version to 2.2.6.

    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan
     
  • and put all uio related structures and ring buffers in it. This allows
    uio operations to be done independent of the cnic device structures.

    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan
     
  • The bnx2x devices require a 2 second quiet time before sending the last
    RAMROD command to destroy a connection. This sleep wait adds up to a
    long delay when iscsid is serially destroying maultiple connections.

    Create a workqueue to perform the final connection cleanup in the
    background to speed up the process. This significantly speeds up the
    process as the wait time can be done in parallel for multiple connections.

    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan
     
  • so that we can additional bit definitions without requiring a spinlock.

    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan
     

07 Oct, 2010

4 commits

  • This is the new FW HSI blob and the relevant definitions without logic changes.
    It also included code adaptation for new HSI. New features are not enabled.

    New FW/HSI includes:
    - Support for 57712 HW
    - Future support for VF (not used)
    - Improvements in FW interrupts scheme
    - FW FCoE hooks (stubs for future usage)

    Signed-off-by: Dmitry Kravkov
    Signed-off-by: Michael Chan
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Dmitry Kravkov
     
  • Initialize the rings only during cnic_uio_open() and shut them down
    during cnic_uio_close(). Check for the new bit CNIC_LCL_FL_RINGS_INITED
    before checking for ring interrupt.

    Signed-off-by: Michael Chan
    Signed-off-by: Dmitry Kravkov
    Signed-off-by: David S. Miller

    Michael Chan
     
  • The pfid (physical function ID) is the same as PCI function on production
    devices. The pfid for future devices will be different and will be used
    for internal memory offsets.

    Signed-off-by: Michael Chan
    Signed-off-by: Dmitry Kravkov
    Signed-off-by: David S. Miller

    Michael Chan
     
  • Preparation work for upcoming firmware interface changes.

    Signed-off-by: Michael Chan
    Signed-off-by: Dmitry Kravkov
    Signed-off-by: David S. Miller

    Michael Chan
     

26 Jun, 2010

2 commits

  • By creating a common data stucture kcq_info for all devices, the kcq
    (kernel completion queue) for all devices can be allocated by common
    code.

    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan
     
  • The current code makes assumptions about the CID (context ID) memory
    space and starting CID that may not be always correct when firmware
    changes. In particular, BNX2_ISCSI_START_CID may not always be fixed.
    We now calculate cp->max_cid_space and cp->iscsi_start_cid dynamically
    instead of using fixed constants. The unused cp->max_iscsi_conn is also
    eliminated.

    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan
     

19 May, 2010

2 commits

  • Everytime the iSCSI ring finishes setup or shutdown, we need to return
    the SPQ (slow path queue) credit to the bnx2x driver. Without this step,
    the SPQ will eventually be full causing iSCSI to fail. This can happen
    after 3 or 4 MTU changes for example.

    Add code to wait for these slow path commands to complete in the RX ring
    and return the SPQ credit to bnx2x.

    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan
     
  • It is easier to expand the flags for other purposes because it does
    not require a spin_lock. The next bug fix patch needs a flag in
    cnic_local_flags.

    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan
     

26 Feb, 2010

3 commits


12 Oct, 2009

1 commit


16 Aug, 2009

1 commit

  • The slow path ulp_start and ulp_stop calls to the bnx2i driver
    are sleepable calls and therefore should not be protected using
    rcu_read_lock. Fix it by using mutex and setting a bit during
    these calls. cnic_unregister_device() will now wait for the bit
    to clear before completing the call.

    Signed-off-by: Michael Chan
    Reviewed-by: Benjamin Li
    Signed-off-by: David S. Miller

    Michael Chan
     

09 Jun, 2009

1 commit

  • The CNIC driver controls BNX2 hardware rings and resources used by
    iSCSI. Most hardware resources for iSCSI are separate from those
    used for ethernet networking.

    iSCSI uses a separate MAC address and IP address. The CNIC driver
    creates a UIO interface to handle the non-offloaded packets such as
    ARP, etc in userspace.

    Signed-off-by: Michael Chan
    Acked-by: David S. Miller
    Signed-off-by: James Bottomley

    Michael Chan