From: Mukesh Kacker Date: Fri, 10 Jul 2015 00:48:46 +0000 (-0700) Subject: Merge branch 'topic/uek-4.1/ofed.rds-p2' into topic/uek-4.1/ofed X-Git-Tag: v4.1.12-92~319^2^2 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=02221f6edac64cf78ef517be1374ac2e704d217c;p=users%2Fjedix%2Flinux-maple.git Merge branch 'topic/uek-4.1/ofed.rds-p2' into topic/uek-4.1/ofed * topic/uek-4.1/ofed.rds-p2: (74 commits) Add getsockopt support for SO_RDS_TRANSPORT Add setsockopt support for SO_RDS_TRANSPORT Declare SO_RDS_TRANSPORT and RDS_TRANS_* constants in uapi/linux/rds.h RDS-TCP: only initiate reconnect attempt on outgoing TCP socket. RDS-TCP: Always create a new rds_sock for an incoming connection. rds: directly include header for vmalloc/vfree in ib_recv.c rds: return EMSGSIZE for oversize requests before processing/queueing net: rds: use correct size for max unacked packets and bytes RDS/IP: RDS takes 10 seconds to plumb the second IP back RDS/IB: Tune failover-on-reboot scheduling RDS: mark netdev UP for intfs added post module load RDS: Enable use of user named pkey devices rds: fix list corruption and tx hang when netfilter is used RDS: move more queing for loopback connections to separate queue RDS: add module parameter to allow module unload or not rds: fix NULL pointer dereference panic during rds module unload RDS:active bonding: disable failover across HCAs(failover groups) RDS/IB: active bonding - failover down interfaces on reboot. RDS/IB: Remove dangling rcu_read_unlock() and other cleanups rds: new extension header: rdma bytes ... Conflicts: drivers/infiniband/ulp/ipoib/ipoib_main.c --- 02221f6edac64cf78ef517be1374ac2e704d217c diff --cc drivers/infiniband/core/cma.c index 533a9c391885,f1f2eb60ac44..73cade32a883 --- a/drivers/infiniband/core/cma.c +++ b/drivers/infiniband/core/cma.c @@@ -1078,9 -1101,8 +1078,9 @@@ static int cma_rep_recv(struct rdma_id_ return 0; reject: cma_modify_qp_err(id_priv); + cma_dbg(id_priv, "sending REJ\n"); ib_send_cm_rej(id_priv->cm_id.ib, IB_CM_REJ_CONSUMER_DEFINED, - NULL, 0, NULL, 0); + NULL, 0, &ret, sizeof(int)); return ret; } diff --cc drivers/infiniband/ulp/ipoib/ipoib_main.c index e5b627fe9e43,798e4922e575..b5ce55b58b96 --- a/drivers/infiniband/ulp/ipoib/ipoib_main.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c @@@ -1967,26 -1752,8 +1971,28 @@@ static void ipoib_remove_one(struct ib_ kfree(dev_list); } +int +ipoib_get_netdev_pkey(struct net_device *dev, u16 *pkey) +{ + struct ipoib_dev_priv *priv; + + if (dev->type != ARPHRD_INFINIBAND) + return -EINVAL; + + /* only for ipoib net devices! */ + if (dev->netdev_ops != &ipoib_netdev_ops) + return -EINVAL; + + priv = netdev_priv(dev); + + *pkey = priv->pkey; + + return 0; +} +EXPORT_SYMBOL(ipoib_get_netdev_pkey); + + #define MODULE_NAME "ib_ipoib" + static int __init ipoib_init_module(void) { int ret;