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

Commit c5524413 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull InfiniBand/RDMA changes from Roland Dreier:
 - AF_IB (native IB addressing) for CMA from Sean Hefty
 - new mlx5 driver for Mellanox Connect-IB adapters (including post
   merge request fixes)
 - SRP fixes from Bart Van Assche (including fix to first merge request)
 - qib HW driver updates
 - resurrection of ocrdma HW driver development
 - uverbs conversion to create fds with O_CLOEXEC set
 - other small changes and fixes

* tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (66 commits)
  mlx5: Return -EFAULT instead of -EPERM
  IB/qib: Log all SDMA errors unconditionally
  IB/qib: Fix module-level leak
  mlx5_core: Adjust hca_cap.uar_page_sz to conform to Connect-IB spec
  IB/srp: Let srp_abort() return FAST_IO_FAIL if TL offline
  IB/uverbs: Use get_unused_fd_flags(O_CLOEXEC) instead of get_unused_fd()
  mlx5_core: Fixes for sparse warnings
  IB/mlx5: Make profile[] static in main.c
  mlx5: Fix parameter type of health_handler_t
  mlx5: Add driver for Mellanox Connect-IB adapters
  IB/core: Add reserved values to enums for low-level driver use
  IB/srp: Bump driver version and release date
  IB/srp: Make HCA completion vector configurable
  IB/srp: Maintain a single connection per I_T nexus
  IB/srp: Fail I/O fast if target offline
  IB/srp: Skip host settle delay
  IB/srp: Avoid skipping srp_reset_host() after a transport error
  IB/srp: Fix remove_one crash due to resource exhaustion
  IB/qib: New transmitter tunning settings for Dell 1.1 backplane
  IB/core: Fix error return code in add_port()
  ...
parents 85865511 e04abfa2
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -54,6 +54,13 @@ Description: Interface for making ib_srp connect to a new target.
		  ib_srp. Specifying a value that exceeds cmd_sg_entries is
		  only safe with partial memory descriptor list support enabled
		  (allow_ext_sg=1).
		* comp_vector, a number in the range 0..n-1 specifying the
		  MSI-X completion vector. Some HCA's allocate multiple (n)
		  MSI-X vectors per HCA port. If the IRQ affinity masks of
		  these interrupts have been configured such that each MSI-X
		  interrupt is handled by a different CPU then the comp_vector
		  parameter can be used to spread the SRP completion workload
		  over multiple CPU's.

What:		/sys/class/infiniband_srp/srp-<hca>-<port_number>/ibdev
Date:		January 2, 2006
+22 −0
Original line number Diff line number Diff line
@@ -5430,6 +5430,28 @@ W: http://linuxtv.org
S:	Odd Fixes
F:	drivers/media/radio/radio-miropcm20*

Mellanox MLX5 core VPI driver
M:	Eli Cohen <eli@mellanox.com>
L:	netdev@vger.kernel.org
L:	linux-rdma@vger.kernel.org
W:	http://www.mellanox.com
Q:	http://patchwork.ozlabs.org/project/netdev/list/
Q:	http://patchwork.kernel.org/project/linux-rdma/list/
T:	git://openfabrics.org/~eli/connect-ib.git
S:	Supported
F:	drivers/net/ethernet/mellanox/mlx5/core/
F:	include/linux/mlx5/

Mellanox MLX5 IB driver
M:      Eli Cohen <eli@mellanox.com>
L:      linux-rdma@vger.kernel.org
W:      http://www.mellanox.com
Q:      http://patchwork.kernel.org/project/linux-rdma/list/
T:      git://openfabrics.org/~eli/connect-ib.git
S:      Supported
F:      include/linux/mlx5/
F:      drivers/infiniband/hw/mlx5/

MODULE SUPPORT
M:	Rusty Russell <rusty@rustcorp.com.au>
S:	Maintained
+1 −0
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ source "drivers/infiniband/hw/amso1100/Kconfig"
source "drivers/infiniband/hw/cxgb3/Kconfig"
source "drivers/infiniband/hw/cxgb4/Kconfig"
source "drivers/infiniband/hw/mlx4/Kconfig"
source "drivers/infiniband/hw/mlx5/Kconfig"
source "drivers/infiniband/hw/nes/Kconfig"
source "drivers/infiniband/hw/ocrdma/Kconfig"

+1 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ obj-$(CONFIG_INFINIBAND_AMSO1100) += hw/amso1100/
obj-$(CONFIG_INFINIBAND_CXGB3)		+= hw/cxgb3/
obj-$(CONFIG_INFINIBAND_CXGB4)		+= hw/cxgb4/
obj-$(CONFIG_MLX4_INFINIBAND)		+= hw/mlx4/
obj-$(CONFIG_MLX5_INFINIBAND)		+= hw/mlx5/
obj-$(CONFIG_INFINIBAND_NES)		+= hw/nes/
obj-$(CONFIG_INFINIBAND_OCRDMA)		+= hw/ocrdma/
obj-$(CONFIG_INFINIBAND_IPOIB)		+= ulp/ipoib/
+18 −2
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@
#include <net/addrconf.h>
#include <net/ip6_route.h>
#include <rdma/ib_addr.h>
#include <rdma/ib.h>

MODULE_AUTHOR("Sean Hefty");
MODULE_DESCRIPTION("IB Address Translation");
@@ -70,6 +71,21 @@ static LIST_HEAD(req_list);
static DECLARE_DELAYED_WORK(work, process_req);
static struct workqueue_struct *addr_wq;

int rdma_addr_size(struct sockaddr *addr)
{
	switch (addr->sa_family) {
	case AF_INET:
		return sizeof(struct sockaddr_in);
	case AF_INET6:
		return sizeof(struct sockaddr_in6);
	case AF_IB:
		return sizeof(struct sockaddr_ib);
	default:
		return 0;
	}
}
EXPORT_SYMBOL(rdma_addr_size);

void rdma_addr_register_client(struct rdma_addr_client *client)
{
	atomic_set(&client->refcount, 1);
@@ -369,12 +385,12 @@ int rdma_resolve_ip(struct rdma_addr_client *client,
			goto err;
		}

		memcpy(src_in, src_addr, ip_addr_size(src_addr));
		memcpy(src_in, src_addr, rdma_addr_size(src_addr));
	} else {
		src_in->sa_family = dst_addr->sa_family;
	}

	memcpy(dst_in, dst_addr, ip_addr_size(dst_addr));
	memcpy(dst_in, dst_addr, rdma_addr_size(dst_addr));
	req->addr = addr;
	req->callback = callback;
	req->context = context;
Loading