projects/linux·commit 7b1cd95d

Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma

7b1cd95d · Linus Torvalds <[email protected]> · 2018-01-31 12:05:10 -08:00

Pull RDMA subsystem updates from Jason Gunthorpe:
 "Overall this cycle did not have any major excitement, and did not
  require any shared branch with netdev.

  Lots of driver updates, particularly of the scale-up and performance
  variety. The largest body of core work was Parav's patches fixing and
  restructing some of the core code to make way for future RDMA
  containerization.

  Summary:

   - misc small driver fixups to
     bnxt_re/hfi1/qib/hns/ocrdma/rdmavt/vmw_pvrdma/nes

   - several major feature adds to bnxt_re driver: SRIOV VF RoCE
     support, HugePages support, extended hardware stats support, and
     SRQ support

   - a notable number of fixes to the i40iw driver from debugging scale
     up testing

   - more work to enable the new hip08 chip in the hns driver

   - misc small ULP fixups to srp/srpt//ipoib

   - preparation for srp initiator and target to support the RDMA-CM
     protocol for connections

   - add RDMA-CM support to srp initiator, srp target is still a WIP

   - fixes for a couple of places where ipoib could spam the dmesg log

   - fix encode/decode of FDR/EDR data rates in the core

   - many patches from Parav with ongoing work to clean up
     inconsistencies and bugs in RoCE support around the rdma_cm

   - mlx5 driver support for the userspace features 'thread domain',
     'wallclock timestamps' and 'DV Direct Connected transport'. Support
     for the firmware dual port rocee capability

   - core support for more than 32 rdma devices in the char dev
     allocation

   - kernel doc updates from Randy Dunlap

   - new netlink uAPI for inspecting RDMA objects similar in spirit to 'ss'

   - one minor change to the kobject code acked by Greg KH"

* tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (259 commits)
  RDMA/nldev: Provide detailed QP information
  RDMA/nldev: Provide global resource utilization
  RDMA/core: Add resource tracking for create and destroy PDs
  RDMA/core: Add resource tracking for create and destroy CQs
  RDMA/core: Add resource tracking for create and destroy QPs
  RDMA/restrack: Add general infrastructure to track RDMA resources
  RDMA/core: Save kernel caller name when creating PD and CQ objects
  RDMA/core: Use the MODNAME instead of the function name for pd callers
  RDMA: Move enum ib_cq_creation_flags to uapi headers
  IB/rxe: Change RDMA_RXE kconfig to use select
  IB/qib: remove qib_keys.c
  IB/mthca: remove mthca_user.h
  RDMA/cm: Fix access to uninitialized variable
  RDMA/cma: Use existing netif_is_bond_master function
  IB/core: Avoid SGID attributes query while converting GID from OPA to IB
  RDMA/mlx5: Avoid memory leak in case of XRCD dealloc failure
  IB/umad: Fix use of unprotected device pointer
  IB/iser: Combine substrings for three messages
  IB/iser: Delete an unnecessary variable initialisation in iser_send_data_out()
  IB/iser: Delete an error message for a failed memory allocation in iser_send_data_out()
  ...
Commit
7b1cd95d65eb3b1e13f8a90eb757e0ea232c7899
Parents
2155e69a · e7996a9a

Merge commit. Changes below are compared with the first parent: 2155e69a.

Changes

187 files changed · +10240 −4028

