summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorMustafa Ismail <mustafa.ismail@intel.com>2016-07-28 23:02:26 +0300
committerDoug Ledford <dledford@redhat.com>2016-08-02 20:14:27 +0300
commitcea05eadded0d4eb59f7be6e1f1560eb6bfde2bf (patch)
tree01d817456c9f1a54d33073da59b9343973e0d3ea /drivers
parent3b8fb4b86cf1fb6a3617dc8394f605834fe73f5c (diff)
downloadlinux-cea05eadded0d4eb59f7be6e1f1560eb6bfde2bf.tar.xz
IB/core: Add flow control to the portmapper netlink calls
During connection establishment with a large number of connections, it is possible that the connection requests might fail. Adding flow control prevents this failure. Change ibnl_unicast to use blocking to enable flow control. Signed-off-by: Mustafa Ismail <mustafa.ismail@intel.com> Signed-off-by: Faisal Latif <faisal.latif@intel.com> Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/infiniband/core/netlink.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/infiniband/core/netlink.c b/drivers/infiniband/core/netlink.c
index 9b8c20c8209b..10469b0088b5 100644
--- a/drivers/infiniband/core/netlink.c
+++ b/drivers/infiniband/core/netlink.c
@@ -229,7 +229,10 @@ static void ibnl_rcv(struct sk_buff *skb)
int ibnl_unicast(struct sk_buff *skb, struct nlmsghdr *nlh,
__u32 pid)
{
- return nlmsg_unicast(nls, skb, pid);
+ int err;
+
+ err = netlink_unicast(nls, skb, pid, 0);
+ return (err < 0) ? err : 0;
}
EXPORT_SYMBOL(ibnl_unicast);
@@ -252,6 +255,7 @@ int __init ibnl_init(void)
return -ENOMEM;
}
+ nls->sk_sndtimeo = 10 * HZ;
return 0;
}