projects/linux·commit 75e98b34

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband

75e98b34 · Linus Torvalds <[email protected]> · 2008-04-18 08:20:06 -07:00

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (104 commits)
  IB/iser: Don't change itt endianness
  IB/mlx4: Update module version and release date
  IPoIB: Handle case when P_Key is deleted and re-added at same index
  IB/iser: Release connection resources on RDMA_CM_EVENT_DEVICE_REMOVAL event
  IB/mlx4: Fix incorrect comment
  IB/mlx4: Fix race when detaching a QP from a multicast group
  IB/ehca: Support all ibv_devinfo values in query_device() and query_port()
  RDMA/nes: Free IRQ before killing tasklet
  IB/mthca: Update module version and release date
  IB/mlx4: Update QP state if query QP succeeds
  IB/mthca: Update QP state if query QP succeeds
  RDMA/amso1100: Add check for NULL reply_msg in c2_intr()
  IB/mlx4: Add support for resizing CQs
  IB/mlx4: Add support for modifying CQ moderation parameters
  IPoIB: Support modifying IPoIB CQ event moderation
  IB/core: Add support for modify CQ
  IPoIB: Add basic ethtool support
  mlx4_core: Increase max number of QPs to 128K
  RDMA/amso1100: Add support for "send with invalidate" work requests
  IB/core: Add support for "send with invalidate" work requests
  ...
Commit
75e98b34155264d943aa53edce465e87f3ccbadf
Parents
30bc9456 · 0a22ab92

Merge commit. Changes below are compared with the first parent: 30bc9456.

Changes

131 files changed · +11740 −2288

