Version: 1
-Previous: 0c979d1495b3cc56c23ab4f750cdf09736060ff8
-Head: 5e21e5f9c873f24435ad48bd72c3bd82c23da2f1
+Previous: f13e65efdb48519d16e101d1bf7b3d5a52baf28f
+Head: ce4fc72fec8aead82fe22959e7cc758923909b52
Applied:
kern-bug: 5e21e5f9c873f24435ad48bd72c3bd82c23da2f1
+ refresh-temp: ce4fc72fec8aead82fe22959e7cc758923909b52
Unapplied:
af-ib-conn: cf7b9e73d471477d4c7dff2592e5b0d3a7dea8ae
addrtype: 23a84fed89ba3f6b0eb63e5f8b37c0df504d0d3e
--- /dev/null
+Bottom: 1ab9fd04718504b5cc665dea14e9fa9df0298d6c
+Top: 3a5e1771417c34940355c5d56136e2c805bc2e4f
+Author: Sean Hefty <sean.hefty@intel.com>
+Date: 2013-02-01 23:08:28 -0800
+
+Refresh of kern-bug
+
+---
+
+diff --git a/src/cma.c b/src/cma.c
+index 06bea44..7a9f6dc 100755
+--- a/src/cma.c
++++ b/src/cma.c
+@@ -125,6 +125,7 @@ static pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
+ static int abi_ver = RDMA_USER_CM_MAX_ABI_VERSION;
+ int af_ib_support;
+ static struct index_map ucma_idm;
++static fastlock_t idm_lock;
+
+ static void ucma_cleanup(void)
+ {
+@@ -216,6 +217,7 @@ int ucma_init(void)
+ return 0;
+ }
+
++ fastlock_init(&idm_lock);
+ ret = check_abi_version();
+ if (ret)
+ goto err1;
+@@ -380,12 +382,9 @@ static void ucma_put_device(struct cma_device *cma_dev)
+
+ static void ucma_insert_id(struct cma_id_private *id_priv)
+ {
+- if (id_priv->handle > IDX_MAX_INDEX)
+- return;
+-
+- pthread_mutex_lock(&mut);
++ fastlock_acquire(&idm_lock);
+ idm_set(&ucma_idm, id_priv->handle, id_priv);
+- pthread_mutex_unlock(&mut);
++ fastlock_release(&idm_lock);
+ }
+
+ static void ucma_remove_id(struct cma_id_private *id_priv)
+@@ -1954,7 +1953,6 @@ retry:
+ if (resp.uid) {
+ evt->id_priv = (void *) (uintptr_t) resp.uid;
+ } else {
+-printf("no uid event %s\n", rdma_event_str(resp.event));
+ evt->id_priv = ucma_lookup_id(resp.id);
+ if (!evt->id_priv) {
+ fprintf(stderr, PFX "Warning: discarding unmatched "