FileStatusAddDelContent
MAINTAINERSmodified+4−3View file
drivers/infiniband/core/Makefilemodified+1−1View file
drivers/infiniband/core/addr.cmodified+8−57View file
drivers/infiniband/core/cache.cmodified+7−16View file
drivers/infiniband/core/cm.cmodified+159−68View file
drivers/infiniband/core/cma.cmodified+156−96View file
drivers/infiniband/core/cma_configfs.cmodified+1−1View file
drivers/infiniband/core/core_priv.hmodified+31−21View file
drivers/infiniband/core/cq.cmodified+25−14View file
drivers/infiniband/core/device.cmodified+22−20View file
drivers/infiniband/core/fmr_pool.cmodified+5−7View file
drivers/infiniband/core/iwpm_util.cmodified+1−0View file
drivers/infiniband/core/mad.cmodified+0−1View file
drivers/infiniband/core/netlink.cmodified+3−7View file
drivers/infiniband/core/nldev.cmodified+388−6View file
drivers/infiniband/core/restrack.cadded+164−0View file
drivers/infiniband/core/roce_gid_mgmt.cmodified+8−5View file
drivers/infiniband/core/sa_query.cmodified+14−4View file
drivers/infiniband/core/security.cmodified+4−6View file
drivers/infiniband/core/sysfs.cmodified+0−1View file
drivers/infiniband/core/ucm.cmodified+28−45View file
drivers/infiniband/core/ucma.cmodified+10−9View file
drivers/infiniband/core/umem.cmodified+1−1View file
drivers/infiniband/core/user_mad.cmodified+57−66View file
drivers/infiniband/core/uverbs_cmd.cmodified+7−7View file
drivers/infiniband/core/uverbs_ioctl.cmodified+13−6View file
drivers/infiniband/core/uverbs_main.cmodified+34−61View file
drivers/infiniband/core/uverbs_std_types.cmodified+3−0View file
drivers/infiniband/core/verbs.cmodified+177−135View file
drivers/infiniband/hw/bnxt_re/bnxt_re.hmodified+34−9View file
drivers/infiniband/hw/bnxt_re/hw_counters.cmodified+135−10View file
drivers/infiniband/hw/bnxt_re/hw_counters.hmodified+39−0View file
drivers/infiniband/hw/bnxt_re/ib_verbs.cmodified+348−56View file
drivers/infiniband/hw/bnxt_re/ib_verbs.hmodified+20−0View file
drivers/infiniband/hw/bnxt_re/main.cmodified+209−42View file
drivers/infiniband/hw/bnxt_re/qplib_fp.cmodified+400−63View file
drivers/infiniband/hw/bnxt_re/qplib_fp.hmodified+54−24View file
drivers/infiniband/hw/bnxt_re/qplib_rcfw.cmodified+3−2View file
drivers/infiniband/hw/bnxt_re/qplib_rcfw.hmodified+3−4View file
drivers/infiniband/hw/bnxt_re/qplib_res.cmodified+4−5View file
drivers/infiniband/hw/bnxt_re/qplib_sp.cmodified+136−5View file
drivers/infiniband/hw/bnxt_re/qplib_sp.hmodified+88−3View file
drivers/infiniband/hw/bnxt_re/roce_hsi.hmodified+126−1View file
drivers/infiniband/hw/cxgb4/cm.cmodified+16−11View file
drivers/infiniband/hw/cxgb4/device.cmodified+16−20View file
drivers/infiniband/hw/cxgb4/ev.cmodified+1−1View file
drivers/infiniband/hw/cxgb4/iw_cxgb4.hmodified+2−2View file
drivers/infiniband/hw/cxgb4/qp.cmodified+3−3View file
drivers/infiniband/hw/cxgb4/t4.hmodified+2−2View file
drivers/infiniband/hw/hfi1/chip.cmodified+31−56View file
drivers/infiniband/hw/hfi1/chip.hmodified+1−1View file
drivers/infiniband/hw/hfi1/driver.cmodified+0−16View file
drivers/infiniband/hw/hfi1/firmware.cmodified+16−48View file
drivers/infiniband/hw/hfi1/hfi.hmodified+13−12View file
drivers/infiniband/hw/hfi1/init.cmodified+2−0View file
drivers/infiniband/hw/hfi1/mad.cmodified+1−5View file
drivers/infiniband/hw/hfi1/qp.cmodified+8−2View file
drivers/infiniband/hw/hfi1/rc.cmodified+4−4View file
drivers/infiniband/hw/hfi1/verbs.cmodified+1−5View file
drivers/infiniband/hw/hns/Makefilemodified+1−1View file
drivers/infiniband/hw/hns/hns_roce_cmd.cmodified+1−0View file
drivers/infiniband/hw/hns/hns_roce_cmd.hmodified+10−0View file
drivers/infiniband/hw/hns/hns_roce_common.hmodified+11−0View file
drivers/infiniband/hw/hns/hns_roce_cq.cmodified+10−9View file
drivers/infiniband/hw/hns/hns_roce_device.hmodified+96−7View file
drivers/infiniband/hw/hns/hns_roce_eq.cdeleted+0−759View before deletion
drivers/infiniband/hw/hns/hns_roce_eq.hdeleted+0−134View before deletion
drivers/infiniband/hw/hns/hns_roce_hw_v1.cmodified+741−17View file
drivers/infiniband/hw/hns/hns_roce_hw_v1.hmodified+42−2View file
drivers/infiniband/hw/hns/hns_roce_hw_v2.cmodified+1655−182View file
drivers/infiniband/hw/hns/hns_roce_hw_v2.hmodified+278−5View file
drivers/infiniband/hw/hns/hns_roce_main.cmodified+6−10View file
drivers/infiniband/hw/hns/hns_roce_qp.cmodified+63−9View file
drivers/infiniband/hw/i40iw/Kconfigmodified+0−1View file
drivers/infiniband/hw/i40iw/i40iw.hmodified+3−0View file
drivers/infiniband/hw/i40iw/i40iw_cm.cmodified+39−29View file
drivers/infiniband/hw/i40iw/i40iw_cm.hmodified+4−4View file
drivers/infiniband/hw/i40iw/i40iw_ctrl.cmodified+8−17View file
drivers/infiniband/hw/i40iw/i40iw_d.hmodified+1−0View file
drivers/infiniband/hw/i40iw/i40iw_hw.cmodified+2−1View file
drivers/infiniband/hw/i40iw/i40iw_main.cmodified+10−3View file
drivers/infiniband/hw/i40iw/i40iw_puda.cmodified+2−3View file
drivers/infiniband/hw/i40iw/i40iw_puda.hmodified+1−0View file
drivers/infiniband/hw/i40iw/i40iw_uk.cmodified+2−16View file
drivers/infiniband/hw/i40iw/i40iw_user.hmodified+1−2View file
drivers/infiniband/hw/i40iw/i40iw_utils.cmodified+47−3View file
drivers/infiniband/hw/i40iw/i40iw_verbs.cmodified+2−3View file
drivers/infiniband/hw/mlx4/cq.cmodified+2−2View file
drivers/infiniband/hw/mlx4/main.cmodified+11−8View file
drivers/infiniband/hw/mlx4/qp.cmodified+18−2View file
drivers/infiniband/hw/mlx5/cong.cmodified+59−24View file
drivers/infiniband/hw/mlx5/cq.cmodified+1−1View file
drivers/infiniband/hw/mlx5/mad.cmodified+15−8View file
drivers/infiniband/hw/mlx5/main.cmodified+1115−296View file
drivers/infiniband/hw/mlx5/mlx5_ib.hmodified+91−20View file
drivers/infiniband/hw/mlx5/mr.cmodified+3−0View file
drivers/infiniband/hw/mlx5/odp.cmodified+0−9View file
drivers/infiniband/hw/mlx5/qp.cmodified+405−27View file
drivers/infiniband/hw/mthca/mthca_memfree.cmodified+3−4View file
drivers/infiniband/hw/mthca/mthca_user.hdeleted+0−112View before deletion
drivers/infiniband/hw/nes/nes_cm.cmodified+1−1View file
drivers/infiniband/hw/nes/nes_cm.hmodified+1−2View file
drivers/infiniband/hw/ocrdma/ocrdma_hw.cmodified+7−12View file
drivers/infiniband/hw/ocrdma/ocrdma_stats.cmodified+3−5View file
drivers/infiniband/hw/ocrdma/ocrdma_verbs.cmodified+4−6View file
drivers/infiniband/hw/qedr/verbs.cmodified+7−8View file
drivers/infiniband/hw/qib/qib.hmodified+3−5View file
drivers/infiniband/hw/qib/qib_driver.cmodified+0−16View file
drivers/infiniband/hw/qib/qib_eeprom.cmodified+1−2View file
drivers/infiniband/hw/qib/qib_file_ops.cmodified+25−43View file
drivers/infiniband/hw/qib/qib_init.cmodified+2−0View file
drivers/infiniband/hw/qib/qib_keys.cdeleted+0−235View before deletion
drivers/infiniband/hw/qib/qib_rc.cmodified+3−3View file
drivers/infiniband/hw/qib/qib_verbs.cmodified+0−2View file
drivers/infiniband/hw/usnic/usnic_ib_sysfs.cmodified+0−1View file
drivers/infiniband/hw/usnic/usnic_ib_verbs.cmodified+0−1View file
drivers/infiniband/hw/vmw_pvrdma/pvrdma.hmodified+2−2View file
drivers/infiniband/hw/vmw_pvrdma/pvrdma_cq.cmodified+6−7View file
drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.cmodified+10−11View file
drivers/infiniband/hw/vmw_pvrdma/pvrdma_mr.cmodified+4−11View file
drivers/infiniband/hw/vmw_pvrdma/pvrdma_qp.cmodified+5−6View file
drivers/infiniband/sw/rdmavt/cq.cmodified+9−6View file
drivers/infiniband/sw/rdmavt/mcast.cmodified+2−2View file
drivers/infiniband/sw/rdmavt/mr.cmodified+1−1View file
drivers/infiniband/sw/rdmavt/qp.cmodified+13−14View file
drivers/infiniband/sw/rdmavt/srq.cmodified+9−7View file
drivers/infiniband/sw/rdmavt/trace.hmodified+2−2View file
drivers/infiniband/sw/rdmavt/trace_qp.hmodified+42−0View file
drivers/infiniband/sw/rdmavt/vt.cmodified+5−5View file
drivers/infiniband/sw/rdmavt/vt.hmodified+3−3View file
drivers/infiniband/sw/rxe/Kconfigmodified+2−2View file
drivers/infiniband/sw/rxe/rxe.cmodified+0−6View file
drivers/infiniband/sw/rxe/rxe.hmodified+5−1View file
drivers/infiniband/sw/rxe/rxe_loc.hmodified+0−1View file
drivers/infiniband/sw/rxe/rxe_net.cmodified+6−12View file
drivers/infiniband/sw/rxe/rxe_net.hmodified+0−1View file
drivers/infiniband/sw/rxe/rxe_qp.cmodified+10−2View file
drivers/infiniband/sw/rxe/rxe_recv.cmodified+1−2View file
drivers/infiniband/sw/rxe/rxe_req.cmodified+1−8View file
drivers/infiniband/sw/rxe/rxe_resp.cmodified+2−3View file
drivers/infiniband/sw/rxe/rxe_verbs.cmodified+2−0View file
drivers/infiniband/sw/rxe/rxe_verbs.hmodified+3−0View file
drivers/infiniband/ulp/ipoib/ipoib_cm.cmodified+10−8View file
drivers/infiniband/ulp/ipoib/ipoib_ib.cmodified+2−3View file
drivers/infiniband/ulp/ipoib/ipoib_main.cmodified+67−31View file
drivers/infiniband/ulp/ipoib/ipoib_verbs.cmodified+3−3View file
drivers/infiniband/ulp/iser/iser_initiator.cmodified+6−10View file
drivers/infiniband/ulp/isert/ib_isert.cmodified+7−0View file
drivers/infiniband/ulp/isert/ib_isert.hmodified+1−0View file
drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.cmodified+1−1View file
drivers/infiniband/ulp/srp/ib_srp.cmodified+624−171View file
drivers/infiniband/ulp/srp/ib_srp.hmodified+36−7View file
drivers/infiniband/ulp/srpt/ib_srpt.cmodified+585−377View file
drivers/infiniband/ulp/srpt/ib_srpt.hmodified+66−34View file
drivers/net/ethernet/mellanox/mlx4/qp.cmodified+3−0View file
drivers/net/ethernet/mellanox/mlx5/core/eq.cmodified+8−1View file
drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.cmodified+6−5View file
drivers/net/ethernet/mellanox/mlx5/core/fw.cmodified+9−1View file
drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.cmodified+1−1View file
drivers/net/ethernet/mellanox/mlx5/core/lib/clock.cmodified+55−0View file
drivers/net/ethernet/mellanox/mlx5/core/lib/gid.cmodified+4−1View file
drivers/net/ethernet/mellanox/mlx5/core/main.cmodified+14−1View file
drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.hmodified+1−1View file
drivers/net/ethernet/mellanox/mlx5/core/qp.cmodified+113−12View file
drivers/net/ethernet/mellanox/mlx5/core/vport.cmodified+85−6View file
include/linux/mlx5/device.hmodified+16−0View file
include/linux/mlx5/driver.hmodified+41−2View file
include/linux/mlx5/mlx5_ifc.hmodified+25−7View file
include/linux/mlx5/qp.hmodified+12−0View file
include/linux/mlx5/vport.hmodified+4−0View file
include/rdma/ib_addr.hmodified+9−29View file
include/rdma/ib_sa.hmodified+5−5View file
include/rdma/ib_verbs.hmodified+46−18View file
include/rdma/opa_addr.hmodified+16−0View file
include/rdma/rdma_cm.hmodified+19−0View file
include/rdma/rdma_cm_ib.hmodified+4−4View file
include/rdma/rdma_vt.hmodified+24−7View file
include/rdma/restrack.hadded+157−0View file
include/scsi/srp.hmodified+17−0View file
include/uapi/rdma/bnxt_re-abi.hmodified+9−0View file
include/uapi/rdma/ib_user_verbs.hmodified+8−3View file
include/uapi/rdma/mlx4-abi.hmodified+4−3View file
include/uapi/rdma/mlx5-abi.hmodified+49−4View file
include/uapi/rdma/rdma_netlink.hmodified+49−0View file
include/uapi/rdma/vmw_pvrdma-abi.hmodified+7−5View file
lib/kobject.cmodified+2−0View file
net/rds/ib.cmodified+2−4View file

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

