09 May, 2009

1 commit


03 May, 2009

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6: (53 commits)
    [SCSI] libosd: OSD2r05: on-the-wire changes for latest OSD2 revision 5.
    [SCSI] libosd: OSD2r05: OSD_CRYPTO_KEYID_SIZE will grow 20 => 32 bytes
    [SCSI] libosd: OSD2r05: Prepare for rev5 attribute list changes
    [SCSI] libosd: fix potential ERR_PTR dereference in osd_initiator.c
    [SCSI] mpt2sas : bump driver version to 01.100.02.00
    [SCSI] mpt2sas: fix hotplug event processing
    [SCSI] mpt2sas : release diagnotic buffers prior host reset
    [SCSI] mpt2sas : Broadcast Primative AEN bug fix
    [SCSI] mpt2sas : Identify Dell series-7 adapters at driver load time
    [SCSI] mpt2sas : driver name needs to be in the MPT2IOCINFO ioctl
    [SCSI] mpt2sas : running out of message frames
    [SCSI] mpt2sas : fix oops when firmware sends large sense buffer size
    [SCSI] mpt2sas : the sanity check in base_interrupt needs to be on dword boundary
    [SCSI] mpt2sas : unique ioctl magic number
    [SCSI] fix sign extension with 1.5TB usb-storage LBD=y
    [SCSI] ipr: Fix sleeping function called with interrupts disabled
    [SCSI] fcoe: fip: add multicast filter to receive FIP advertisements.
    [SCSI] libfc: Fix compilation warnings with allmodconfig
    [SCSI] fcoe: fix spelling typos and bad comments
    [SCSI] fcoe: don't export functions that are internal to fcoe
    ...

    Linus Torvalds
     

29 Apr, 2009

1 commit


28 Apr, 2009

12 commits


27 Apr, 2009

1 commit


22 Apr, 2009

2 commits


21 Apr, 2009

6 commits

  • Commands INIT_HCA, CLOSE_HCA, SYS_EN, SYS_DIS, and CLOSE_IB all have 1
    second timeouts. For INIT_HCA this causes problems when had more than
    2^18 are QPs configured, since the command takes more than 1 second to
    complete.

    All other commands have 60-second timeouts. This patch makes the
    above commands consistent with the rest of the commands (and with the
    chip documentation).

    This patch is an expansion of a patch from Arthur Kepner
    fixing just the INIT_HCA timeout.

    Signed-off-by: Jack Morgenstein
    Signed-off-by: Roland Dreier

    Jack Morgenstein
     
  • QP attributes must stay initialized when moving back to IDLE. Zeroing
    them will crash the system in _flush_qp() if the QP is subsequently
    moved to ERROR and back to IDLE.

    Signed-off-by: Steve Wise
    Signed-off-by: Roland Dreier

    Steve Wise
     
  • The code incorrectly failed memory registration if the buffer was not
    page aligned. Also, the length field is mangled causing the hardware
    to think the registration is much larger than it really is.

    The fix is to remove the page alignment restriction as well the
    incorrect length adjustment. Also make sure that all buffers after
    the first start at a page boundary, and all buffers except the last
    end on a page boundary.

    Signed-off-by: Don Wood
    Signed-off-by: Roland Dreier

    Don Wood
     
  • Initialize pbl_count_256 to 0 to get rid of the warning:

    drivers/infiniband/hw/nes/nes_verbs.c: In function 'nes_reg_mr':
    drivers/infiniband/hw/nes/nes_verbs.c:1955: warning: 'pbl_count_256' may be used uninitialized in this function

    Reported-by: Roland Dreier
    Signed-off-by: Chien Tung
    Signed-off-by: Roland Dreier

    Chien Tung
     
  • If NAPI is enabled while IPoIB's CQ is being drained, it creates a
    race on priv->ibwc between ipoib_poll() and ipoib_drain_cq(), leading
    to memory corruption.

    The solution is to enable/disable NAPI in ipoib_ib_dev_{open/stop}()
    instead of in ipoib_{open/stop}(), and sync NAPI on the INITIALIZED
    flag instead on the ADMIN_UP flag. This way NAPI will be disabled when
    ipoib_drain_cq() is called.

    This fixes .

    Signed-off-by: Yossi Etigin
    Signed-off-by: Roland Dreier

    Yossi Etigin
     
  • NFS/RDMA currently fails to set up connections if peer2peer is on.
    This is due to the fact that the NFS/RDMA client sets its ORD to 0.

    If peer2peer is set, make sure the active side ORD is >= 1 and the
    passive side IRD is >=1.

    Signed-off-by: Steve Wise
    Signed-off-by: Roland Dreier

    Steve Wise
     

10 Apr, 2009

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
    RDMA/nes: Add support for new SFP+ PHY
    RDMA/nes: Add wide_ppm_offset parm for switch compatibility
    RDMA/nes: Fix SFP+ PHY initialization
    RDMA/nes: Fix nes_nic_cm_xmit() error handling
    RDMA/nes: Fix error handling issues
    RDMA/nes: Fix incorrect casts on 32-bit architectures
    IPoIB: Document newish features
    RDMA/cma: Create cm id even when IB port is down
    RDMA/cma: Use rate from IPoIB broadcast when joining IPoIB multicast groups
    IPoIB: Avoid free_netdev() BUG when destroying a child interface
    mlx4_core: Don't leak mailbox for SET_PORT on Ethernet ports
    RDMA/cxgb3: Release dependent resources only when endpoint memory is freed.
    RDMA/cxgb3: Handle EEH events
    IB/mlx4: Use pgprot_writecombine() for BlueFlame pages

    Linus Torvalds
     

