linux/drivers/infiniband/core
Yossi Etigin d2ca39f262 RDMA/cma: Create cm id even when IB port is down
When doing rdma_resolve_addr(), if the relevant IB port is down, the
function fails and the cm_id is not bound to the correct device.
Therefore, application does not have a device handle and cannot wait
for the port to become active.  The function fails because the
underlying IPoIB interface is not joined to the broadcast group and
therefore the SA does not have a multicast record to take a Q_Key
from.

The fix is to use lazy Q_Key resolution - cma_set_qkey() will set
id_priv->qkey if it was not set, and will be called just before the
Q_Key is really required.

Signed-off-by: Yossi Etigin <yosefe@voltaire.com>
Acked-by: Sean Hefty <sean.hefty@intel.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
2009-04-08 13:42:33 -07:00
..
addr.c RDMA/addr: Fix build breakage when IPv6 is disabled 2008-12-29 23:37:14 -08:00
agent.c IB/mad: agent_send_response() should be void 2007-08-03 10:45:17 -07:00
agent.h RDMA: Remove subversion $Id tags 2008-07-14 23:48:44 -07:00
cache.c RDMA: Remove subversion $Id tags 2008-07-14 23:48:44 -07:00
cm_msgs.h IB: Remove __constant_{endian} uses 2009-01-17 17:11:57 -08:00
cm.c IB: Remove __constant_{endian} uses 2009-01-17 17:11:57 -08:00
cma.c RDMA/cma: Create cm id even when IB port is down 2009-04-08 13:42:33 -07:00
core_priv.h RDMA: Remove subversion $Id tags 2008-07-14 23:48:44 -07:00
device.c IB: Remove sysfs files before unregistering device 2009-02-25 13:27:46 -08:00
fmr_pool.c RDMA: Remove subversion $Id tags 2008-07-14 23:48:44 -07:00
iwcm.c RDMA/iwcm: Remove IB_ACCESS_LOCAL_WRITE from remote QP attributes 2008-07-22 14:18:34 -07:00
iwcm.h
mad_priv.h RDMA: Remove subversion $Id tags 2008-07-14 23:48:44 -07:00
mad_rmpp.c IB: Remove __constant_{endian} uses 2009-01-17 17:11:57 -08:00
mad_rmpp.h RDMA: Remove subversion $Id tags 2008-07-14 23:48:44 -07:00
mad.c IB/mad: Fix ib_post_send_mad() returning 0 with no generate send comp 2009-03-03 14:22:17 -08:00
Makefile IB/uverbs: Export ib_umem_get()/ib_umem_release() to modules 2007-05-08 18:00:37 -07:00
multicast.c IB/multicast: Report errors on multicast groups if P_key changes 2008-01-25 14:15:29 -08:00
packer.c RDMA: Remove subversion $Id tags 2008-07-14 23:48:44 -07:00
sa_query.c IB/sa_query: Fix AH leak due to update_sm_ah() race 2009-03-03 14:30:01 -08:00
sa.h IB: Remove garbage non-ASCII characters from comments 2007-07-09 16:17:32 -07:00
smi.c IB/mad: Enhance SMI for switch support 2007-07-09 16:17:32 -07:00
smi.h IB/mad: Enable loopback of DR SMP responses from userspace 2008-01-25 14:15:25 -08:00
sysfs.c IB: Remove useless ibdev_is_alive() tests from sysfs code 2009-03-04 15:22:39 -08:00
ucm.c infiniband: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:39 -08:00
ucma.c RDMA/ucma: Test ucma_alloc_multicast() return against NULL, not with IS_ERR() 2008-10-10 12:00:19 -07:00
ud_header.c RDMA: Remove subversion $Id tags 2008-07-14 23:48:44 -07:00
umem.c RDMA: Remove subversion $Id tags 2008-07-14 23:48:44 -07:00
user_mad.c device create: infiniband: convert device_create_drvdata to device_create 2008-10-16 09:24:42 -07:00
uverbs_cmd.c RDMA/core: Add memory management extensions support 2008-07-14 23:48:45 -07:00
uverbs_main.c saner FASYNC handling on file close 2008-11-01 09:49:46 -07:00
uverbs_marshall.c RDMA/cma: Export rdma cm interface to userspace 2006-12-12 11:50:22 -08:00
uverbs.h RDMA: Remove subversion $Id tags 2008-07-14 23:48:44 -07:00
verbs.c IB/core: Reset to error QP state transition is not allowed 2008-07-14 23:48:46 -07:00