MAINTAINERS

View file
diff --git a/MAINTAINERS b/MAINTAINERS
index 7b5ef9a..88cdd29 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -6892,7 +6892,7 @@ M: Jason Gunthorpe <[email protected]>
W: http://www.openfabrics.org/
Q: http://patchwork.kernel.org/project/linux-rdma/list/
-T: git git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma.git
+T: git git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git
S: Supported
F: Documentation/devicetree/bindings/infiniband/
F: Documentation/infiniband/
@@ -11218,7 +11218,8 @@ S: Maintained
F: drivers/firmware/qemu_fw_cfg.c
QIB DRIVER
-M: Mike Marciniszyn <[email protected]>
+M: Dennis Dalessandro <[email protected]>
+M: Mike Marciniszyn <[email protected]>
S: Supported
F: drivers/infiniband/hw/qib/
@@ -11245,7 +11246,6 @@ F: include/linux/qed/
F: drivers/net/ethernet/qlogic/qede/
QLOGIC QL4xxx RDMA DRIVER
-M: Ram Amrani <[email protected]>
M: Michal Kalderon <[email protected]>
M: Ariel Elior <[email protected]>
@@ -11507,6 +11507,7 @@ F: drivers/net/ethernet/rdc/r6040.c
RDMAVT - RDMA verbs software
M: Dennis Dalessandro <[email protected]>
+M: Mike Marciniszyn <[email protected]>
S: Supported
F: drivers/infiniband/sw/rdmavt