09 Apr, 2009

8 commits

  • Roland Dreier
     
  • Add new register settings for new SFP+ PHY/firmware.
    Add new PHY to to nes_netdev_get/set_settings.

    Signed-off-by: Chien Tung
    Signed-off-by: Roland Dreier

    Chien Tung
     
  • We have observed unstable link with a new BNT switch.

    Add wide_ppm_offset parameter to allow the user to control the clock
    ppm offset on the CX4 interface for better compatibility. Default is
    100ppm, setting it to 1 will increase it to 300ppm. Change default
    SerDes1 reference clock to external source.

    Signed-off-by: Chien Tung
    Signed-off-by: Roland Dreier

    Chien Tung
     
  • SFP+ PHY initialization has very long delays, incorrect settings for
    direct attach copper cables, and inconsistent link detection.

    Adjust delays to the minimum required by the PHY. Worst case is now
    less than 4 seconds. Add new register settings for direct attach
    cables. Change link detection logic to use two new registers for more
    consistent link state detection. Reorganize code to shorten line
    length.

    Signed-off-by: Chien Tung
    Signed-off-by: Roland Dreier

    Chien Tung
     
  • We are getting crash or hung situation when we are running network
    cable pull tests during RDMA traffic.

    In schedule_nes_timer(), we return an error if nes_nic_cm_xmit()
    returns failure. This is changed to success as skb is being put on
    the timer routines to be processed later. In send_syn() case, we are
    indicating connect failure once from nes_connect() and the other when
    the rexmit retries expires.

    The other issue is skb->users which we are incrementing before calling
    nes_nic_cm_xmit() which calls dev_queue_xmit() but in case of failure
    we are decrementing the skb->users at the same time putting the skb on
    the rexmit path. Even if dev_queue_xmit() fails, the skb->users is
    decremented already. We are removing the decrement of skb->users in
    case of failure from both schedule_nes_timer() as well as from
    nes_cm_timer_tick().

    There is also extra check in nes_cm_timer_tick() for rexmit failure
    which does a break from the loop is removed. This causes problem as
    the other nodes have their cm_node->ref_count incremented and are not
    processed.

    Signed-off-by: Faisal Latif
    Signed-off-by: Roland Dreier

    Faisal Latif
     
  • Fix issues found by static code analysis:

    (1) Check if cm_node was successfully created for loopback connection.

    (2) schedule_nes_timer() does not free up allocated memory after
    encountering an error. There is a WARN_ON() for this condition.

    (3) there is a cm_node->freed flag which is set but not used.

    Reported-by: Dan Carpenter
    Signed-off-by: Faisal Latif
    Signed-off-by: Roland Dreier

    Faisal Latif
     
  • The were some incorrect casts to unsigned long that caused 64-bit values
    to be truncated on 32-bit architectures and made the driver pass invalid
    adresses and lengths to the hardware. The problems were primarily seen
    with kernels with highmem configured but some could show up in
    non-highmem kernels, too.

    Signed-off-by: Don Wood
    Signed-off-by: Roland Dreier

    Don Wood
     
  • When doing rdma_resolve_addr(), if the relevant IB port is down, the
    function fails and the cm_id is not bound to the correct device.
    Therefore, application does not have a device handle and cannot wait
    for the port to become active. The function fails because the
    underlying IPoIB interface is not joined to the broadcast group and
    therefore the SA does not have a multicast record to take a Q_Key
    from.

    The fix is to use lazy Q_Key resolution - cma_set_qkey() will set
    id_priv->qkey if it was not set, and will be called just before the
    Q_Key is really required.

    Signed-off-by: Yossi Etigin
    Acked-by: Sean Hefty
    Signed-off-by: Roland Dreier

    Yossi Etigin
     

07 Apr, 2009

2 commits


02 Apr, 2009

1 commit


01 Apr, 2009

1 commit


30 Mar, 2009

3 commits

  • The cxgb3 l2t entry, hwtid, and dst entry were being released before
    all the iwch_ep references were released. This can cause a crash in
    t3_l2t_send_slow() and other places where the l2t entry is used.

    The fix is to defer releasing these resources until all endpoint
    references are gone.

    Details:

    - move flags field to the iwch_ep_common struct.
    - add a flag indicating resources are to be released.
    - release resources at endpoint free time instead of close/abort time.

    Signed-off-by: Steve Wise
    Signed-off-by: Roland Dreier

    Steve Wise
     
  • - wrap calls into cxgb3 and fail them if we're in the middle
    of a PCI EEH event.

    - correctly unwind and release endpoint and other resources when
    we are in an EEH event.

    - dispatch IB_EVENT_DEVICE_FATAL event when cxgb3 notifies iw_cxgb3 of
    a fatal error.

    Signed-off-by: Steve Wise
    Signed-off-by: Roland Dreier

    Steve Wise
     
  • The PAT work on x86 has finally made pgprot_writecombine() a usable API
    for modular drivers. As the comment indicates, this is exactly what we
    want to use in mlx4_ib to map BlueFlame pages up to userspace, since
    using WC for these pages improves small message latency significantly.

    Signed-off-by: Roland Dreier

    Roland Dreier