Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 04d740d5 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull rdma fixes from Doug Ledford:
 - One minor fix to the ib core
 - Four minor fixes to the Mellanox drivers
 - Remove three deprecated drivers from staging/rdma now that all of
   Greg's queued changes to them are merged

* tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma:
  staging/rdma: remove deprecated ipath driver
  staging/rdma: remove deprecated ehca driver
  staging/rdma: remove deprecated amso1100 driver
  IB/core: Set correct payload length for RoCEv2 over IPv6
  IB/mlx5: Use MLX5_GET to correctly get end of padding mode
  IB/mlx5: Fix use of null pointer PD
  IB/mlx5: Fix reqlen validation in mlx5_ib_alloc_ucontext
  IB/mlx5: Add CREATE_CQ and CREATE_QP to uverbs_ex_cmd_mask
parents b37a05c0 b85d9905
Loading
Loading
Loading
Loading
+0 −20
Original line number Diff line number Diff line
@@ -686,13 +686,6 @@ M: Michael Hanselmann <linux-kernel@hansmi.ch>
S:	Supported
F:	drivers/macintosh/ams/

AMSO1100 RNIC DRIVER
M:	Tom Tucker <tom@opengridcomputing.com>
M:	Steve Wise <swise@opengridcomputing.com>
L:	linux-rdma@vger.kernel.org
S:	Maintained
F:	drivers/infiniband/hw/amso1100/

ANALOG DEVICES INC AD9389B DRIVER
M:	Hans Verkuil <hans.verkuil@cisco.com>
L:	linux-media@vger.kernel.org
@@ -4198,13 +4191,6 @@ W: http://aeschi.ch.eu.org/efs/
S:	Orphan
F:	fs/efs/

EHCA (IBM GX bus InfiniBand adapter) DRIVER
M:	Hoang-Nam Nguyen <hnguyen@de.ibm.com>
M:	Christoph Raisch <raisch@de.ibm.com>
L:	linux-rdma@vger.kernel.org
S:	Supported
F:	drivers/infiniband/hw/ehca/

EHEA (IBM pSeries eHEA 10Gb ethernet adapter) DRIVER
M:	Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
L:	netdev@vger.kernel.org
@@ -5823,12 +5809,6 @@ M: Juanjo Ciarlante <jjciarla@raiz.uncu.edu.ar>
S:	Maintained
F:	net/ipv4/netfilter/ipt_MASQUERADE.c

IPATH DRIVER
M:	Mike Marciniszyn <infinipath@intel.com>
L:	linux-rdma@vger.kernel.org
S:	Maintained
F:	drivers/staging/rdma/ipath/

IPMI SUBSYSTEM
M:	Corey Minyard <minyard@acm.org>
L:	openipmi-developer@lists.sourceforge.net (moderated for non-subscribers)
+4 −3
Original line number Diff line number Diff line
@@ -322,6 +322,8 @@ int ib_ud_header_init(int payload_bytes,
		      int    immediate_present,
		      struct ib_ud_header *header)
{
	size_t udp_bytes = udp_present ? IB_UDP_BYTES : 0;