drivers/infiniband/core/Makefile

View file
diff --git a/drivers/infiniband/core/Makefile b/drivers/infiniband/core/Makefile
index 504b926..f69833d 100644
--- a/drivers/infiniband/core/Makefile
+++ b/drivers/infiniband/core/Makefile
@@ -12,7 +12,7 @@ ib_core-y := packer.o ud_header.o verbs.o cq.o rw.o sysfs.o \
device.o fmr_pool.o cache.o netlink.o \
roce_gid_mgmt.o mr_pool.o addr.o sa_query.o \
multicast.o mad.o smi.o agent.o mad_rmpp.o \
- security.o nldev.o
+ security.o nldev.o restrack.o
ib_core-$(CONFIG_INFINIBAND_USER_MEM) += umem.o
ib_core-$(CONFIG_INFINIBAND_ON_DEMAND_PAGING) += umem_odp.o

drivers/infiniband/core/addr.c

View file
diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c
index f4e8185..a5b4cf0 100644
--- a/drivers/infiniband/core/addr.c
+++ b/drivers/infiniband/core/addr.c
@@ -243,8 +243,7 @@ void rdma_copy_addr(struct rdma_dev_addr *dev_addr,
EXPORT_SYMBOL(rdma_copy_addr);
int rdma_translate_ip(const struct sockaddr *addr,
- struct rdma_dev_addr *dev_addr,
- u16 *vlan_id)
+ struct rdma_dev_addr *dev_addr)
{
struct net_device *dev;
@@ -266,9 +265,6 @@ int rdma_translate_ip(const struct sockaddr *addr,
return -EADDRNOTAVAIL;
rdma_copy_addr(dev_addr, dev, NULL);
- dev_addr->bound_dev_if = dev->ifindex;
- if (vlan_id)
- *vlan_id = rdma_vlan_dev_vlan_id(dev);
dev_put(dev);
break;
#if IS_ENABLED(CONFIG_IPV6)
@@ -279,9 +275,6 @@ int rdma_translate_ip(const struct sockaddr *addr,
&((const struct sockaddr_in6 *)addr)->sin6_addr,
dev, 1)) {
rdma_copy_addr(dev_addr, dev, NULL);
- dev_addr->bound_dev_if = dev->ifindex;
- if (vlan_id)
- *vlan_id = rdma_vlan_dev_vlan_id(dev);
break;
}
}
@@ -481,7 +474,7 @@ static int addr_resolve_neigh(struct dst_entry *dst,
if (dst->dev->flags & IFF_LOOPBACK) {
int ret;
- ret = rdma_translate_ip(dst_in, addr, NULL);
+ ret = rdma_translate_ip(dst_in, addr);
if (!ret)
memcpy(addr->dst_dev_addr, addr->src_dev_addr,
MAX_ADDR_LEN);
@@ -558,7 +551,7 @@ static int addr_resolve(struct sockaddr *src_in,
}
if (ndev->flags & IFF_LOOPBACK) {
- ret = rdma_translate_ip(dst_in, addr, NULL);
+ ret = rdma_translate_ip(dst_in, addr);
/*
* Put the loopback device and get the translated
* device instead.
@@ -744,7 +737,6 @@ void rdma_addr_cancel(struct rdma_dev_addr *addr)
EXPORT_SYMBOL(rdma_addr_cancel);
struct resolve_cb_context {
- struct rdma_dev_addr *addr;
struct completion comp;
int status;
};
@@ -752,39 +744,31 @@ struct resolve_cb_context {
static void resolve_cb(int status, struct sockaddr *src_addr,
struct rdma_dev_addr *addr, void *context)
{
- if (!status)
- memcpy(((struct resolve_cb_context *)context)->addr,
- addr, sizeof(struct rdma_dev_addr));
((struct resolve_cb_context *)context)->status = status;
complete(&((struct resolve_cb_context *)context)->comp);
}
int rdma_addr_find_l2_eth_by_grh(const union ib_gid *sgid,
const union ib_gid *dgid,
- u8 *dmac, u16 *vlan_id, int *if_index,
+ u8 *dmac, const struct net_device *ndev,
int *hoplimit)
{
- int ret = 0;
struct rdma_dev_addr dev_addr;
struct resolve_cb_context ctx;
- struct net_device *dev;
-
union {
struct sockaddr _sockaddr;
struct sockaddr_in _sockaddr_in;
struct sockaddr_in6 _sockaddr_in6;
} sgid_addr, dgid_addr;
-
+ int ret;
rdma_gid2ip(&sgid_addr._sockaddr, sgid);
rdma_gid2ip(&dgid_addr._sockaddr, dgid);
memset(&dev_addr, 0, sizeof(dev_addr));
- if (if_index)
- dev_addr.bound_dev_if = *if_index;
+ dev_addr.bound_dev_if = ndev->ifindex;
dev_addr.net = &init_net;
- ctx.addr = &dev_addr;
init_completion(&ctx.comp);
ret = rdma_resolve_ip(&self, &sgid_addr._sockaddr, &dgid_addr._sockaddr,
&dev_addr, 1000, resolve_cb, &ctx);
@@ -798,42 +782,9 @@ int rdma_addr_find_l2_eth_by_grh(const union ib_gid *sgid,
return ret;
memcpy(dmac, dev_addr.dst_dev_addr, ETH_ALEN);
- dev = dev_get_by_index(&init_net, dev_addr.bound_dev_if);
- if (!dev)
- return -ENODEV;
- if (if_index)
- *if_index = dev_addr.bound_dev_if;
- if (vlan_id)
- *vlan_id = rdma_vlan_dev_vlan_id(dev);
- if (hoplimit)
- *hoplimit = dev_addr.hoplimit;
- dev_put(dev);
- return ret;
-}
-EXPORT_SYMBOL(rdma_addr_find_l2_eth_by_grh);
-
-int rdma_addr_find_smac_by_sgid(union ib_gid *sgid, u8 *smac, u16 *vlan_id)
-{
- int ret = 0;
- struct rdma_dev_addr dev_addr;
- union {
- struct sockaddr _sockaddr;
- struct sockaddr_in _sockaddr_in;
- struct sockaddr_in6 _sockaddr_in6;
- } gid_addr;
-
- rdma_gid2ip(&gid_addr._sockaddr, sgid);
-
- memset(&dev_addr, 0, sizeof(dev_addr));
- dev_addr.net = &init_net;
- ret = rdma_translate_ip(&gid_addr._sockaddr, &dev_addr, vlan_id);
- if (ret)
- return ret;
-
- memcpy(smac, dev_addr.src_dev_addr, ETH_ALEN);
- return ret;
+ *hoplimit = dev_addr.hoplimit;
+ return 0;
}
-EXPORT_SYMBOL(rdma_addr_find_smac_by_sgid);
static int netevent_callback(struct notifier_block *self, unsigned long event,
void *ctx)

drivers/infiniband/core/cache.c

View file
diff --git a/drivers/infiniband/core/cache.c b/drivers/infiniband/core/cache.c
index 7751563..e9a409d 100644
--- a/drivers/infiniband/core/cache.c
+++ b/drivers/infiniband/core/cache.c
@@ -573,27 +573,24 @@ static int ib_cache_gid_find_by_filter(struct ib_device *ib_dev,
struct ib_gid_attr attr;
if (table->data_vec[i].props & GID_TABLE_ENTRY_INVALID)
- goto next;
+ continue;
if (memcmp(gid, &table->data_vec[i].gid, sizeof(*gid)))
- goto next;
+ continue;
memcpy(&attr, &table->data_vec[i].attr, sizeof(attr));
- if (filter(gid, &attr, context))
+ if (filter(gid, &attr, context)) {
found = true;
-
-next:
- if (found)
+ if (index)
+ *index = i;
break;
+ }
}
read_unlock_irqrestore(&table->rwlock, flags);
if (!found)
return -ENOENT;
-
- if (index)
- *index = i;
return 0;
}
@@ -824,12 +821,7 @@ static int gid_table_setup_one(struct ib_device *ib_dev)
if (err)
return err;
- err = roce_rescan_device(ib_dev);
-
- if (err) {
- gid_table_cleanup_one(ib_dev);
- gid_table_release_one(ib_dev);
- }
+ rdma_roce_rescan_device(ib_dev);
return err;
}
@@ -883,7 +875,6 @@ int ib_find_gid_by_filter(struct ib_device *device,
port_num, filter,
context, index);
}
-EXPORT_SYMBOL(ib_find_gid_by_filter);
int ib_get_cached_pkey(struct ib_device *device,
u8 port_num,

drivers/infiniband/core/cm.c

View file
diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
index f6b159d..e674915 100644
--- a/drivers/infiniband/core/cm.c
+++ b/drivers/infiniband/core/cm.c
@@ -452,13 +452,14 @@ static void cm_set_private_data(struct cm_id_private *cm_id_priv,
cm_id_priv->private_data_len = private_data_len;
}
-static void cm_init_av_for_response(struct cm_port *port, struct ib_wc *wc,
- struct ib_grh *grh, struct cm_av *av)
+static int cm_init_av_for_response(struct cm_port *port, struct ib_wc *wc,
+ struct ib_grh *grh, struct cm_av *av)
{
av->port = port;
av->pkey_index = wc->pkey_index;
- ib_init_ah_from_wc(port->cm_dev->ib_device, port->port_num, wc,
- grh, &av->ah_attr);
+ return ib_init_ah_attr_from_wc(port->cm_dev->ib_device,
+ port->port_num, wc,
+ grh, &av->ah_attr);
}
static int cm_init_av_by_path(struct sa_path_rec *path, struct cm_av *av,
@@ -494,8 +495,11 @@ static int cm_init_av_by_path(struct sa_path_rec *path, struct cm_av *av,
return ret;
av->port = port;
- ib_init_ah_from_path(cm_dev->ib_device, port->port_num, path,
- &av->ah_attr);
+ ret = ib_init_ah_attr_from_path(cm_dev->ib_device, port->port_num, path,
+ &av->ah_attr);
+ if (ret)
+ return ret;
+
av->timeout = path->packet_life_time + 1;
spin_lock_irqsave(&cm.lock, flags);
@@ -1560,6 +1564,35 @@ static u16 cm_get_bth_pkey(struct cm_work *work)
return pkey;
}
+/**
+ * Convert OPA SGID to IB SGID
+ * ULPs (such as IPoIB) do not understand OPA GIDs and will
+ * reject them as the local_gid will not match the sgid. Therefore,
+ * change the pathrec's SGID to an IB SGID.
+ *
+ * @work: Work completion
+ * @path: Path record
+ */
+static void cm_opa_to_ib_sgid(struct cm_work *work,
+ struct sa_path_rec *path)
+{
+ struct ib_device *dev = work->port->cm_dev->ib_device;
+ u8 port_num = work->port->port_num;
+
+ if (rdma_cap_opa_ah(dev, port_num) &&
+ (ib_is_opa_gid(&path->sgid))) {
+ union ib_gid sgid;
+
+ if (ib_get_cached_gid(dev, port_num, 0, &sgid, NULL)) {
+ dev_warn(&dev->dev,
+ "Error updating sgid in CM request\n");
+ return;
+ }
+
+ path->sgid = sgid;
+ }
+}
+
static void cm_format_req_event(struct cm_work *work,
struct cm_id_private *cm_id_priv,
struct ib_cm_id *listen_id)
@@ -1573,10 +1606,13 @@ static void cm_format_req_event(struct cm_work *work,
param->bth_pkey = cm_get_bth_pkey(work);
param->port = cm_id_priv->av.port->port_num;
param->primary_path = &work->path[0];
- if (cm_req_has_alt_path(req_msg))
+ cm_opa_to_ib_sgid(work, param->primary_path);
+ if (cm_req_has_alt_path(req_msg)) {
param->alternate_path = &work->path[1];
- else
+ cm_opa_to_ib_sgid(work, param->alternate_path);
+ } else {
param->alternate_path = NULL;
+ }
param->remote_ca_guid = req_msg->local_ca_guid;
param->remote_qkey = be32_to_cpu(req_msg->local_qkey);
param->remote_qpn = be32_to_cpu(cm_req_get_local_qpn(req_msg));
@@ -1826,9 +1862,11 @@ static int cm_req_handler(struct cm_work *work)
cm_id_priv = container_of(cm_id, struct cm_id_private, id);
cm_id_priv->id.remote_id = req_msg->local_comm_id;
- cm_init_av_for_response(work->port, work->mad_recv_wc->wc,
- work->mad_recv_wc->recv_buf.grh,
- &cm_id_priv->av);
+ ret = cm_init_av_for_response(work->port, work->mad_recv_wc->wc,
+ work->mad_recv_wc->recv_buf.grh,
+ &cm_id_priv->av);
+ if (ret)
+ goto destroy;
cm_id_priv->timewait_info = cm_create_timewait_info(cm_id_priv->
id.local_id);
if (IS_ERR(cm_id_priv->timewait_info)) {
@@ -1841,9 +1879,10 @@ static int cm_req_handler(struct cm_work *work)
listen_cm_id_priv = cm_match_req(work, cm_id_priv);
if (!listen_cm_id_priv) {
+ pr_debug("%s: local_id %d, no listen_cm_id_priv\n", __func__,
+ be32_to_cpu(cm_id->local_id));
ret = -EINVAL;
- kfree(cm_id_priv->timewait_info);
- goto destroy;
+ goto free_timeinfo;
}
cm_id_priv->id.cm_handler = listen_cm_id_priv->id.cm_handler;
@@ -1861,56 +1900,50 @@ static int cm_req_handler(struct cm_work *work)
work->port->port_num,
grh->sgid_index,
&gid, &gid_attr);
- if (!ret) {
- if (gid_attr.ndev) {
- work->path[0].rec_type =
- sa_conv_gid_to_pathrec_type(gid_attr.gid_type);
- sa_path_set_ifindex(&work->path[0],
- gid_attr.ndev->ifindex);
- sa_path_set_ndev(&work->path[0],
- dev_net(gid_attr.ndev));
- dev_put(gid_attr.ndev);
- } else {
- cm_path_set_rec_type(work->port->cm_dev->ib_device,
- work->port->port_num,
- &work->path[0],
- &req_msg->primary_local_gid);
- }
- if (cm_req_has_alt_path(req_msg))
- work->path[1].rec_type = work->path[0].rec_type;
- cm_format_paths_from_req(req_msg, &work->path[0],
- &work->path[1]);
- if (cm_id_priv->av.ah_attr.type == RDMA_AH_ATTR_TYPE_ROCE)
- sa_path_set_dmac(&work->path[0],
- cm_id_priv->av.ah_attr.roce.dmac);
- work->path[0].hop_limit = grh->hop_limit;
- ret = cm_init_av_by_path(&work->path[0], &cm_id_priv->av,
- cm_id_priv);
+ if (ret) {
+ ib_send_cm_rej(cm_id, IB_CM_REJ_UNSUPPORTED, NULL, 0, NULL, 0);
+ goto rejected;
+ }
+
+ if (gid_attr.ndev) {
+ work->path[0].rec_type =
+ sa_conv_gid_to_pathrec_type(gid_attr.gid_type);
+ sa_path_set_ifindex(&work->path[0],
+ gid_attr.ndev->ifindex);
+ sa_path_set_ndev(&work->path[0],
+ dev_net(gid_attr.ndev));
+ dev_put(gid_attr.ndev);
+ } else {
+ cm_path_set_rec_type(work->port->cm_dev->ib_device,
+ work->port->port_num,
+ &work->path[0],
+ &req_msg->primary_local_gid);
}
+ if (cm_req_has_alt_path(req_msg))
+ work->path[1].rec_type = work->path[0].rec_type;
+ cm_format_paths_from_req(req_msg, &work->path[0],
+ &work->path[1]);
+ if (cm_id_priv->av.ah_attr.type == RDMA_AH_ATTR_TYPE_ROCE)
+ sa_path_set_dmac(&work->path[0],
+ cm_id_priv->av.ah_attr.roce.dmac);
+ work->path[0].hop_limit = grh->hop_limit;
+ ret = cm_init_av_by_path(&work->path[0], &cm_id_priv->av,
+ cm_id_priv);
if (ret) {
- int err = ib_get_cached_gid(work->port->cm_dev->ib_device,
- work->port->port_num, 0,
- &work->path[0].sgid,
- &gid_attr);
- if (!err && gid_attr.ndev) {
- work->path[0].rec_type =
- sa_conv_gid_to_pathrec_type(gid_attr.gid_type);
- sa_path_set_ifindex(&work->path[0],
- gid_attr.ndev->ifindex);
- sa_path_set_ndev(&work->path[0],
- dev_net(gid_attr.ndev));
- dev_put(gid_attr.ndev);
- } else {
- cm_path_set_rec_type(work->port->cm_dev->ib_device,
- work->port->port_num,
- &work->path[0],
- &req_msg->primary_local_gid);
- }
- if (cm_req_has_alt_path(req_msg))
- work->path[1].rec_type = work->path[0].rec_type;
- ib_send_cm_rej(cm_id, IB_CM_REJ_INVALID_GID,
- &work->path[0].sgid, sizeof work->path[0].sgid,
- NULL, 0);
+ int err;
+
+ err = ib_get_cached_gid(work->port->cm_dev->ib_device,
+ work->port->port_num, 0,
+ &work->path[0].sgid,
+ NULL);
+ if (err)
+ ib_send_cm_rej(cm_id, IB_CM_REJ_INVALID_GID,
+ NULL, 0, NULL, 0);
+ else
+ ib_send_cm_rej(cm_id, IB_CM_REJ_INVALID_GID,
+ &work->path[0].sgid,
+ sizeof(work->path[0].sgid),
+ NULL, 0);
goto rejected;
}
if (cm_req_has_alt_path(req_msg)) {
@@ -1919,7 +1952,7 @@ static int cm_req_handler(struct cm_work *work)
if (ret) {
ib_send_cm_rej(cm_id, IB_CM_REJ_INVALID_ALT_GID,
&work->path[0].sgid,
- sizeof work->path[0].sgid, NULL, 0);
+ sizeof(work->path[0].sgid), NULL, 0);
goto rejected;
}
}
@@ -1945,6 +1978,8 @@ static int cm_req_handler(struct cm_work *work)
rejected:
atomic_dec(&cm_id_priv->refcount);
cm_deref_id(listen_cm_id_priv);
+free_timeinfo:
+ kfree(cm_id_priv->timewait_info);
destroy:
ib_destroy_cm_id(cm_id);
return ret;
@@ -1997,6 +2032,8 @@ int ib_send_cm_rep(struct ib_cm_id *cm_id,
spin_lock_irqsave(&cm_id_priv->lock, flags);
if (cm_id->state != IB_CM_REQ_RCVD &&
cm_id->state != IB_CM_MRA_REQ_SENT) {
+ pr_debug("%s: local_comm_id %d, cm_id->state: %d\n", __func__,
+ be32_to_cpu(cm_id_priv->id.local_id), cm_id->state);
ret = -EINVAL;
goto out;
}
@@ -2063,6 +2100,8 @@ int ib_send_cm_rtu(struct ib_cm_id *cm_id,
spin_lock_irqsave(&cm_id_priv->lock, flags);
if (cm_id->state != IB_CM_REP_RCVD &&
cm_id->state != IB_CM_MRA_REP_SENT) {
+ pr_debug("%s: local_id %d, cm_id->state %d\n", __func__,
+ be32_to_cpu(cm_id->local_id), cm_id->state);
ret = -EINVAL;
goto error;
}
@@ -2170,6 +2209,8 @@ static int cm_rep_handler(struct cm_work *work)
cm_id_priv = cm_acquire_id(rep_msg->remote_comm_id, 0);
if (!cm_id_priv) {
cm_dup_rep_handler(work);
+ pr_debug("%s: remote_comm_id %d, no cm_id_priv\n", __func__,
+ be32_to_cpu(rep_msg->remote_comm_id));
return -EINVAL;
}
@@ -2183,6 +2224,10 @@ static int cm_rep_handler(struct cm_work *work)
default:
spin_unlock_irq(&cm_id_priv->lock);
ret = -EINVAL;
+ pr_debug("%s: cm_id_priv->id.state: %d, local_comm_id %d, remote_comm_id %d\n",
+ __func__, cm_id_priv->id.state,
+ be32_to_cpu(rep_msg->local_comm_id),
+ be32_to_cpu(rep_msg->remote_comm_id));
goto error;
}
@@ -2196,6 +2241,8 @@ static int cm_rep_handler(struct cm_work *work)
spin_unlock(&cm.lock);
spin_unlock_irq(&cm_id_priv->lock);
ret = -EINVAL;
+ pr_debug("%s: Failed to insert remote id %d\n", __func__,
+ be32_to_cpu(rep_msg->remote_comm_id));
goto error;
}
/* Check for a stale connection. */
@@ -2213,6 +2260,10 @@ static int cm_rep_handler(struct cm_work *work)
IB_CM_REJ_STALE_CONN, CM_MSG_RESPONSE_REP,
NULL, 0);
ret = -EINVAL;
+ pr_debug("%s: Stale connection. local_comm_id %d, remote_comm_id %d\n",
+ __func__, be32_to_cpu(rep_msg->local_comm_id),
+ be32_to_cpu(rep_msg->remote_comm_id));
+
if (cur_cm_id_priv) {
cm_id = &cur_cm_id_priv->id;
ib_send_cm_dreq(cm_id, NULL, 0);
@@ -2359,6 +2410,8 @@ int ib_send_cm_dreq(struct ib_cm_id *cm_id,
cm_id_priv = container_of(cm_id, struct cm_id_private, id);
spin_lock_irqsave(&cm_id_priv->lock, flags);
if (cm_id->state != IB_CM_ESTABLISHED) {
+ pr_debug("%s: local_id %d, cm_id->state: %d\n", __func__,
+ be32_to_cpu(cm_id->local_id), cm_id->state);
ret = -EINVAL;
goto out;
}
@@ -2428,6 +2481,8 @@ int ib_send_cm_drep(struct ib_cm_id *cm_id,
if (cm_id->state != IB_CM_DREQ_RCVD) {
spin_unlock_irqrestore(&cm_id_priv->lock, flags);
kfree(data);
+ pr_debug("%s: local_id %d, cm_idcm_id->state(%d) != IB_CM_DREQ_RCVD\n",
+ __func__, be32_to_cpu(cm_id->local_id), cm_id->state);
return -EINVAL;
}
@@ -2493,6 +2548,9 @@ static int cm_dreq_handler(struct cm_work *work)
atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
counter[CM_DREQ_COUNTER]);
cm_issue_drep(work->port, work->mad_recv_wc);
+ pr_debug("%s: no cm_id_priv, local_comm_id %d, remote_comm_id %d\n",
+ __func__, be32_to_cpu(dreq_msg->local_comm_id),
+ be32_to_cpu(dreq_msg->remote_comm_id));
return -EINVAL;
}
@@ -2535,6 +2593,9 @@ static int cm_dreq_handler(struct cm_work *work)
counter[CM_DREQ_COUNTER]);
goto unlock;
default:
+ pr_debug("%s: local_id %d, cm_id_priv->id.state: %d\n",
+ __func__, be32_to_cpu(cm_id_priv->id.local_id),
+ cm_id_priv->id.state);
goto unlock;
}
cm_id_priv->id.state = IB_CM_DREQ_RCVD;
@@ -2638,6 +2699,8 @@ int ib_send_cm_rej(struct ib_cm_id *cm_id,
cm_enter_timewait(cm_id_priv);
break;
default:
+ pr_debug("%s: local_id %d, cm_id->state: %d\n", __func__,
+ be32_to_cpu(cm_id_priv->id.local_id), cm_id->state);
ret = -EINVAL;
goto out;
}
@@ -2748,6 +2811,9 @@ static int cm_rej_handler(struct cm_work *work)

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/cma.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/cma_configfs.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/core_priv.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/cq.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/device.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/fmr_pool.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/iwpm_util.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/mad.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/netlink.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/nldev.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/restrack.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/roce_gid_mgmt.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/sa_query.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/security.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/sysfs.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/ucm.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/ucma.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/umem.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/user_mad.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/uverbs_cmd.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/uverbs_ioctl.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/uverbs_main.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/uverbs_std_types.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/verbs.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/bnxt_re/bnxt_re.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/bnxt_re/hw_counters.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/bnxt_re/hw_counters.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/bnxt_re/ib_verbs.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/bnxt_re/ib_verbs.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/bnxt_re/main.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/bnxt_re/qplib_fp.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/bnxt_re/qplib_fp.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/bnxt_re/qplib_rcfw.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/bnxt_re/qplib_rcfw.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/bnxt_re/qplib_res.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/bnxt_re/qplib_sp.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/bnxt_re/qplib_sp.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/bnxt_re/roce_hsi.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/cxgb4/cm.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/cxgb4/device.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/cxgb4/ev.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/cxgb4/iw_cxgb4.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/cxgb4/qp.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/cxgb4/t4.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/hfi1/chip.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/hfi1/chip.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/hfi1/driver.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/hfi1/firmware.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/hfi1/hfi.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/hfi1/init.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/hfi1/mad.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/hfi1/qp.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/hfi1/rc.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/hfi1/verbs.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/hns/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/hns/hns_roce_cmd.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/hns/hns_roce_cmd.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/hns/hns_roce_common.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/hns/hns_roce_cq.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/hns/hns_roce_device.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/hns/hns_roce_eq.c

View before deletion

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/hns/hns_roce_eq.h

View before deletion

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/hns/hns_roce_hw_v1.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/hns/hns_roce_hw_v1.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/hns/hns_roce_hw_v2.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/hns/hns_roce_hw_v2.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/hns/hns_roce_main.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/hns/hns_roce_qp.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/i40iw/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/i40iw/i40iw.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/i40iw/i40iw_cm.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/i40iw/i40iw_cm.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/i40iw/i40iw_ctrl.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/i40iw/i40iw_d.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/i40iw/i40iw_hw.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/i40iw/i40iw_main.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/i40iw/i40iw_puda.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/i40iw/i40iw_puda.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/i40iw/i40iw_uk.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/i40iw/i40iw_user.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/i40iw/i40iw_utils.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/i40iw/i40iw_verbs.c

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/main.c

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/mlx5/cong.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mlx5/cq.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mlx5/mad.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mlx5/main.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mlx5/mlx5_ib.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mlx5/mr.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mlx5/odp.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/mlx5/qp.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_user.h

View before deletion

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/ocrdma/ocrdma_hw.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ocrdma/ocrdma_stats.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/ocrdma/ocrdma_verbs.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/qedr/verbs.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/qib/qib.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/qib/qib_driver.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/qib/qib_eeprom.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/qib/qib_file_ops.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/qib/qib_init.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/qib/qib_keys.c

View before deletion

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/qib/qib_rc.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/qib/qib_verbs.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/usnic/usnic_ib_sysfs.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/usnic/usnic_ib_verbs.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/vmw_pvrdma/pvrdma.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/vmw_pvrdma/pvrdma_cq.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/vmw_pvrdma/pvrdma_mr.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/vmw_pvrdma/pvrdma_qp.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/sw/rdmavt/cq.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/sw/rdmavt/mcast.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/sw/rdmavt/mr.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/sw/rdmavt/qp.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/sw/rdmavt/srq.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/sw/rdmavt/trace.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/sw/rdmavt/trace_qp.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/sw/rdmavt/vt.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/sw/rdmavt/vt.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/sw/rxe/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/sw/rxe/rxe.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/sw/rxe/rxe.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/sw/rxe/rxe_loc.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/sw/rxe/rxe_net.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/sw/rxe/rxe_net.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/sw/rxe/rxe_qp.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/sw/rxe/rxe_recv.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/sw/rxe/rxe_req.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/sw/rxe/rxe_resp.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/sw/rxe/rxe_verbs.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/sw/rxe/rxe_verbs.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_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/isert/ib_isert.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/ulp/isert/ib_isert.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.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/infiniband/ulp/srp/ib_srp.h

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/ulp/srpt/ib_srpt.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/ulp/srpt/ib_srpt.h

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/mellanox/mlx4/qp.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/mellanox/mlx5/core/eq.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/mellanox/mlx5/core/fw.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/mellanox/mlx5/core/lib/gid.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/mellanox/mlx5/core/main.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/mellanox/mlx5/core/qp.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/mellanox/mlx5/core/vport.c

View file

This diff is incomplete. Download the complete patch.

include/linux/mlx5/device.h

View file

This diff is incomplete. Download the complete patch.

include/linux/mlx5/driver.h

View file

This diff is incomplete. Download the complete patch.

include/linux/mlx5/mlx5_ifc.h

View file

This diff is incomplete. Download the complete patch.

include/linux/mlx5/qp.h

View file

This diff is incomplete. Download the complete patch.

include/linux/mlx5/vport.h

View file

This diff is incomplete. Download the complete patch.

include/rdma/ib_addr.h

View file

This diff is incomplete. Download the complete patch.

include/rdma/ib_sa.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.

include/rdma/opa_addr.h

View file

This diff is incomplete. Download the complete patch.

include/rdma/rdma_cm.h

View file

This diff is incomplete. Download the complete patch.

include/rdma/rdma_cm_ib.h

View file

This diff is incomplete. Download the complete patch.

include/rdma/rdma_vt.h

View file

This diff is incomplete. Download the complete patch.

include/rdma/restrack.h

View file

This diff is incomplete. Download the complete patch.

include/scsi/srp.h

View file

This diff is incomplete. Download the complete patch.

include/uapi/rdma/bnxt_re-abi.h

View file

This diff is incomplete. Download the complete patch.

include/uapi/rdma/ib_user_verbs.h

View file

This diff is incomplete. Download the complete patch.

include/uapi/rdma/mlx4-abi.h

View file

This diff is incomplete. Download the complete patch.

include/uapi/rdma/mlx5-abi.h

View file

This diff is incomplete. Download the complete patch.

include/uapi/rdma/rdma_netlink.h

View file

This diff is incomplete. Download the complete patch.

include/uapi/rdma/vmw_pvrdma-abi.h

View file

This diff is incomplete. Download the complete patch.

lib/kobject.c

View file

This diff is incomplete. Download the complete patch.

net/rds/ib.c

View file

This diff is incomplete. Download the complete patch.