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

Commit db392219 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband

* 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband: (65 commits)
  IB: Fix typo in kerneldoc for ib_set_client_data()
  IPoIB: Add some likely/unlikely annotations in hot path
  IPoIB: Remove unused include of vmalloc.h
  IPoIB: Rejoin all multicast groups after a port event
  IPoIB: Create MCGs with all attributes required by RFC
  IB/sa: fix ib_sa_selector names
  IB/iser: INFINIBAND_ISER depends on INET
  IB/mthca: Simplify calls to mthca_cq_clean()
  RDMA/cma: Document rdma_accept() error handling
  IB/mthca: Recover from catastrophic errors
  RDMA/cma: Document rdma_destroy_id() function
  IB/cm: Do not track remote QPN in timewait state
  IB/sa: Require SA registration
  IPoIB: Refactor completion handling
  IB/iser: Do not use FMR for a single dma entry sg
  IB/iser: fix some debug prints
  IB/iser: make FMR "page size" be 4K and not PAGE_SIZE
  IB/iser: Limit the max size of a scsi command
  IB/iser: fix a check of SG alignment for RDMA
  RDMA/cma: Protect against adding device during destruction
  ...
parents 3e2ab46d 9cd330d3
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -298,6 +298,14 @@ L: info-linux@geode.amd.com
W:	http://www.amd.com/us-en/ConnectivitySolutions/TechnicalResources/0,,50_2334_2452_11363,00.html
S:	Supported

AMSO1100 RNIC DRIVER
P:	Tom Tucker
M:	tom@opengridcomputing.com
P:	Steve Wise
M:	swise@opengridcomputing.com
L:	openib-general@openib.org
S:	Maintained

AOA (Apple Onboard Audio) ALSA DRIVER
P:	Johannes Berg
M:	johannes@sipsolutions.net
@@ -991,6 +999,14 @@ EFS FILESYSTEM
W:	http://aeschi.ch.eu.org/efs/
S:	Orphan

EHCA (IBM GX bus InfiniBand adapter) DRIVER:
P:	Hoang-Nam Nguyen
M:	hnguyen@de.ibm.com
P:	Christoph Raisch
M:	raisch@de.ibm.com
L:	openib-general@openib.org
S:	Supported

EMU10K1 SOUND DRIVER
P:	James Courtier-Dutton
M:	James@superbug.demon.co.uk
+3 −1
Original line number Diff line number Diff line
@@ -36,6 +36,8 @@ config INFINIBAND_ADDR_TRANS

source "drivers/infiniband/hw/mthca/Kconfig"
source "drivers/infiniband/hw/ipath/Kconfig"
source "drivers/infiniband/hw/ehca/Kconfig"
source "drivers/infiniband/hw/amso1100/Kconfig"

source "drivers/infiniband/ulp/ipoib/Kconfig"

+3 −1
Original line number Diff line number Diff line
obj-$(CONFIG_INFINIBAND)		+= core/
obj-$(CONFIG_INFINIBAND_MTHCA)		+= hw/mthca/
obj-$(CONFIG_IPATH_CORE)		+= hw/ipath/
obj-$(CONFIG_INFINIBAND_IPATH)		+= hw/ipath/
obj-$(CONFIG_INFINIBAND_EHCA)		+= hw/ehca/
obj-$(CONFIG_INFINIBAND_AMSO1100)	+= hw/amso1100/
obj-$(CONFIG_INFINIBAND_IPOIB)		+= ulp/ipoib/
obj-$(CONFIG_INFINIBAND_SRP)		+= ulp/srp/
obj-$(CONFIG_INFINIBAND_ISER)		+= ulp/iser/
+3 −1
Original line number Diff line number Diff line
infiniband-$(CONFIG_INFINIBAND_ADDR_TRANS)	:= ib_addr.o rdma_cm.o

obj-$(CONFIG_INFINIBAND) +=		ib_core.o ib_mad.o ib_sa.o \
					ib_cm.o $(infiniband-y)
					ib_cm.o iw_cm.o $(infiniband-y)
obj-$(CONFIG_INFINIBAND_USER_MAD) +=	ib_umad.o
obj-$(CONFIG_INFINIBAND_USER_ACCESS) +=	ib_uverbs.o ib_ucm.o

@@ -14,6 +14,8 @@ ib_sa-y := sa_query.o

ib_cm-y :=			cm.o

iw_cm-y :=			iwcm.o

rdma_cm-y :=			cma.o

ib_addr-y :=			addr.o
+13 −9
Original line number Diff line number Diff line
@@ -61,12 +61,15 @@ static LIST_HEAD(req_list);
static DECLARE_WORK(work, process_req, NULL);
static struct workqueue_struct *addr_wq;

static int copy_addr(struct rdma_dev_addr *dev_addr, struct net_device *dev,
		     unsigned char *dst_dev_addr)
int rdma_copy_addr(struct rdma_dev_addr *dev_addr, struct net_device *dev,
		     const unsigned char *dst_dev_addr)
{
	switch (dev->type) {
	case ARPHRD_INFINIBAND:
		dev_addr->dev_type = IB_NODE_CA;
		dev_addr->dev_type = RDMA_NODE_IB_CA;
		break;
	case ARPHRD_ETHER:
		dev_addr->dev_type = RDMA_NODE_RNIC;
		break;
	default:
		return -EADDRNOTAVAIL;
@@ -78,6 +81,7 @@ static int copy_addr(struct rdma_dev_addr *dev_addr, struct net_device *dev,
		memcpy(dev_addr->dst_dev_addr, dst_dev_addr, MAX_ADDR_LEN);
	return 0;
}
EXPORT_SYMBOL(rdma_copy_addr);

int rdma_translate_ip(struct sockaddr *addr, struct rdma_dev_addr *dev_addr)
{
@@ -89,7 +93,7 @@ int rdma_translate_ip(struct sockaddr *addr, struct rdma_dev_addr *dev_addr)
	if (!dev)
		return -EADDRNOTAVAIL;

	ret = copy_addr(dev_addr, dev, NULL);
	ret = rdma_copy_addr(dev_addr, dev, NULL);
	dev_put(dev);
	return ret;
}
@@ -161,7 +165,7 @@ static int addr_resolve_remote(struct sockaddr_in *src_in,

	/* If the device does ARP internally, return 'done' */
	if (rt->idev->dev->flags & IFF_NOARP) {
		copy_addr(addr, rt->idev->dev, NULL);
		rdma_copy_addr(addr, rt->idev->dev, NULL);
		goto put;
	}

@@ -181,7 +185,7 @@ static int addr_resolve_remote(struct sockaddr_in *src_in,
		src_in->sin_addr.s_addr = rt->rt_src;
	}

	ret = copy_addr(addr, neigh->dev, neigh->ha);
	ret = rdma_copy_addr(addr, neigh->dev, neigh->ha);
release:
	neigh_release(neigh);
put:
@@ -245,7 +249,7 @@ static int addr_resolve_local(struct sockaddr_in *src_in,
	if (ZERONET(src_ip)) {
		src_in->sin_family = dst_in->sin_family;
		src_in->sin_addr.s_addr = dst_ip;
		ret = copy_addr(addr, dev, dev->dev_addr);
		ret = rdma_copy_addr(addr, dev, dev->dev_addr);
	} else if (LOOPBACK(src_ip)) {
		ret = rdma_translate_ip((struct sockaddr *)dst_in, addr);
		if (!ret)
Loading