FileStatusAddDelContent
drivers/infiniband/core/cm.cmodified+44−19View file
drivers/infiniband/core/cma.cmodified+1−1View file
drivers/infiniband/core/fmr_pool.cmodified+1−2View file
drivers/infiniband/core/ucma.cmodified+1−1View file
drivers/infiniband/core/uverbs.hmodified+2−2View file
drivers/infiniband/core/uverbs_cmd.cmodified+12−2View file
drivers/infiniband/core/uverbs_main.cmodified+11−17View file
drivers/infiniband/core/verbs.cmodified+13−1View file
drivers/infiniband/hw/amso1100/c2.cmodified+43−37View file
drivers/infiniband/hw/amso1100/c2.hmodified+8−8View file
drivers/infiniband/hw/amso1100/c2_ae.cmodified+5−5View file
drivers/infiniband/hw/amso1100/c2_alloc.cmodified+6−6View file
drivers/infiniband/hw/amso1100/c2_cq.cmodified+2−2View file
drivers/infiniband/hw/amso1100/c2_intr.cmodified+5−1View file
drivers/infiniband/hw/amso1100/c2_mm.cmodified+1−1View file
drivers/infiniband/hw/amso1100/c2_mq.cmodified+2−2View file
drivers/infiniband/hw/amso1100/c2_mq.hmodified+1−1View file
drivers/infiniband/hw/amso1100/c2_provider.cmodified+44−41View file
drivers/infiniband/hw/amso1100/c2_qp.cmodified+19−11View file
drivers/infiniband/hw/amso1100/c2_rnic.cmodified+16−15View file
drivers/infiniband/hw/amso1100/c2_vq.cmodified+1−1View file
drivers/infiniband/hw/amso1100/c2_wr.hmodified+106−106View file
drivers/infiniband/hw/cxgb3/cxio_dbg.cmodified+12−12View file
drivers/infiniband/hw/cxgb3/cxio_hal.cmodified+42−42View file
drivers/infiniband/hw/cxgb3/cxio_resource.cmodified+6−6View file
drivers/infiniband/hw/cxgb3/iwch.cmodified+3−3View file
drivers/infiniband/hw/cxgb3/iwch.hmodified+1−1View file
drivers/infiniband/hw/cxgb3/iwch_cm.cmodified+83−83View file
drivers/infiniband/hw/cxgb3/iwch_cm.hmodified+2−2View file
drivers/infiniband/hw/cxgb3/iwch_cq.cmodified+2−2View file
drivers/infiniband/hw/cxgb3/iwch_ev.cmodified+6−6View file
drivers/infiniband/hw/cxgb3/iwch_mem.cmodified+3−3View file
drivers/infiniband/hw/cxgb3/iwch_provider.cmodified+39−40View file
drivers/infiniband/hw/cxgb3/iwch_provider.hmodified+2−2View file
drivers/infiniband/hw/cxgb3/iwch_qp.cmodified+21−21View file
drivers/infiniband/hw/ehca/ehca_av.cmodified+0−31View file
drivers/infiniband/hw/ehca/ehca_classes.hmodified+0−2View file
drivers/infiniband/hw/ehca/ehca_cq.cmodified+0−19View file
drivers/infiniband/hw/ehca/ehca_hca.cmodified+80−49View file
drivers/infiniband/hw/ehca/ehca_main.cmodified+10−9View file
drivers/infiniband/hw/ehca/ehca_mrmw.cmodified+4−38View file
drivers/infiniband/hw/ehca/ehca_pd.cmodified+0−11View file
drivers/infiniband/hw/ehca/ehca_qp.cmodified+3−48View file
drivers/infiniband/hw/ehca/ehca_reqs.cmodified+1−1View file
drivers/infiniband/hw/ehca/ehca_tools.hmodified+8−8View file
drivers/infiniband/hw/ehca/ehca_uverbs.cmodified+0−19View file
drivers/infiniband/hw/ipath/Makefilemodified+3−0View file
drivers/infiniband/hw/ipath/ipath_7220.hadded+57−0View file
drivers/infiniband/hw/ipath/ipath_common.hmodified+47−7View file
drivers/infiniband/hw/ipath/ipath_debug.hmodified+2−0View file
drivers/infiniband/hw/ipath/ipath_diag.cmodified+25−10View file
drivers/infiniband/hw/ipath/ipath_driver.cmodified+718−323View file
drivers/infiniband/hw/ipath/ipath_eeprom.cmodified+362−66View file
drivers/infiniband/hw/ipath/ipath_file_ops.cmodified+144−32View file
drivers/infiniband/hw/ipath/ipath_iba6110.cmodified+24−27View file
drivers/infiniband/hw/ipath/ipath_iba6120.cmodified+156−47View file
drivers/infiniband/hw/ipath/ipath_iba7220.cadded+2571−0View file
drivers/infiniband/hw/ipath/ipath_init_chip.cmodified+197−115View file
drivers/infiniband/hw/ipath/ipath_intr.cmodified+388−268View file
drivers/infiniband/hw/ipath/ipath_kernel.hmodified+263−41View file
drivers/infiniband/hw/ipath/ipath_mad.cmodified+72−38View file
drivers/infiniband/hw/ipath/ipath_qp.cmodified+40−19View file
drivers/infiniband/hw/ipath/ipath_rc.cmodified+44−23View file
drivers/infiniband/hw/ipath/ipath_registers.hmodified+104−64View file
drivers/infiniband/hw/ipath/ipath_ruc.cmodified+12−10View file
drivers/infiniband/hw/ipath/ipath_sd7220.cadded+1462−0View file
drivers/infiniband/hw/ipath/ipath_sd7220_img.cadded+1082−0View file
drivers/infiniband/hw/ipath/ipath_sdma.cadded+790−0View file
drivers/infiniband/hw/ipath/ipath_srq.cmodified+3−2View file
drivers/infiniband/hw/ipath/ipath_stats.cmodified+18−15View file
drivers/infiniband/hw/ipath/ipath_sysfs.cmodified+95−9View file
drivers/infiniband/hw/ipath/ipath_uc.cmodified+4−4View file
drivers/infiniband/hw/ipath/ipath_ud.cmodified+4−3View file
drivers/infiniband/hw/ipath/ipath_user_sdma.cadded+879−0View file
drivers/infiniband/hw/ipath/ipath_user_sdma.hadded+54−0View file
drivers/infiniband/hw/ipath/ipath_verbs.cmodified+388−25View file
drivers/infiniband/hw/ipath/ipath_verbs.hmodified+26−6View file
drivers/infiniband/hw/mlx4/cq.cmodified+286−33View file
drivers/infiniband/hw/mlx4/mad.cmodified+1−1View file
drivers/infiniband/hw/mlx4/main.cmodified+17−8View file
drivers/infiniband/hw/mlx4/mlx4_ib.hmodified+15−0View file
drivers/infiniband/hw/mlx4/qp.cmodified+92−25View file
drivers/infiniband/hw/mthca/mthca_cmd.cmodified+5−1View file
drivers/infiniband/hw/mthca/mthca_cmd.hmodified+1−0View file
drivers/infiniband/hw/mthca/mthca_cq.cmodified+9−5View file
drivers/infiniband/hw/mthca/mthca_dev.hmodified+7−7View file
drivers/infiniband/hw/mthca/mthca_eq.cmodified+2−2View file
drivers/infiniband/hw/mthca/mthca_mad.cmodified+1−1View file
drivers/infiniband/hw/mthca/mthca_main.cmodified+11−4View file
drivers/infiniband/hw/mthca/mthca_memfree.cmodified+4−2View file
drivers/infiniband/hw/mthca/mthca_profile.cmodified+2−2View file
drivers/infiniband/hw/mthca/mthca_profile.hmodified+1−1View file
drivers/infiniband/hw/mthca/mthca_provider.cmodified+4−1View file
drivers/infiniband/hw/mthca/mthca_qp.cmodified+19−9View file
drivers/infiniband/hw/mthca/mthca_wqe.hmodified+10−8View file
drivers/infiniband/hw/nes/nes.cmodified+4−11View file
drivers/infiniband/hw/nes/nes.hmodified+3−29View file
drivers/infiniband/hw/nes/nes_cm.cmodified+73−58View file
drivers/infiniband/hw/nes/nes_cm.hmodified+0−35View file
drivers/infiniband/hw/nes/nes_hw.cmodified+31−18View file
drivers/infiniband/hw/nes/nes_nic.cmodified+2−24View file
drivers/infiniband/hw/nes/nes_utils.cmodified+1−1View file
drivers/infiniband/hw/nes/nes_verbs.cmodified+15−14View file
drivers/infiniband/ulp/ipoib/Makefilemodified+2−1View file
drivers/infiniband/ulp/ipoib/ipoib.hmodified+10−0View file
drivers/infiniband/ulp/ipoib/ipoib_cm.cmodified+13−2View file
drivers/infiniband/ulp/ipoib/ipoib_ethtool.cadded+99−0View file
drivers/infiniband/ulp/ipoib/ipoib_ib.cmodified+90−36View file
drivers/infiniband/ulp/ipoib/ipoib_main.cmodified+30−3View file
drivers/infiniband/ulp/ipoib/ipoib_verbs.cmodified+3−0View file
drivers/infiniband/ulp/iser/iser_initiator.cmodified+2−2View file
drivers/infiniband/ulp/iser/iser_verbs.cmodified+1−4View file
drivers/infiniband/ulp/srp/ib_srp.cmodified+6−1View file
drivers/net/mlx4/catas.cmodified+1−1View file
drivers/net/mlx4/cmd.cmodified+2−1View file
drivers/net/mlx4/cq.cmodified+65−7View file
drivers/net/mlx4/eq.cmodified+4−1View file
drivers/net/mlx4/fw.cmodified+13−0View file
drivers/net/mlx4/fw.hmodified+1−0View file
drivers/net/mlx4/intf.cmodified+2−6View file
drivers/net/mlx4/main.cmodified+3−3View file
drivers/net/mlx4/mcg.cmodified+3−9View file
drivers/net/mlx4/mlx4.hmodified+2−2View file
include/linux/mlx4/cmd.hmodified+1−1View file
include/linux/mlx4/cq.hmodified+17−2View file
include/linux/mlx4/device.hmodified+1−0View file
include/linux/mlx4/driver.hmodified+1−2View file
include/linux/mlx4/qp.hmodified+11−4View file
include/rdma/ib_user_verbs.hmodified+4−1View file
include/rdma/ib_verbs.hmodified+31−4View file
net/sunrpc/xprtrdma/verbs.cmodified+0−1View file