	grh_present = grh_present && !ip_version;
	memset(header, 0, sizeof *header);

@@ -353,7 +355,8 @@ int ib_ud_header_init(int payload_bytes,
	if (ip_version == 6 || grh_present) {
		header->grh.ip_version      = 6;
		header->grh.payload_length  =
			cpu_to_be16((IB_BTH_BYTES     +
			cpu_to_be16((udp_bytes        +
				     IB_BTH_BYTES     +
				     IB_DETH_BYTES    +
				     payload_bytes    +
				     4                + /* ICRC     */
@@ -362,8 +365,6 @@ int ib_ud_header_init(int payload_bytes,
	}

	if (ip_version == 4) {
		int udp_bytes = udp_present ? IB_UDP_BYTES : 0;

		header->ip4.ver = 4; /* version 4 */
		header->ip4.hdr_len = 5; /* 5 words */
		header->ip4.tot_len =
+6 −2
Original line number Diff line number Diff line
@@ -844,6 +844,8 @@ static struct ib_ucontext *mlx5_ib_alloc_ucontext(struct ib_device *ibdev,
	int err;
	int i;
	size_t reqlen;
	size_t min_req_v2 = offsetof(struct mlx5_ib_alloc_ucontext_req_v2,
				     max_cqe_version);

	if (!dev->ib_active)
		return ERR_PTR(-EAGAIN);
@@ -854,7 +856,7 @@ static struct ib_ucontext *mlx5_ib_alloc_ucontext(struct ib_device *ibdev,
	reqlen = udata->inlen - sizeof(struct ib_uverbs_cmd_hdr);
	if (reqlen == sizeof(struct mlx5_ib_alloc_ucontext_req))
		ver = 0;
	else if (reqlen >= sizeof(struct mlx5_ib_alloc_ucontext_req_v2))
	else if (reqlen >= min_req_v2)
		ver = 2;
	else
		return ERR_PTR(-EINVAL);
@@ -2214,7 +2216,9 @@ static void *mlx5_ib_add(struct mlx5_core_dev *mdev)
		(1ull << IB_USER_VERBS_CMD_CREATE_XSRQ)		|
		(1ull << IB_USER_VERBS_CMD_OPEN_QP);
	dev->ib_dev.uverbs_ex_cmd_mask =
		(1ull << IB_USER_VERBS_EX_CMD_QUERY_DEVICE);
		(1ull << IB_USER_VERBS_EX_CMD_QUERY_DEVICE)	|
		(1ull << IB_USER_VERBS_EX_CMD_CREATE_CQ)	|
		(1ull << IB_USER_VERBS_EX_CMD_CREATE_QP);

	dev->ib_dev.query_device	= mlx5_ib_query_device;
	dev->ib_dev.query_port		= mlx5_ib_query_port;
+10 −10
Original line number Diff line number Diff line
@@ -1036,7 +1036,7 @@ static int create_raw_packet_qp_rq(struct mlx5_ib_dev *dev,
	wq = MLX5_ADDR_OF(rqc, rqc, wq);
	MLX5_SET(wq, wq, wq_type, MLX5_WQ_TYPE_CYCLIC);
	MLX5_SET(wq, wq, end_padding_mode,
		 MLX5_GET64(qpc, qpc, end_padding_mode));
		 MLX5_GET(qpc, qpc, end_padding_mode));
	MLX5_SET(wq, wq, page_offset, MLX5_GET(qpc, qpc, page_offset));
	MLX5_SET(wq, wq, pd, MLX5_GET(qpc, qpc, pd));
	MLX5_SET64(wq, wq, dbr_addr, MLX5_GET64(qpc, qpc, dbr_addr));
@@ -1615,15 +1615,6 @@ struct ib_qp *mlx5_ib_create_qp(struct ib_pd *pd,

	if (pd) {
		dev = to_mdev(pd->device);
	} else {
		/* being cautious here */
		if (init_attr->qp_type != IB_QPT_XRC_TGT &&
		    init_attr->qp_type != MLX5_IB_QPT_REG_UMR) {
			pr_warn("%s: no PD for transport %s\n", __func__,
				ib_qp_type_str(init_attr->qp_type));
			return ERR_PTR(-EINVAL);
		}
		dev = to_mdev(to_mxrcd(init_attr->xrcd)->ibxrcd.device);

		if (init_attr->qp_type == IB_QPT_RAW_PACKET) {
			if (!pd->uobject) {
@@ -1634,6 +1625,15 @@ struct ib_qp *mlx5_ib_create_qp(struct ib_pd *pd,
				return ERR_PTR(-EINVAL);
			}
		}
	} else {
		/* being cautious here */
		if (init_attr->qp_type != IB_QPT_XRC_TGT &&
		    init_attr->qp_type != MLX5_IB_QPT_REG_UMR) {
			pr_warn("%s: no PD for transport %s\n", __func__,
				ib_qp_type_str(init_attr->qp_type));
			return ERR_PTR(-EINVAL);
		}
		dev = to_mdev(to_mxrcd(init_attr->xrcd)->ibxrcd.device);
	}

	switch (init_attr->qp_type) {
+0 −6
Original line number Diff line number Diff line
@@ -22,12 +22,6 @@ menuconfig STAGING_RDMA
# Please keep entries in alphabetic order
if STAGING_RDMA

source "drivers/staging/rdma/amso1100/Kconfig"

source "drivers/staging/rdma/ehca/Kconfig"

source "drivers/staging/rdma/hfi1/Kconfig"

source "drivers/staging/rdma/ipath/Kconfig"

endif
Loading