diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-21 20:54:55 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-21 20:54:55 -0400 |
commit | c23ddf7857bdb2e8001b0a058603497c765a580d (patch) | |
tree | f1d826612114a17d6ab543b7095adf04b5ba614a /include | |
parent | da4f58ffa08a7b7012fab9c205fa0f6ba40fec42 (diff) | |
parent | cc169165c82e14ea43e313f937a0a475ca97e588 (diff) |
Merge tag 'rdma-for-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband
Pull InfiniBand/RDMA changes from Roland Dreier:
- Add ocrdma hardware driver for Emulex IB-over-Ethernet adapters
- Add generic and mlx4 support for "raw" QPs: allow suitably privileged
applications to send and receive arbitrary packets directly to/from
the hardware
- Add "doorbell drop" handling to the cxgb4 driver
- A fairly large batch of qib hardware driver changes
- A few fixes for lockdep-detected issues
- A few other miscellaneous fixes and cleanups
Fix up trivial conflict in drivers/net/ethernet/emulex/benet/be.h.
* tag 'rdma-for-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (53 commits)
RDMA/cxgb4: Include vmalloc.h for vmalloc and vfree
IB/mlx4: Fix mlx4_ib_add() error flow
IB/core: Fix IB_SA_COMP_MASK macro
IB/iser: Fix error flow in iser ep connection establishment
IB/mlx4: Increase the number of vectors (EQs) available for ULPs
RDMA/cxgb4: Add query_qp support
RDMA/cxgb4: Remove kfifo usage
RDMA/cxgb4: Use vmalloc() for debugfs QP dump
RDMA/cxgb4: DB Drop Recovery for RDMA and LLD queues
RDMA/cxgb4: Disable interrupts in c4iw_ev_dispatch()
RDMA/cxgb4: Add DB Overflow Avoidance
RDMA/cxgb4: Add debugfs RDMA memory stats
cxgb4: DB Drop Recovery for RDMA and LLD queues
cxgb4: Common platform specific changes for DB Drop Recovery
cxgb4: Detect DB FULL events and notify RDMA ULD
RDMA/cxgb4: Drop peer_abort when no endpoint found
RDMA/cxgb4: Always wake up waiters in c4iw_peer_abort_intr()
mlx4_core: Change bitmap allocator to work in round-robin fashion
RDMA/nes: Don't call event handler if pointer is NULL
RDMA/nes: Fix for the ORD value of the connecting peer
...
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/mlx4/device.h | 8 | ||||
-rw-r--r-- | include/linux/mlx4/qp.h | 3 | ||||
-rw-r--r-- | include/rdma/ib_mad.h | 2 | ||||
-rw-r--r-- | include/rdma/ib_verbs.h | 4 |
4 files changed, 13 insertions, 4 deletions
diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h index 6d028247f79d..6e27fa99e8b9 100644 --- a/include/linux/mlx4/device.h +++ b/include/linux/mlx4/device.h | |||
@@ -98,6 +98,12 @@ enum { | |||
98 | MLX4_DEV_CAP_FLAG_SENSE_SUPPORT = 1LL << 55 | 98 | MLX4_DEV_CAP_FLAG_SENSE_SUPPORT = 1LL << 55 |
99 | }; | 99 | }; |
100 | 100 | ||
101 | enum { | ||
102 | MLX4_DEV_CAP_FLAG2_RSS = 1LL << 0, | ||
103 | MLX4_DEV_CAP_FLAG2_RSS_TOP = 1LL << 1, | ||
104 | MLX4_DEV_CAP_FLAG2_RSS_XOR = 1LL << 2 | ||
105 | }; | ||
106 | |||
101 | #define MLX4_ATTR_EXTENDED_PORT_INFO cpu_to_be16(0xff90) | 107 | #define MLX4_ATTR_EXTENDED_PORT_INFO cpu_to_be16(0xff90) |
102 | 108 | ||
103 | enum { | 109 | enum { |
@@ -292,11 +298,13 @@ struct mlx4_caps { | |||
292 | u32 max_msg_sz; | 298 | u32 max_msg_sz; |
293 | u32 page_size_cap; | 299 | u32 page_size_cap; |
294 | u64 flags; | 300 | u64 flags; |
301 | u64 flags2; | ||
295 | u32 bmme_flags; | 302 | u32 bmme_flags; |
296 | u32 reserved_lkey; | 303 | u32 reserved_lkey; |
297 | u16 stat_rate_support; | 304 | u16 stat_rate_support; |
298 | u8 port_width_cap[MLX4_MAX_PORTS + 1]; | 305 | u8 port_width_cap[MLX4_MAX_PORTS + 1]; |
299 | int max_gso_sz; | 306 | int max_gso_sz; |
307 | int max_rss_tbl_sz; | ||
300 | int reserved_qps_cnt[MLX4_NUM_QP_REGION]; | 308 | int reserved_qps_cnt[MLX4_NUM_QP_REGION]; |
301 | int reserved_qps; | 309 | int reserved_qps; |
302 | int reserved_qps_base[MLX4_NUM_QP_REGION]; | 310 | int reserved_qps_base[MLX4_NUM_QP_REGION]; |
diff --git a/include/linux/mlx4/qp.h b/include/linux/mlx4/qp.h index 96005d75893c..338388ba260a 100644 --- a/include/linux/mlx4/qp.h +++ b/include/linux/mlx4/qp.h | |||
@@ -234,7 +234,8 @@ struct mlx4_wqe_mlx_seg { | |||
234 | u8 owner; | 234 | u8 owner; |
235 | u8 reserved1[2]; | 235 | u8 reserved1[2]; |
236 | u8 opcode; | 236 | u8 opcode; |
237 | u8 reserved2[3]; | 237 | __be16 sched_prio; |
238 | u8 reserved2; | ||
238 | u8 size; | 239 | u8 size; |
239 | /* | 240 | /* |
240 | * [17] VL15 | 241 | * [17] VL15 |
diff --git a/include/rdma/ib_mad.h b/include/rdma/ib_mad.h index b513f57e1725..3d81b90cc315 100644 --- a/include/rdma/ib_mad.h +++ b/include/rdma/ib_mad.h | |||
@@ -160,7 +160,7 @@ struct ib_rmpp_hdr { | |||
160 | 160 | ||
161 | typedef u64 __bitwise ib_sa_comp_mask; | 161 | typedef u64 __bitwise ib_sa_comp_mask; |
162 | 162 | ||
163 | #define IB_SA_COMP_MASK(n) ((__force ib_sa_comp_mask) cpu_to_be64(1ull << n)) | 163 | #define IB_SA_COMP_MASK(n) ((__force ib_sa_comp_mask) cpu_to_be64(1ull << (n))) |
164 | 164 | ||
165 | /* | 165 | /* |
166 | * ib_sa_hdr and ib_sa_mad structures must be packed because they have | 166 | * ib_sa_hdr and ib_sa_mad structures must be packed because they have |
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h index c3cca5a4dacd..07996af8265a 100644 --- a/include/rdma/ib_verbs.h +++ b/include/rdma/ib_verbs.h | |||
@@ -605,7 +605,7 @@ enum ib_qp_type { | |||
605 | IB_QPT_UD, | 605 | IB_QPT_UD, |
606 | IB_QPT_RAW_IPV6, | 606 | IB_QPT_RAW_IPV6, |
607 | IB_QPT_RAW_ETHERTYPE, | 607 | IB_QPT_RAW_ETHERTYPE, |
608 | /* Save 8 for RAW_PACKET */ | 608 | IB_QPT_RAW_PACKET = 8, |
609 | IB_QPT_XRC_INI = 9, | 609 | IB_QPT_XRC_INI = 9, |
610 | IB_QPT_XRC_TGT, | 610 | IB_QPT_XRC_TGT, |
611 | IB_QPT_MAX | 611 | IB_QPT_MAX |
@@ -964,7 +964,7 @@ struct ib_qp { | |||
964 | struct ib_srq *srq; | 964 | struct ib_srq *srq; |
965 | struct ib_xrcd *xrcd; /* XRC TGT QPs only */ | 965 | struct ib_xrcd *xrcd; /* XRC TGT QPs only */ |
966 | struct list_head xrcd_list; | 966 | struct list_head xrcd_list; |
967 | atomic_t usecnt; /* count times opened */ | 967 | atomic_t usecnt; /* count times opened, mcast attaches */ |
968 | struct list_head open_list; | 968 | struct list_head open_list; |
969 | struct ib_qp *real_qp; | 969 | struct ib_qp *real_qp; |
970 | struct ib_uobject *uobject; | 970 | struct ib_uobject *uobject; |