RDMA/cma: Bind to a specific address family
authorSean Hefty <sean.hefty@intel.com>
Thu, 14 Jun 2012 20:31:39 +0000 (20:31 +0000)
committerRoland Dreier <roland@purestorage.com>
Mon, 9 Jul 2012 01:02:23 +0000 (18:02 -0700)
commit5b0ec991c0576c54db75803fbcb0ef5bebfa0828
tree7d1abd89f59d77b596056df3c2c2bb97a113c301
parent6887a4131da3adaab011613776d865f4bcfb5678
RDMA/cma: Bind to a specific address family

The RDMA CM uses a single port space for all associated (tcp, udp,
etc.) port bindings, regardless of the address family that the user
binds to.  The result is that if a user binds to AF_INET, but does not
specify an IP address, the bind will occur for AF_INET6.  This causes
an attempt to bind to the same port using AF_INET6 to fail, and
connection requests to AF_INET6 will match with the AF_INET listener.
Align the behavior with sockets and restrict the bind to AF_INET only.

If a user binds to AF_INET6, we bind the port to AF_INET6 and
AF_INET depending on the value of bindv6only.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/core/cma.c