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

Commit 7c034dfd authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull InfiniBand/RDMA updates from Roland Dreier:

 - IPoIB fixes from Doug Ledford and Erez Shitrit

 - iSER updates from Sagi Grimberg

 - mlx4 GUID handling changes from Yishai Hadas

 - other misc fixes

* tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (51 commits)
  mlx5: wrong page mask if CONFIG_ARCH_DMA_ADDR_T_64BIT enabled for 32Bit architectures
  IB/iser: Rewrite bounce buffer code path
  IB/iser: Bump version to 1.6
  IB/iser: Remove code duplication for a single DMA entry
  IB/iser: Pass struct iser_mem_reg to iser_fast_reg_mr and iser_reg_sig_mr
  IB/iser: Modify struct iser_mem_reg members
  IB/iser: Make fastreg pool cache friendly
  IB/iser: Move PI context alloc/free to routines
  IB/iser: Move fastreg descriptor pool get/put to helper functions
  IB/iser: Merge build page-vec into register page-vec
  IB/iser: Get rid of struct iser_rdma_regd
  IB/iser: Remove redundant assignments in iser_reg_page_vec
  IB/iser: Move memory reg/dereg routines to iser_memory.c
  IB/iser: Don't pass ib_device to fall_to_bounce_buff routine
  IB/iser: Remove a redundant struct iser_data_buf
  IB/iser: Remove redundant cmd_data_len calculation
  IB/iser: Fix wrong calculation of protection buffer length
  IB/iser: Handle fastreg/local_inv completion errors
  IB/iser: Fix unload during ep_poll wrong dereference
  ib_srpt: convert printk's to pr_* functions
  ...
parents 1204c464 c1c2fef6
Loading
Loading
Loading
Loading
+6 −3
Original line number Original line Diff line number Diff line
@@ -187,8 +187,10 @@ Check RDMA and NFS Setup
    To further test the InfiniBand software stack, use IPoIB (this
    To further test the InfiniBand software stack, use IPoIB (this
    assumes you have two IB hosts named host1 and host2):
    assumes you have two IB hosts named host1 and host2):


    host1$ ifconfig ib0 a.b.c.x
    host1$ ip link set dev ib0 up
    host2$ ifconfig ib0 a.b.c.y
    host1$ ip address add dev ib0 a.b.c.x
    host2$ ip link set dev ib0 up
    host2$ ip address add dev ib0 a.b.c.y
    host1$ ping a.b.c.y
    host1$ ping a.b.c.y
    host2$ ping a.b.c.x
    host2$ ping a.b.c.x


@@ -229,7 +231,8 @@ NFS/RDMA Setup


    $ modprobe ib_mthca
    $ modprobe ib_mthca
    $ modprobe ib_ipoib
    $ modprobe ib_ipoib
    $ ifconfig ib0 a.b.c.d
    $ ip li set dev ib0 up
    $ ip addr add dev ib0 a.b.c.d


    NOTE: use unique addresses for the client and server
    NOTE: use unique addresses for the client and server


+9 −0
Original line number Original line Diff line number Diff line
@@ -8803,6 +8803,15 @@ W: http://www.emulex.com
S:	Supported
S:	Supported
F:	drivers/net/ethernet/emulex/benet/
F:	drivers/net/ethernet/emulex/benet/


EMULEX ONECONNECT ROCE DRIVER
M:	Selvin Xavier <selvin.xavier@emulex.com>
M:	Devesh Sharma <devesh.sharma@emulex.com>
M:	Mitesh Ahuja <mitesh.ahuja@emulex.com>
L:	linux-rdma@vger.kernel.org
W:	http://www.emulex.com
S:	Supported
F:	drivers/infiniband/hw/ocrdma/

SFC NETWORK DRIVER
SFC NETWORK DRIVER
M:	Solarflare linux maintainers <linux-net-drivers@solarflare.com>
M:	Solarflare linux maintainers <linux-net-drivers@solarflare.com>
M:	Shradha Shah <sshah@solarflare.com>
M:	Shradha Shah <sshah@solarflare.com>
+5 −2
Original line number Original line Diff line number Diff line
@@ -99,12 +99,15 @@ struct ib_umem *ib_umem_get(struct ib_ucontext *context, unsigned long addr,
	if (dmasync)
	if (dmasync)
		dma_set_attr(DMA_ATTR_WRITE_BARRIER, &attrs);
		dma_set_attr(DMA_ATTR_WRITE_BARRIER, &attrs);


	if (!size)
		return ERR_PTR(-EINVAL);

	/*
	/*
	 * If the combination of the addr and size requested for this memory
	 * If the combination of the addr and size requested for this memory
	 * region causes an integer overflow, return error.
	 * region causes an integer overflow, return error.
	 */
	 */
	if ((PAGE_ALIGN(addr + size) <= size) ||
	if (((addr + size) < addr) ||
	    (PAGE_ALIGN(addr + size) <= addr))
	    PAGE_ALIGN(addr + size) < (addr + size))
		return ERR_PTR(-EINVAL);
		return ERR_PTR(-EINVAL);


	if (!can_do_mlock())
	if (!can_do_mlock())
+11 −11
Original line number Original line Diff line number Diff line
@@ -246,6 +246,17 @@ static int ib_uverbs_cleanup_ucontext(struct ib_uverbs_file *file,
		kfree(uqp);
		kfree(uqp);
	}
	}


	list_for_each_entry_safe(uobj, tmp, &context->srq_list, list) {
		struct ib_srq *srq = uobj->object;
		struct ib_uevent_object *uevent =
			container_of(uobj, struct ib_uevent_object, uobject);

		idr_remove_uobj(&ib_uverbs_srq_idr, uobj);
		ib_destroy_srq(srq);
		ib_uverbs_release_uevent(file, uevent);
		kfree(uevent);
	}

	list_for_each_entry_safe(uobj, tmp, &context->cq_list, list) {
	list_for_each_entry_safe(uobj, tmp, &context->cq_list, list) {
		struct ib_cq *cq = uobj->object;
		struct ib_cq *cq = uobj->object;
		struct ib_uverbs_event_file *ev_file = cq->cq_context;
		struct ib_uverbs_event_file *ev_file = cq->cq_context;
@@ -258,17 +269,6 @@ static int ib_uverbs_cleanup_ucontext(struct ib_uverbs_file *file,
		kfree(ucq);
		kfree(ucq);
	}
	}


	list_for_each_entry_safe(uobj, tmp, &context->srq_list, list) {
		struct ib_srq *srq = uobj->object;
		struct ib_uevent_object *uevent =
			container_of(uobj, struct ib_uevent_object, uobject);

		idr_remove_uobj(&ib_uverbs_srq_idr, uobj);
		ib_destroy_srq(srq);
		ib_uverbs_release_uevent(file, uevent);
		kfree(uevent);
	}

	list_for_each_entry_safe(uobj, tmp, &context->mr_list, list) {
	list_for_each_entry_safe(uobj, tmp, &context->mr_list, list) {
		struct ib_mr *mr = uobj->object;
		struct ib_mr *mr = uobj->object;


+335 −122

File changed.

Preview size limit exceeded, changes collapsed.

Loading