Hi Linus, As we discussed offline, I've split this pull request into two parts because of the need for different merge bases. This first section is the code that is based on the older 4.7-rc4 base. While the pull request is mostly normal, there is a new driver in here (the driver was hosted outside the kernel for several years and is actually a fairly mature and well coded driver). It amounts to 13,000 of the 16,000 lines of added code in this pull request. There should be one merge conflict in core/cma.c. You can use the hunk from my tree in its entirety and delete the common ancestor and your HEAD chunks. This pull request is on my k.o/for-4.8-1 branch and uses the signed tag for-linus. Here's the boilerplate: The following changes since commit 33688abb2802ff3a230bd2441f765477b94cc89e: Linux 4.7-rc4 (2016-06-19 21:30:02 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma.git tags/for-linus for you to fetch changes up to 7f1d25b47d919cef29388aff37e7b074e65bf512: Merge branches 'misc' and 'rxe' into k.o/for-4.8-1 (2016-08-04 11:13:47 -0400) ---------------------------------------------------------------- Round one of 4.8 code - Updates/fixes for iw_cxgb4 driver - Updates/fixes for mlx5 driver - Add flow steering and RSS API - Add hardware stats to mlx4 and mlx5 drivers - Add firmware version API for RDMA driver use - Add the rxe driver (this is a software RoCE driver that makes any Ethernet device a RoCE device) - Fixes for i40iw driver - Support for send only multicast joins in the cma layer - Other minor fixes ---------------------------------------------------------------- Alex Vesker (3): IB/mlx5: Fix port counter ID association to QP offset IB/sa: Add cached attribute containing SM information to SA port IB/core: Support for CMA multicast join flags Amitoj Kaur Chawla (1): RDMA/cxgb3: Use AF_INET for sin_family field Artemy Kovalyov (2): IB/mlx5: Fix MODIFY_QP command input structure {net, IB}/mlx5: Refactor internal SRQ API Bart Van Assche (2): IB/rdmavt: Disable by default IB/hfi1: Disable by default Bodong Wang (1): IB/mlx5: Report mlx5 TSO capabilities when querying device Doug Ledford (5): Merge tag 'shared' of http://git.kernel.org/.../leon/linux-rdma into mlx5-4.8 Merge branches 'cxgb4-4.8', 'mlx5-4.8' and 'fw-version' into k.o/for-4.8 Merge branches 'cxgb4' and 'mlx5' into k.o/for-4.8 Merge branch 'i40iw' into k.o/for-4.8 Merge branches 'misc' and 'rxe' into k.o/for-4.8-1 Hariprasad S (8): RDMA/iw_cxgb4: only read markers_enabled mod param once RDMA/iw_cxgb4: allocate enough space for debugfs "qps" dump RDMA/iw_cxgb4: clean up c4iw_reject_cr() RDMA/iw_cxgb4: Add missing error codes for act open cmd RDMA/iw_cxgb4: Low resource fixes for connection manager RDMA/iw_cxgb4: Low resource fixes for Memory registration RDMA/iw_cxgb4: Low resource fixes for Completion queue RDMA/iw_cxgb4: Use kfree_skb instead of kfree Ira Weiny (13): IB/core: Add get FW version string to the core IB/cxgb3: Support device FW version string IB/cxgb4: Support device FW version string IB/i40iw: Support device FW version string IB/mlx4: Support device FW version string IB/mlx5: Support device FW version string IB/mthca: Supprot device FW version string IB/nes: Support device FW version string IB/ocrdma: Support device FW version string IB/usnic: Support device FW version string IB/ipoib: Use new device FW version string IB/core: Export a common fw_ver sysfs entry IB/hfi1: Add device FW version string Jason Gunthorpe (1): IB/uverbs: Fix race between uverbs_close and remove_one Maor Gottlieb (4): IB/mlx5: Implements disassociate_ucontext API IB/mlx5: Reset flow support for IB kernel ULPs IB/core: Add IPv6 support to flow steering IB/mlx5: Enable flow steering for IPv6 traffic Mark Bloch (5): IB/mlx5: Add per port counters IB/mlx5: Add port protocol stats net/mlx4: Add diagnostic counters capability bit net/mlx4: Query performance and diagnostics counters IB/mlx4: Add diagnostic hardware counters Markus Elfring (3): IB/hfi1: NULL arg to sc_return_credits is OK IB/mthca: NULL arg to pci_dev_put is OK IB/mthca: Clean up error unwind flow in mthca_reset() Moni Shoua (1): Soft RoCE driver Mustafa Ismail (9): IB/core: Add flow control to the portmapper netlink calls i40iw: Correct and use size parameter to i40iw_reg_phys_mr i40iw: Do not access pointer after free i40iw: Remove unnecessary parameter to i40iw_cq_poll_completion i40iw: Simplify code to set fragments in SQ WQE i40iw: Remove unnecessary check for moving CQ head i40iw: Change dup_ack_thresh to u8 i40iw: Add NULL check for puda buffer Use smaller 512 byte messages for portmapper messages Roland Dreier (1): IB/mlx4: Don't use GFP_ATOMIC for CQ resize struct Saeed Mahameed (1): {net,IB}/mlx5: mlx5_ifc updates Shiraz Saleem (1): i40iw: Fix return codes Slava Shwartsman (1): IB/mlx5: Fix iteration overrun in GSI qps Steve Wise (4): iw_cxgb4: stop MPA_REPLY timer when disconnecting iw_cxgb4: explicitly move the qp to ERROR state during flush iw_cxgb4: don't block in destroy_qp awaiting the last deref iw_cm: free cm_id resources on the last deref Wei Yongjun (1): IB/mlx5: Fix duplicate const warning Yishai Hadas (10): net/mlx5: Export required core functions to support RSS IB/core: Introduce Work Queue object and its verbs IB/uverbs: Add WQ support IB/mlx5: Add receive Work Queue verbs IB/core: Introduce Receive Work Queue indirection table IB/uverbs: Introduce RWQ Indirection table IB/mlx5: Add Receive Work Queue Indirection table operations IB/core: Extend create QP to get indirection table IB/uverbs: Extend create QP to get RWQ indirection table IB/mlx5: Add RSS QP support Yuval Shaia (1): IB/ipoib: Report SG feature regardless of HW UD CSUM capability MAINTAINERS | 9 + drivers/infiniband/Kconfig | 1 + drivers/infiniband/core/cma.c | 100 +- drivers/infiniband/core/device.c | 9 + drivers/infiniband/core/iwcm.c | 54 +- drivers/infiniband/core/iwcm.h | 2 +- drivers/infiniband/core/iwpm_util.c | 3 +- drivers/infiniband/core/multicast.c | 12 - drivers/infiniband/core/netlink.c | 6 +- drivers/infiniband/core/sa_query.c | 41 + drivers/infiniband/core/sysfs.c | 15 +- drivers/infiniband/core/ucma.c | 18 +- drivers/infiniband/core/uverbs.h | 14 + drivers/infiniband/core/uverbs_cmd.c | 537 +++++++- drivers/infiniband/core/uverbs_main.c | 75 +- drivers/infiniband/core/verbs.c | 163 ++- drivers/infiniband/hw/cxgb3/iwch_cm.c | 4 +- drivers/infiniband/hw/cxgb3/iwch_provider.c | 27 +- drivers/infiniband/hw/cxgb4/cm.c | 193 ++- drivers/infiniband/hw/cxgb4/cq.c | 42 +- drivers/infiniband/hw/cxgb4/device.c | 2 +- drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 24 +- drivers/infiniband/hw/cxgb4/mem.c | 127 +- drivers/infiniband/hw/cxgb4/provider.c | 31 +- drivers/infiniband/hw/cxgb4/qp.c | 40 +- drivers/infiniband/hw/hfi1/Kconfig | 1 - drivers/infiniband/hw/hfi1/file_ops.c | 2 +- drivers/infiniband/hw/hfi1/hfi.h | 2 + drivers/infiniband/hw/hfi1/verbs.c | 15 + drivers/infiniband/hw/i40iw/i40iw_cm.c | 4 +- drivers/infiniband/hw/i40iw/i40iw_d.h | 3 + drivers/infiniband/hw/i40iw/i40iw_puda.c | 4 + drivers/infiniband/hw/i40iw/i40iw_type.h | 2 +- drivers/infiniband/hw/i40iw/i40iw_uk.c | 29 +- drivers/infiniband/hw/i40iw/i40iw_user.h | 2 +- drivers/infiniband/hw/i40iw/i40iw_verbs.c | 76 +- drivers/infiniband/hw/mlx4/cq.c | 4 +- drivers/infiniband/hw/mlx4/main.c | 222 +++- drivers/infiniband/hw/mlx4/mlx4_ib.h | 9 + drivers/infiniband/hw/mlx5/cq.c | 87 +- drivers/infiniband/hw/mlx5/gsi.c | 19 +- drivers/infiniband/hw/mlx5/main.c | 429 +++++- drivers/infiniband/hw/mlx5/mlx5_ib.h | 74 ++ drivers/infiniband/hw/mlx5/mr.c | 4 + drivers/infiniband/hw/mlx5/qp.c | 691 +++++++++- drivers/infiniband/hw/mlx5/srq.c | 112 +- drivers/infiniband/hw/mlx5/user.h | 88 +- drivers/infiniband/hw/mthca/mthca_provider.c | 24 +- drivers/infiniband/hw/mthca/mthca_reset.c | 42 +- drivers/infiniband/hw/nes/nes_verbs.c | 33 +- drivers/infiniband/hw/ocrdma/ocrdma_main.c | 19 +- drivers/infiniband/hw/usnic/usnic_ib_main.c | 16 + drivers/infiniband/hw/usnic/usnic_ib_sysfs.c | 17 - drivers/infiniband/sw/Makefile | 1 + drivers/infiniband/sw/rdmavt/Kconfig | 1 - drivers/infiniband/sw/rxe/Kconfig | 24 + drivers/infiniband/sw/rxe/Makefile | 24 + drivers/infiniband/sw/rxe/rxe.c | 386 ++++++ drivers/infiniband/sw/rxe/rxe.h | 77 ++ drivers/infiniband/sw/rxe/rxe_av.c | 98 ++ drivers/infiniband/sw/rxe/rxe_comp.c | 734 +++++++++++ drivers/infiniband/sw/rxe/rxe_cq.c | 165 +++ drivers/infiniband/sw/rxe/rxe_dma.c | 166 +++ drivers/infiniband/sw/rxe/rxe_hdr.h | 952 ++++++++++++++ drivers/infiniband/sw/rxe/rxe_icrc.c | 96 ++ drivers/infiniband/sw/rxe/rxe_loc.h | 286 ++++ drivers/infiniband/sw/rxe/rxe_mcast.c | 190 +++ drivers/infiniband/sw/rxe/rxe_mmap.c | 173 +++ drivers/infiniband/sw/rxe/rxe_mr.c | 643 +++++++++ drivers/infiniband/sw/rxe/rxe_net.c | 708 ++++++++++ drivers/infiniband/sw/rxe/rxe_net.h | 53 + drivers/infiniband/sw/rxe/rxe_opcode.c | 961 ++++++++++++++ drivers/infiniband/sw/rxe/rxe_opcode.h | 129 ++ drivers/infiniband/sw/rxe/rxe_param.h | 172 +++ drivers/infiniband/sw/rxe/rxe_pool.c | 502 +++++++ drivers/infiniband/sw/rxe/rxe_pool.h | 163 +++ drivers/infiniband/sw/rxe/rxe_qp.c | 851 ++++++++++++ drivers/infiniband/sw/rxe/rxe_queue.c | 217 +++ drivers/infiniband/sw/rxe/rxe_queue.h | 178 +++ drivers/infiniband/sw/rxe/rxe_recv.c | 420 ++++++ drivers/infiniband/sw/rxe/rxe_req.c | 726 ++++++++++ drivers/infiniband/sw/rxe/rxe_resp.c | 1380 ++++++++++++++++++++ drivers/infiniband/sw/rxe/rxe_srq.c | 193 +++ drivers/infiniband/sw/rxe/rxe_sysfs.c | 157 +++ drivers/infiniband/sw/rxe/rxe_task.c | 154 +++ drivers/infiniband/sw/rxe/rxe_task.h | 95 ++ drivers/infiniband/sw/rxe/rxe_verbs.c | 1330 +++++++++++++++++++ drivers/infiniband/sw/rxe/rxe_verbs.h | 480 +++++++ drivers/infiniband/ulp/ipoib/ipoib_ethtool.c | 6 +- drivers/infiniband/ulp/ipoib/ipoib_main.c | 3 +- drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 10 +- drivers/net/ethernet/chelsio/cxgb4/t4_msg.h | 2 + drivers/net/ethernet/mellanox/mlx4/fw.c | 40 + drivers/net/ethernet/mellanox/mlx5/core/srq.c | 265 ++-- drivers/net/ethernet/mellanox/mlx5/core/transobj.c | 4 + include/linux/mlx4/device.h | 7 + include/linux/mlx5/cq.h | 2 + include/linux/mlx5/driver.h | 6 +- include/linux/mlx5/mlx5_ifc.h | 275 +++- include/linux/mlx5/qp.h | 4 +- include/linux/mlx5/srq.h | 25 + include/rdma/ib_sa.h | 13 + include/rdma/ib_verbs.h | 102 +- include/rdma/rdma_cm.h | 4 +- include/uapi/rdma/Kbuild | 1 + include/uapi/rdma/ib_user_verbs.h | 95 ++ include/uapi/rdma/rdma_user_cm.h | 9 +- include/uapi/rdma/rdma_user_rxe.h | 144 ++ 108 files changed, 16804 insertions(+), 677 deletions(-) create mode 100644 drivers/infiniband/sw/rxe/Kconfig create mode 100644 drivers/infiniband/sw/rxe/Makefile create mode 100644 drivers/infiniband/sw/rxe/rxe.c create mode 100644 drivers/infiniband/sw/rxe/rxe.h create mode 100644 drivers/infiniband/sw/rxe/rxe_av.c create mode 100644 drivers/infiniband/sw/rxe/rxe_comp.c create mode 100644 drivers/infiniband/sw/rxe/rxe_cq.c create mode 100644 drivers/infiniband/sw/rxe/rxe_dma.c create mode 100644 drivers/infiniband/sw/rxe/rxe_hdr.h create mode 100644 drivers/infiniband/sw/rxe/rxe_icrc.c create mode 100644 drivers/infiniband/sw/rxe/rxe_loc.h create mode 100644 drivers/infiniband/sw/rxe/rxe_mcast.c create mode 100644 drivers/infiniband/sw/rxe/rxe_mmap.c create mode 100644 drivers/infiniband/sw/rxe/rxe_mr.c create mode 100644 drivers/infiniband/sw/rxe/rxe_net.c create mode 100644 drivers/infiniband/sw/rxe/rxe_net.h create mode 100644 drivers/infiniband/sw/rxe/rxe_opcode.c create mode 100644 drivers/infiniband/sw/rxe/rxe_opcode.h create mode 100644 drivers/infiniband/sw/rxe/rxe_param.h create mode 100644 drivers/infiniband/sw/rxe/rxe_pool.c create mode 100644 drivers/infiniband/sw/rxe/rxe_pool.h create mode 100644 drivers/infiniband/sw/rxe/rxe_qp.c create mode 100644 drivers/infiniband/sw/rxe/rxe_queue.c create mode 100644 drivers/infiniband/sw/rxe/rxe_queue.h create mode 100644 drivers/infiniband/sw/rxe/rxe_recv.c create mode 100644 drivers/infiniband/sw/rxe/rxe_req.c create mode 100644 drivers/infiniband/sw/rxe/rxe_resp.c create mode 100644 drivers/infiniband/sw/rxe/rxe_srq.c create mode 100644 drivers/infiniband/sw/rxe/rxe_sysfs.c create mode 100644 drivers/infiniband/sw/rxe/rxe_task.c create mode 100644 drivers/infiniband/sw/rxe/rxe_task.h create mode 100644 drivers/infiniband/sw/rxe/rxe_verbs.c create mode 100644 drivers/infiniband/sw/rxe/rxe_verbs.h create mode 100644 include/uapi/rdma/rdma_user_rxe.h -- Doug Ledford <dledford@xxxxxxxxxx> GPG KeyID: 0E572FDD
Attachment:
signature.asc
Description: This is a digitally signed message part