In ibp cm server change list modification patterns to be atomic. Before adding and removing
from a list would go something like:
1) Find item in list while holding reader lock
2) …
3) Search again for found item while holding writer lock, remove it
Multiple threads could end up holding pointers to items in the list and by the time they get to
deleting it, it may or may not exist in list.
Also: the ibp cm event handler for cm events should always return 0, if it returns non-zero ib_cm
will attempt to remove the cm_id, which is not correct (and causes ib_cm worker thread to dump
stack and hang).
Finally: trivial change an ibscif printk log level to KERN_INFO vs ALERT.
Signed-off-by: Patrick McCormick <patrick.m.mccormick@intel.com> Signed-off-by: Vladimir Sokolovsky <vlad@mellanox.com>