History log of /drivers/infiniband/hw/cxgb4/device.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
9efe10a1e1a1ab1dba0af0f520e0697f6e81ebf1 06-Oct-2011 Steve Wise <swise@opengridcomputing.com> RDMA/cxgb4: Fail RDMA initialization for unsupported cards

The iw_cxgb4 module crashes at init time if the T4 card does not
support RDMA. So clean up the init logic to correctly deal with
non-RDMA cards.

- If any RDMA resources are not available, then fail the initialization
logging an info message.
- Clean up properly on initialization failures.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
/drivers/infiniband/hw/cxgb4/device.c
2f25e9a540951ebd533b9b98d2259deb44b0b476 10-May-2011 Steve Wise <swise@opengridcomputing.com> RDMA/cxgb4: EEH errors can hang the driver

A few more EEH fixes:

c4iw_wait_for_reply(): detect fatal EEH condition on timeout and
return an error.

The iw_cxgb4 driver was only calling ib_deregister_device() on an EEH
event followed by a ib_register_device() when the device was
reinitialized. However, the RDMA core doesn't allow multiple
iterations of register/deregister by the provider. See
drivers/infiniband/core/sysfs.c: ib_device_unregister_sysfs() where
the kobject ref is held until the device is deallocated in
ib_deallocate_device(). Calling deregister adds this kobj reference,
and then a subsequent register call will generate a WARN_ON() from the
kobject subsystem because the kobject is being initialized but is
already initialized with the ref held.

So the provider must deregister and dealloc when resetting for an EEH
event, then alloc/register to re-initialize. To do this, we cannot
use the device ptr as our ULD handle since it will change with each
reallocation. This commit adds a ULD context struct which is used as
the ULD handle, and then contains the device pointer and other state
needed.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
/drivers/infiniband/hw/cxgb4/device.c
bbe9a0a2bc07cf30c5b89b51154f2c87200a5dfd 10-May-2011 Steve Wise <swise@opengridcomputing.com> RDMA/cxgb4: Initialization errors can cause crash

c4iw_uld_add() must return ERR_PTR() values instead of NULL on failure.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
/drivers/infiniband/hw/cxgb4/device.c
db5d040d7b2d15539d2c84932f93621d9bd482f7 11-Mar-2011 Steve Wise <swise@opengridcomputing.com> RDMA/cxgb4: Debugfs dump_qp() updates

- Show whether the SQ is in onchip memory or not.
- Dump both SQ and RQ QIDs.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
/drivers/infiniband/hw/cxgb4/device.c
767fbe8151d1a7cc8a69e52e354e4220a5e804fb 11-Mar-2011 Steve Wise <swise@opengridcomputing.com> RDMA/cxgb4: Dispatch FATAL event on EEH errors

This at least kicks the user mode applications that are watching for
device events.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
/drivers/infiniband/hw/cxgb4/device.c
294281373999e7fff393c04eb16092a8f00ad5aa 11-Mar-2011 Steve Wise <swise@opengridcomputing.com> RDMA/cxgb4: Remove db_drop_task

Unloading iw_cxgb4 can crash due to the unload code trying to use
db_drop_task, which is uninitialized. So remove this dead code.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
/drivers/infiniband/hw/cxgb4/device.c
da411ba1daf895bdae9420101e8e2741d6633342 18-Oct-2010 Steve Wise <swise@opengridcomputing.com> RDMA/cxgb4: Use cxgb4 service for packet gl to skb

Remove the local service t4_pktgl_to_skb() and use cxgb4_pktgl_to_skb()
exported by cxgb4.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
/drivers/infiniband/hw/cxgb4/device.c
3160977a6e66ea4c4b4f33010f5d04f0004b938c 29-Sep-2010 Steve Wise <swise@opengridcomputing.com> RDMA/cxgb4: Use simple_read_from_buffer() for debugfs handlers

We can replace our equivalent open-coded version.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
/drivers/infiniband/hw/cxgb4/device.c
8bbac892fb75d20fa274ca026e24faf00afbf9dd 29-Sep-2010 Steve Wise <swise@opengridcomputing.com> RDMA/cxgb4: Add default_llseek to debugfs files

Incorporate BKL removal changes.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
/drivers/infiniband/hw/cxgb4/device.c
c6d7b26791a2aefdf97f2af1e93161ed05acd631 13-Sep-2010 Steve Wise <swise@opengridcomputing.com> RDMA/cxgb4: Support on-chip SQs

T4 support on-chip SQs to reduce latency. This patch adds support for
this in iw_cxgb4:

- Manage ocqp memory like other adapter mem resources.
- Allocate user mode SQs from ocqp mem if available.
- Map ocqp mem to user process using write combining.
- Map PCIE_MA_SYNC reg to user process.

Bump uverbs ABI.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
/drivers/infiniband/hw/cxgb4/device.c
9e8d1fa3420f489da8a5da47c026511aa71fa50b 10-Sep-2010 Steve Wise <swise@opengridcomputing.com> RDMA/cxgb4: debugfs files for dumping active stags

Add "stags" debugfs file. This is useful for examining the TPTE and
PBL entries in adapter memory. It allows scripts to dump just the
active entries.

Also clean up the "qps" file handlers and shared common code.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
/drivers/infiniband/hw/cxgb4/device.c
93fb72e443b9fcbef598faa05478883952edca77 23-Jun-2010 Steve Wise <swise@opengridcomputing.com> RDMA/cxgb4: Obtain RDMA QID ranges from LLD/FW

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
/drivers/infiniband/hw/cxgb4/device.c
1c01c5388306a4c2245b71da0cba22d521e897ae 20-May-2010 Steve Wise <swise@opengridcomputing.com> RDMA/cxgb4: Register RDMA provider based on LLD state_change events

The LLD now supports proper UP state change events, so move the RDMA
provider registration to UP path.

This fixes a crash when loading iw_cxgb4 _after_ the NFS/RDMA
transport is up and running.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
/drivers/infiniband/hw/cxgb4/device.c
fd388ce677e7de9180a7d46d12c5162f76af64ac 20-May-2010 Steve Wise <swise@opengridcomputing.com> RDMA/cxgb4: Detach from the LLD after unregistering RDMA device

In the RDMA core unregister path, kernel users will be calling down
into the T4 provider to release resources. So we cannot detach from
the LLD until this process completes.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
/drivers/infiniband/hw/cxgb4/device.c
cfdda9d764362ab77b11a410bb928400e6520d57 22-Apr-2010 Steve Wise <swise@opengridcomputing.com> RDMA/cxgb4: Add driver for Chelsio T4 RNIC

Add an RDMA/iWARP driver for Chelsio T4 Ethernet adapters.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
/drivers/infiniband/hw/cxgb4/device.c