Only the first 600 diff lines are shown. Download the complete patch.

drivers/infiniband/core/cm.c

View file
diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
index faa7ce3..a47fe64 100644
--- a/drivers/infiniband/core/cm.c
+++ b/drivers/infiniband/core/cm.c
@@ -467,6 +467,31 @@ static int cm_compare_private_data(u8 *private_data,
return memcmp(src, dst_data->data, IB_CM_COMPARE_SIZE);
}
+/*
+ * Trivial helpers to strip endian annotation and compare; the
+ * endianness doesn't actually matter since we just need a stable
+ * order for the RB tree.
+ */
+static int be32_lt(__be32 a, __be32 b)
+{
+ return (__force u32) a < (__force u32) b;
+}
+
+static int be32_gt(__be32 a, __be32 b)
+{
+ return (__force u32) a > (__force u32) b;
+}
+
+static int be64_lt(__be64 a, __be64 b)
+{
+ return (__force u64) a < (__force u64) b;
+}
+
+static int be64_gt(__be64 a, __be64 b)
+{
+ return (__force u64) a > (__force u64) b;
+}
+
static struct cm_id_private * cm_insert_listen(struct cm_id_private *cm_id_priv)
{
struct rb_node **link = &cm.listen_service_table.rb_node;
@@ -492,9 +517,9 @@ static struct cm_id_private * cm_insert_listen(struct cm_id_private *cm_id_priv)
link = &(*link)->rb_left;
else if (cm_id_priv->id.device > cur_cm_id_priv->id.device)
link = &(*link)->rb_right;
- else if (service_id < cur_cm_id_priv->id.service_id)
+ else if (be64_lt(service_id, cur_cm_id_priv->id.service_id))
link = &(*link)->rb_left;
- else if (service_id > cur_cm_id_priv->id.service_id)
+ else if (be64_gt(service_id, cur_cm_id_priv->id.service_id))
link = &(*link)->rb_right;
else if (data_cmp < 0)
link = &(*link)->rb_left;
@@ -527,9 +552,9 @@ static struct cm_id_private * cm_find_listen(struct ib_device *device,
node = node->rb_left;
else if (device > cm_id_priv->id.device)
node = node->rb_right;
- else if (service_id < cm_id_priv->id.service_id)
+ else if (be64_lt(service_id, cm_id_priv->id.service_id))
node = node->rb_left;
- else if (service_id > cm_id_priv->id.service_id)
+ else if (be64_gt(service_id, cm_id_priv->id.service_id))
node = node->rb_right;
else if (data_cmp < 0)
node = node->rb_left;
@@ -552,13 +577,13 @@ static struct cm_timewait_info * cm_insert_remote_id(struct cm_timewait_info
parent = *link;
cur_timewait_info = rb_entry(parent, struct cm_timewait_info,
remote_id_node);
- if (remote_id < cur_timewait_info->work.remote_id)
+ if (be32_lt(remote_id, cur_timewait_info->work.remote_id))
link = &(*link)->rb_left;
- else if (remote_id > cur_timewait_info->work.remote_id)
+ else if (be32_gt(remote_id, cur_timewait_info->work.remote_id))
link = &(*link)->rb_right;
- else if (remote_ca_guid < cur_timewait_info->remote_ca_guid)
+ else if (be64_lt(remote_ca_guid, cur_timewait_info->remote_ca_guid))
link = &(*link)->rb_left;
- else if (remote_ca_guid > cur_timewait_info->remote_ca_guid)
+ else if (be64_gt(remote_ca_guid, cur_timewait_info->remote_ca_guid))
link = &(*link)->rb_right;
else
return cur_timewait_info;
@@ -578,13 +603,13 @@ static struct cm_timewait_info * cm_find_remote_id(__be64 remote_ca_guid,
while (node) {
timewait_info = rb_entry(node, struct cm_timewait_info,
remote_id_node);
- if (remote_id < timewait_info->work.remote_id)
+ if (be32_lt(remote_id, timewait_info->work.remote_id))
node = node->rb_left;
- else if (remote_id > timewait_info->work.remote_id)
+ else if (be32_gt(remote_id, timewait_info->work.remote_id))
node = node->rb_right;
- else if (remote_ca_guid < timewait_info->remote_ca_guid)
+ else if (be64_lt(remote_ca_guid, timewait_info->remote_ca_guid))
node = node->rb_left;
- else if (remote_ca_guid > timewait_info->remote_ca_guid)
+ else if (be64_gt(remote_ca_guid, timewait_info->remote_ca_guid))
node = node->rb_right;
else
return timewait_info;
@@ -605,13 +630,13 @@ static struct cm_timewait_info * cm_insert_remote_qpn(struct cm_timewait_info
parent = *link;
cur_timewait_info = rb_entry(parent, struct cm_timewait_info,
remote_qp_node);
- if (remote_qpn < cur_timewait_info->remote_qpn)
+ if (be32_lt(remote_qpn, cur_timewait_info->remote_qpn))
link = &(*link)->rb_left;
- else if (remote_qpn > cur_timewait_info->remote_qpn)
+ else if (be32_gt(remote_qpn, cur_timewait_info->remote_qpn))
link = &(*link)->rb_right;
- else if (remote_ca_guid < cur_timewait_info->remote_ca_guid)
+ else if (be64_lt(remote_ca_guid, cur_timewait_info->remote_ca_guid))
link = &(*link)->rb_left;
- else if (remote_ca_guid > cur_timewait_info->remote_ca_guid)
+ else if (be64_gt(remote_ca_guid, cur_timewait_info->remote_ca_guid))
link = &(*link)->rb_right;
else
return cur_timewait_info;
@@ -635,9 +660,9 @@ static struct cm_id_private * cm_insert_remote_sidr(struct cm_id_private
parent = *link;
cur_cm_id_priv = rb_entry(parent, struct cm_id_private,
sidr_id_node);
- if (remote_id < cur_cm_id_priv->id.remote_id)
+ if (be32_lt(remote_id, cur_cm_id_priv->id.remote_id))
link = &(*link)->rb_left;
- else if (remote_id > cur_cm_id_priv->id.remote_id)
+ else if (be32_gt(remote_id, cur_cm_id_priv->id.remote_id))
link = &(*link)->rb_right;
else {
int cmp;
@@ -2848,7 +2873,7 @@ static void cm_format_sidr_req(struct cm_sidr_req_msg *sidr_req_msg,
cm_format_mad_hdr(&sidr_req_msg->hdr, CM_SIDR_REQ_ATTR_ID,
cm_form_tid(cm_id_priv, CM_MSG_SEQUENCE_SIDR));
sidr_req_msg->request_id = cm_id_priv->id.local_id;
- sidr_req_msg->pkey = cpu_to_be16(param->path->pkey);
+ sidr_req_msg->pkey = param->path->pkey;
sidr_req_msg->service_id = param->service_id;
if (param->private_data && param->private_data_len)

drivers/infiniband/core/cma.c

View file
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index d81c156..671f137 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -1289,7 +1289,7 @@ static int iw_conn_req_handler(struct iw_cm_id *cm_id,
new_cm_id = rdma_create_id(listen_id->id.event_handler,
listen_id->id.context,
RDMA_PS_TCP);
- if (!new_cm_id) {
+ if (IS_ERR(new_cm_id)) {
ret = -ENOMEM;
goto out;
}

drivers/infiniband/core/fmr_pool.c

View file
diff --git a/drivers/infiniband/core/fmr_pool.c b/drivers/infiniband/core/fmr_pool.c
index 06d502c..1286dc1 100644
--- a/drivers/infiniband/core/fmr_pool.c
+++ b/drivers/infiniband/core/fmr_pool.c
@@ -158,8 +158,7 @@ static void ib_fmr_batch_release(struct ib_fmr_pool *pool)
#endif
}
- list_splice(&pool->dirty_list, &unmap_list);
- INIT_LIST_HEAD(&pool->dirty_list);
+ list_splice_init(&pool->dirty_list, &unmap_list);
pool->dirty_len = 0;
spin_unlock_irq(&pool->pool_lock);

drivers/infiniband/core/ucma.c

View file
diff --git a/drivers/infiniband/core/ucma.c b/drivers/infiniband/core/ucma.c
index 15937eb..ca4cf3a 100644
--- a/drivers/infiniband/core/ucma.c
+++ b/drivers/infiniband/core/ucma.c
@@ -614,7 +614,7 @@ static ssize_t ucma_query_route(struct ucma_file *file,
if (!ctx->cm_id->device)
goto out;
- resp.node_guid = ctx->cm_id->device->node_guid;
+ resp.node_guid = (__force __u64) ctx->cm_id->device->node_guid;
resp.port_num = ctx->cm_id->port_num;
switch (rdma_node_get_transport(ctx->cm_id->device->node_type)) {
case RDMA_TRANSPORT_IB:

drivers/infiniband/core/uverbs.h

View file
diff --git a/drivers/infiniband/core/uverbs.h b/drivers/infiniband/core/uverbs.h
index c75eb6c..2cad8b4 100644
--- a/drivers/infiniband/core/uverbs.h
+++ b/drivers/infiniband/core/uverbs.h
@@ -81,13 +81,13 @@ struct ib_uverbs_device {
struct ib_uverbs_event_file {
struct kref ref;
- struct file *file;
struct ib_uverbs_file *uverbs_file;
spinlock_t lock;
- int is_async;
wait_queue_head_t poll_wait;
struct fasync_struct *async_queue;
struct list_head event_list;
+ int is_async;
+ int is_closed;
};
struct ib_uverbs_file {

drivers/infiniband/core/uverbs_cmd.c

View file
diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
index 495c803..2c3bff5 100644
--- a/drivers/infiniband/core/uverbs_cmd.c
+++ b/drivers/infiniband/core/uverbs_cmd.c
@@ -1065,6 +1065,7 @@ ssize_t ib_uverbs_create_qp(struct ib_uverbs_file *file,
attr.srq = srq;
attr.sq_sig_type = cmd.sq_sig_all ? IB_SIGNAL_ALL_WR : IB_SIGNAL_REQ_WR;
attr.qp_type = cmd.qp_type;
+ attr.create_flags = 0;
attr.cap.max_send_wr = cmd.max_send_wr;
attr.cap.max_recv_wr = cmd.max_recv_wr;
@@ -1462,7 +1463,6 @@ ssize_t ib_uverbs_post_send(struct ib_uverbs_file *file,
next->num_sge = user_wr->num_sge;
next->opcode = user_wr->opcode;
next->send_flags = user_wr->send_flags;
- next->imm_data = (__be32 __force) user_wr->imm_data;
if (is_ud) {
next->wr.ud.ah = idr_read_ah(user_wr->wr.ud.ah,
@@ -1475,14 +1475,24 @@ ssize_t ib_uverbs_post_send(struct ib_uverbs_file *file,
next->wr.ud.remote_qkey = user_wr->wr.ud.remote_qkey;
} else {
switch (next->opcode) {
- case IB_WR_RDMA_WRITE:
case IB_WR_RDMA_WRITE_WITH_IMM:
+ next->ex.imm_data =
+ (__be32 __force) user_wr->ex.imm_data;
+ case IB_WR_RDMA_WRITE:
case IB_WR_RDMA_READ:
next->wr.rdma.remote_addr =
user_wr->wr.rdma.remote_addr;
next->wr.rdma.rkey =
user_wr->wr.rdma.rkey;
break;
+ case IB_WR_SEND_WITH_IMM:
+ next->ex.imm_data =
+ (__be32 __force) user_wr->ex.imm_data;
+ break;
+ case IB_WR_SEND_WITH_INV:
+ next->ex.invalidate_rkey =
+ user_wr->ex.invalidate_rkey;
+ break;
case IB_WR_ATOMIC_CMP_AND_SWP:
case IB_WR_ATOMIC_FETCH_AND_ADD:
next->wr.atomic.remote_addr =

drivers/infiniband/core/uverbs_main.c

View file
diff --git a/drivers/infiniband/core/uverbs_main.c b/drivers/infiniband/core/uverbs_main.c
index 7c2ac39..f49f946 100644
--- a/drivers/infiniband/core/uverbs_main.c
+++ b/drivers/infiniband/core/uverbs_main.c
@@ -352,7 +352,7 @@ static int ib_uverbs_event_close(struct inode *inode, struct file *filp)
struct ib_uverbs_event *entry, *tmp;
spin_lock_irq(&file->lock);
- file->file = NULL;
+ file->is_closed = 1;
list_for_each_entry_safe(entry, tmp, &file->event_list, list) {
if (entry->counter)
list_del(&entry->obj_list);
@@ -390,7 +390,7 @@ void ib_uverbs_comp_handler(struct ib_cq *cq, void *cq_context)
return;
spin_lock_irqsave(&file->lock, flags);
- if (!file->file) {
+ if (file->is_closed) {
spin_unlock_irqrestore(&file->lock, flags);
return;
}
@@ -423,7 +423,7 @@ static void ib_uverbs_async_handler(struct ib_uverbs_file *file,
unsigned long flags;
spin_lock_irqsave(&file->async_file->lock, flags);
- if (!file->async_file->file) {
+ if (!file->async_file->is_closed) {
spin_unlock_irqrestore(&file->async_file->lock, flags);
return;
}
@@ -509,6 +509,7 @@ struct file *ib_uverbs_alloc_event_file(struct ib_uverbs_file *uverbs_file,
ev_file->uverbs_file = uverbs_file;
ev_file->async_queue = NULL;
ev_file->is_async = is_async;
+ ev_file->is_closed = 0;
*fd = get_unused_fd();
if (*fd < 0) {
@@ -516,25 +517,18 @@ struct file *ib_uverbs_alloc_event_file(struct ib_uverbs_file *uverbs_file,
goto err;
}
- filp = get_empty_filp();
- if (!filp) {
- ret = -ENFILE;
- goto err_fd;
- }
-
- ev_file->file = filp;
-
/*
* fops_get() can't fail here, because we're coming from a
* system call on a uverbs file, which will already have a
* module reference.
*/
- filp->f_op = fops_get(&uverbs_event_fops);
- filp->f_path.mnt = mntget(uverbs_event_mnt);
- filp->f_path.dentry = dget(uverbs_event_mnt->mnt_root);
- filp->f_mapping = filp->f_path.dentry->d_inode->i_mapping;
- filp->f_flags = O_RDONLY;
- filp->f_mode = FMODE_READ;
+ filp = alloc_file(uverbs_event_mnt, dget(uverbs_event_mnt->mnt_root),
+ FMODE_READ, fops_get(&uverbs_event_fops));
+ if (!filp) {
+ ret = -ENFILE;
+ goto err_fd;
+ }
+
filp->private_data = ev_file;
return filp;

drivers/infiniband/core/verbs.c

View file
diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c
index 86ed8af..0504208 100644
--- a/drivers/infiniband/core/verbs.c
+++ b/drivers/infiniband/core/verbs.c
@@ -248,7 +248,9 @@ int ib_modify_srq(struct ib_srq *srq,
struct ib_srq_attr *srq_attr,
enum ib_srq_attr_mask srq_attr_mask)
{
- return srq->device->modify_srq(srq, srq_attr, srq_attr_mask, NULL);
+ return srq->device->modify_srq ?
+ srq->device->modify_srq(srq, srq_attr, srq_attr_mask, NULL) :
+ -ENOSYS;
}
EXPORT_SYMBOL(ib_modify_srq);
@@ -628,6 +630,13 @@ struct ib_cq *ib_create_cq(struct ib_device *device,
}
EXPORT_SYMBOL(ib_create_cq);
+int ib_modify_cq(struct ib_cq *cq, u16 cq_count, u16 cq_period)
+{
+ return cq->device->modify_cq ?
+ cq->device->modify_cq(cq, cq_count, cq_period) : -ENOSYS;
+}
+EXPORT_SYMBOL(ib_modify_cq);
+
int ib_destroy_cq(struct ib_cq *cq)
{
if (atomic_read(&cq->usecnt))
@@ -672,6 +681,9 @@ struct ib_mr *ib_reg_phys_mr(struct ib_pd *pd,
{
struct ib_mr *mr;
+ if (!pd->device->reg_phys_mr)
+ return ERR_PTR(-ENOSYS);
+
mr = pd->device->reg_phys_mr(pd, phys_buf_array, num_phys_buf,
mr_access_flags, iova_start);

drivers/infiniband/hw/amso1100/c2.c

View file
diff --git a/drivers/infiniband/hw/amso1100/c2.c b/drivers/infiniband/hw/amso1100/c2.c
index f283a9f..113f3c0 100644
--- a/drivers/infiniband/hw/amso1100/c2.c
+++ b/drivers/infiniband/hw/amso1100/c2.c
@@ -130,10 +130,10 @@ static int c2_tx_ring_alloc(struct c2_ring *tx_ring, void *vaddr,
tx_desc->status = 0;
/* Set TXP_HTXD_UNINIT */
- __raw_writeq(cpu_to_be64(0x1122334455667788ULL),
+ __raw_writeq((__force u64) cpu_to_be64(0x1122334455667788ULL),
(void __iomem *) txp_desc + C2_TXP_ADDR);
__raw_writew(0, (void __iomem *) txp_desc + C2_TXP_LEN);
- __raw_writew(cpu_to_be16(TXP_HTXD_UNINIT),
+ __raw_writew((__force u16) cpu_to_be16(TXP_HTXD_UNINIT),
(void __iomem *) txp_desc + C2_TXP_FLAGS);
elem->skb = NULL;
@@ -179,13 +179,13 @@ static int c2_rx_ring_alloc(struct c2_ring *rx_ring, void *vaddr,
rx_desc->status = 0;
/* Set RXP_HRXD_UNINIT */
- __raw_writew(cpu_to_be16(RXP_HRXD_OK),
+ __raw_writew((__force u16) cpu_to_be16(RXP_HRXD_OK),
(void __iomem *) rxp_desc + C2_RXP_STATUS);
__raw_writew(0, (void __iomem *) rxp_desc + C2_RXP_COUNT);
__raw_writew(0, (void __iomem *) rxp_desc + C2_RXP_LEN);
- __raw_writeq(cpu_to_be64(0x99aabbccddeeffULL),
+ __raw_writeq((__force u64) cpu_to_be64(0x99aabbccddeeffULL),
(void __iomem *) rxp_desc + C2_RXP_ADDR);
- __raw_writew(cpu_to_be16(RXP_HRXD_UNINIT),
+ __raw_writew((__force u16) cpu_to_be16(RXP_HRXD_UNINIT),
(void __iomem *) rxp_desc + C2_RXP_FLAGS);
elem->skb = NULL;
@@ -239,10 +239,11 @@ static inline int c2_rx_alloc(struct c2_port *c2_port, struct c2_element *elem)
rxp_hdr->flags = RXP_HRXD_READY;
__raw_writew(0, elem->hw_desc + C2_RXP_STATUS);
- __raw_writew(cpu_to_be16((u16) maplen - sizeof(*rxp_hdr)),
+ __raw_writew((__force u16) cpu_to_be16((u16) maplen - sizeof(*rxp_hdr)),
elem->hw_desc + C2_RXP_LEN);
- __raw_writeq(cpu_to_be64(mapaddr), elem->hw_desc + C2_RXP_ADDR);
- __raw_writew(cpu_to_be16(RXP_HRXD_READY), elem->hw_desc + C2_RXP_FLAGS);
+ __raw_writeq((__force u64) cpu_to_be64(mapaddr), elem->hw_desc + C2_RXP_ADDR);
+ __raw_writew((__force u16) cpu_to_be16(RXP_HRXD_READY),
+ elem->hw_desc + C2_RXP_FLAGS);
elem->skb = skb;
elem->mapaddr = mapaddr;
@@ -290,9 +291,9 @@ static void c2_rx_clean(struct c2_port *c2_port)
__raw_writew(0, elem->hw_desc + C2_RXP_STATUS);
__raw_writew(0, elem->hw_desc + C2_RXP_COUNT);
__raw_writew(0, elem->hw_desc + C2_RXP_LEN);
- __raw_writeq(cpu_to_be64(0x99aabbccddeeffULL),
+ __raw_writeq((__force u64) cpu_to_be64(0x99aabbccddeeffULL),
elem->hw_desc + C2_RXP_ADDR);
- __raw_writew(cpu_to_be16(RXP_HRXD_UNINIT),
+ __raw_writew((__force u16) cpu_to_be16(RXP_HRXD_UNINIT),
elem->hw_desc + C2_RXP_FLAGS);
if (elem->skb) {
@@ -346,16 +347,16 @@ static void c2_tx_clean(struct c2_port *c2_port)
elem->hw_desc + C2_TXP_LEN);
__raw_writeq(0,
elem->hw_desc + C2_TXP_ADDR);
- __raw_writew(cpu_to_be16(TXP_HTXD_DONE),
+ __raw_writew((__force u16) cpu_to_be16(TXP_HTXD_DONE),
elem->hw_desc + C2_TXP_FLAGS);
c2_port->netstats.tx_dropped++;
break;
} else {
__raw_writew(0,
elem->hw_desc + C2_TXP_LEN);
- __raw_writeq(cpu_to_be64(0x1122334455667788ULL),
+ __raw_writeq((__force u64) cpu_to_be64(0x1122334455667788ULL),
elem->hw_desc + C2_TXP_ADDR);
- __raw_writew(cpu_to_be16(TXP_HTXD_UNINIT),
+ __raw_writew((__force u16) cpu_to_be16(TXP_HTXD_UNINIT),
elem->hw_desc + C2_TXP_FLAGS);
}
@@ -390,7 +391,7 @@ static void c2_tx_interrupt(struct net_device *netdev)
for (elem = tx_ring->to_clean; elem != tx_ring->to_use;
elem = elem->next) {
txp_htxd.flags =
- be16_to_cpu(readw(elem->hw_desc + C2_TXP_FLAGS));
+ be16_to_cpu((__force __be16) readw(elem->hw_desc + C2_TXP_FLAGS));
if (txp_htxd.flags != TXP_HTXD_DONE)
break;
@@ -398,7 +399,7 @@ static void c2_tx_interrupt(struct net_device *netdev)
if (netif_msg_tx_done(c2_port)) {
/* PCI reads are expensive in fast path */
txp_htxd.len =
- be16_to_cpu(readw(elem->hw_desc + C2_TXP_LEN));
+ be16_to_cpu((__force __be16) readw(elem->hw_desc + C2_TXP_LEN));
pr_debug("%s: tx done slot %3Zu status 0x%x len "
"%5u bytes\n",
netdev->name, elem - tx_ring->start,
@@ -448,10 +449,12 @@ static void c2_rx_error(struct c2_port *c2_port, struct c2_element *elem)
/* Write the descriptor to the adapter's rx ring */
__raw_writew(0, elem->hw_desc + C2_RXP_STATUS);
__raw_writew(0, elem->hw_desc + C2_RXP_COUNT);
- __raw_writew(cpu_to_be16((u16) elem->maplen - sizeof(*rxp_hdr)),
+ __raw_writew((__force u16) cpu_to_be16((u16) elem->maplen - sizeof(*rxp_hdr)),
elem->hw_desc + C2_RXP_LEN);
- __raw_writeq(cpu_to_be64(elem->mapaddr), elem->hw_desc + C2_RXP_ADDR);
- __raw_writew(cpu_to_be16(RXP_HRXD_READY), elem->hw_desc + C2_RXP_FLAGS);
+ __raw_writeq((__force u64) cpu_to_be64(elem->mapaddr),
+ elem->hw_desc + C2_RXP_ADDR);
+ __raw_writew((__force u16) cpu_to_be16(RXP_HRXD_READY),
+ elem->hw_desc + C2_RXP_FLAGS);
pr_debug("packet dropped\n");
c2_port->netstats.rx_dropped++;
@@ -653,7 +656,7 @@ static int c2_up(struct net_device *netdev)
i++, elem++) {
rxp_hdr = (struct c2_rxp_hdr *) elem->skb->data;
rxp_hdr->flags = 0;
- __raw_writew(cpu_to_be16(RXP_HRXD_READY),
+ __raw_writew((__force u16) cpu_to_be16(RXP_HRXD_READY),
elem->hw_desc + C2_RXP_FLAGS);
}
@@ -787,9 +790,12 @@ static int c2_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
elem->maplen = maplen;
/* Tell HW to xmit */
- __raw_writeq(cpu_to_be64(mapaddr), elem->hw_desc + C2_TXP_ADDR);
- __raw_writew(cpu_to_be16(maplen), elem->hw_desc + C2_TXP_LEN);
- __raw_writew(cpu_to_be16(TXP_HTXD_READY), elem->hw_desc + C2_TXP_FLAGS);
+ __raw_writeq((__force u64) cpu_to_be64(mapaddr),
+ elem->hw_desc + C2_TXP_ADDR);
+ __raw_writew((__force u16) cpu_to_be16(maplen),
+ elem->hw_desc + C2_TXP_LEN);
+ __raw_writew((__force u16) cpu_to_be16(TXP_HTXD_READY),
+ elem->hw_desc + C2_TXP_FLAGS);
c2_port->netstats.tx_packets++;
c2_port->netstats.tx_bytes += maplen;
@@ -810,11 +816,11 @@ static int c2_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
elem->maplen = maplen;
/* Tell HW to xmit */
- __raw_writeq(cpu_to_be64(mapaddr),
+ __raw_writeq((__force u64) cpu_to_be64(mapaddr),
elem->hw_desc + C2_TXP_ADDR);
- __raw_writew(cpu_to_be16(maplen),
+ __raw_writew((__force u16) cpu_to_be16(maplen),
elem->hw_desc + C2_TXP_LEN);
- __raw_writew(cpu_to_be16(TXP_HTXD_READY),
+ __raw_writew((__force u16) cpu_to_be16(TXP_HTXD_READY),
elem->hw_desc + C2_TXP_FLAGS);
c2_port->netstats.tx_packets++;
@@ -1005,7 +1011,7 @@ static int __devinit c2_probe(struct pci_dev *pcidev,
/* Remap the adapter PCI registers in BAR4 */
mmio_regs = ioremap_nocache(reg4_start + C2_PCI_REGS_OFFSET,
sizeof(struct c2_adapter_pci_regs));
- if (mmio_regs == 0UL) {
+ if (!mmio_regs) {
printk(KERN_ERR PFX
"Unable to remap adapter PCI registers in BAR4\n");
ret = -EIO;
@@ -1029,10 +1035,10 @@ static int __devinit c2_probe(struct pci_dev *pcidev,
}
/* Validate the adapter version */
- if (be32_to_cpu(readl(mmio_regs + C2_REGS_VERS)) != C2_VERSION) {
+ if (be32_to_cpu((__force __be32) readl(mmio_regs + C2_REGS_VERS)) != C2_VERSION) {
printk(KERN_ERR PFX "Version mismatch "
"[fw=%u, c2=%u], Adapter not claimed\n",
- be32_to_cpu(readl(mmio_regs + C2_REGS_VERS)),
+ be32_to_cpu((__force __be32) readl(mmio_regs + C2_REGS_VERS)),
C2_VERSION);
ret = -EINVAL;
iounmap(mmio_regs);
@@ -1040,12 +1046,12 @@ static int __devinit c2_probe(struct pci_dev *pcidev,
}
/* Validate the adapter IVN */
- if (be32_to_cpu(readl(mmio_regs + C2_REGS_IVN)) != C2_IVN) {
+ if (be32_to_cpu((__force __be32) readl(mmio_regs + C2_REGS_IVN)) != C2_IVN) {
printk(KERN_ERR PFX "Downlevel FIrmware level. You should be using "
"the OpenIB device support kit. "
"[fw=0x%x, c2=0x%x], Adapter not claimed\n",
- be32_to_cpu(readl(mmio_regs + C2_REGS_IVN)),
- C2_IVN);
+ be32_to_cpu((__force __be32) readl(mmio_regs + C2_REGS_IVN)),
+ C2_IVN);
ret = -EINVAL;
iounmap(mmio_regs);
goto bail2;
@@ -1068,7 +1074,7 @@ static int __devinit c2_probe(struct pci_dev *pcidev,
/* Get the last RX index */
c2dev->cur_rx =
- (be32_to_cpu(readl(mmio_regs + C2_REGS_HRX_CUR)) -
+ (be32_to_cpu((__force __be32) readl(mmio_regs + C2_REGS_HRX_CUR)) -
0xffffc000) / sizeof(struct c2_rxp_desc);
/* Request an interrupt line for the driver */
@@ -1090,7 +1096,7 @@ static int __devinit c2_probe(struct pci_dev *pcidev,
}
/* Save off the actual size prior to unmapping mmio_regs */
- kva_map_size = be32_to_cpu(readl(mmio_regs + C2_REGS_PCI_WINSIZE));
+ kva_map_size = be32_to_cpu((__force __be32) readl(mmio_regs + C2_REGS_PCI_WINSIZE));
/* Unmap the adapter PCI registers in BAR4 */
iounmap(mmio_regs);
@@ -1109,7 +1115,7 @@ static int __devinit c2_probe(struct pci_dev *pcidev,
/* Remap the adapter HRXDQ PA space to kernel VA space */
c2dev->mmio_rxp_ring = ioremap_nocache(reg4_start + C2_RXP_HRXDQ_OFFSET,
C2_RXP_HRXDQ_SIZE);
- if (c2dev->mmio_rxp_ring == 0UL) {
+ if (!c2dev->mmio_rxp_ring) {
printk(KERN_ERR PFX "Unable to remap MMIO HRXDQ region\n");
ret = -EIO;
goto bail6;
@@ -1118,7 +1124,7 @@ static int __devinit c2_probe(struct pci_dev *pcidev,
/* Remap the adapter HTXDQ PA space to kernel VA space */
c2dev->mmio_txp_ring = ioremap_nocache(reg4_start + C2_TXP_HTXDQ_OFFSET,
C2_TXP_HTXDQ_SIZE);
- if (c2dev->mmio_txp_ring == 0UL) {
+ if (!c2dev->mmio_txp_ring) {
printk(KERN_ERR PFX "Unable to remap MMIO HTXDQ region\n");
ret = -EIO;
goto bail7;
@@ -1129,7 +1135,7 @@ static int __devinit c2_probe(struct pci_dev *pcidev,
/* Remap the PCI registers in adapter BAR0 to kernel VA space */
c2dev->regs = ioremap_nocache(reg0_start, reg0_len);
- if (c2dev->regs == 0UL) {
+ if (!c2dev->regs) {
printk(KERN_ERR PFX "Unable to remap BAR0\n");
ret = -EIO;
goto bail8;
@@ -1139,7 +1145,7 @@ static int __devinit c2_probe(struct pci_dev *pcidev,
c2dev->pa = reg4_start + C2_PCI_REGS_OFFSET;
c2dev->kva = ioremap_nocache(reg4_start + C2_PCI_REGS_OFFSET,
kva_map_size);
- if (c2dev->kva == 0UL) {
+ if (!c2dev->kva) {
printk(KERN_ERR PFX "Unable to remap BAR4\n");
ret = -EIO;
goto bail9;

drivers/infiniband/hw/amso1100/c2.h

View file
diff --git a/drivers/infiniband/hw/amso1100/c2.h b/drivers/infiniband/hw/amso1100/c2.h

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/amso1100/c2_ae.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/amso1100/c2_alloc.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/amso1100/c2_cq.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/amso1100/c2_intr.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/amso1100/c2_mm.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/amso1100/c2_mq.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/amso1100/c2_mq.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/amso1100/c2_provider.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/amso1100/c2_qp.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/amso1100/c2_rnic.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/amso1100/c2_vq.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/amso1100/c2_wr.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/cxgb3/cxio_dbg.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/cxgb3/cxio_hal.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/cxgb3/cxio_resource.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/cxgb3/iwch.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/cxgb3/iwch.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/cxgb3/iwch_cm.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/cxgb3/iwch_cm.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/cxgb3/iwch_cq.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/cxgb3/iwch_ev.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/cxgb3/iwch_mem.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/cxgb3/iwch_provider.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/cxgb3/iwch_provider.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/cxgb3/iwch_qp.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ehca/ehca_av.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ehca/ehca_classes.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ehca/ehca_cq.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ehca/ehca_hca.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ehca/ehca_main.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ehca/ehca_mrmw.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ehca/ehca_pd.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ehca/ehca_qp.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ehca/ehca_reqs.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ehca/ehca_tools.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ehca/ehca_uverbs.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_7220.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_common.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_debug.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_diag.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_driver.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_eeprom.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_file_ops.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_iba6110.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_iba6120.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_iba7220.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_init_chip.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_intr.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_kernel.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_mad.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_qp.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_rc.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_registers.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_ruc.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_sd7220.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_sd7220_img.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_sdma.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_srq.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_stats.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_sysfs.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_uc.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_ud.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_user_sdma.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_user_sdma.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_verbs.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ipath/ipath_verbs.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mlx4/cq.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mlx4/mad.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mlx4/main.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mlx4/mlx4_ib.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mlx4/qp.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mthca/mthca_cmd.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mthca/mthca_cmd.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mthca/mthca_cq.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mthca/mthca_dev.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mthca/mthca_eq.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mthca/mthca_mad.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mthca/mthca_main.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mthca/mthca_memfree.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mthca/mthca_profile.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mthca/mthca_profile.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mthca/mthca_provider.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mthca/mthca_qp.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mthca/mthca_wqe.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/nes/nes.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/nes/nes.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/nes/nes_cm.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/nes/nes_cm.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/nes/nes_hw.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/nes/nes_nic.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/nes/nes_utils.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/nes/nes_verbs.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/ulp/ipoib/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/ulp/ipoib/ipoib.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/ulp/ipoib/ipoib_cm.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/ulp/ipoib/ipoib_ethtool.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/ulp/ipoib/ipoib_ib.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/ulp/ipoib/ipoib_main.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/ulp/ipoib/ipoib_verbs.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/ulp/iser/iser_initiator.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/ulp/iser/iser_verbs.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/ulp/srp/ib_srp.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/mlx4/catas.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/mlx4/cmd.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/mlx4/cq.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/mlx4/eq.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/mlx4/fw.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/mlx4/fw.h

View file

This diff is incomplete. Download the complete patch.

drivers/net/mlx4/intf.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/mlx4/main.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/mlx4/mcg.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/mlx4/mlx4.h

View file

This diff is incomplete. Download the complete patch.

include/linux/mlx4/cmd.h

View file

This diff is incomplete. Download the complete patch.

include/linux/mlx4/cq.h

View file

This diff is incomplete. Download the complete patch.

include/linux/mlx4/device.h

View file

This diff is incomplete. Download the complete patch.

include/linux/mlx4/driver.h

View file

This diff is incomplete. Download the complete patch.

include/linux/mlx4/qp.h

View file

This diff is incomplete. Download the complete patch.

include/rdma/ib_user_verbs.h

View file

This diff is incomplete. Download the complete patch.

include/rdma/ib_verbs.h

View file

This diff is incomplete. Download the complete patch.

net/sunrpc/xprtrdma/verbs.c

View file

This diff is incomplete. Download the complete patch.