Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=45d9478da106c749203056f56e94d0e370dfac87
Commit:     45d9478da106c749203056f56e94d0e370dfac87
Parent:     b61d92d8ae6aa13b17d1c31e69d123879cec2ee2
Author:     Vladimir Sokolovsky <[EMAIL PROTECTED]>
AuthorDate: Fri Dec 7 20:32:03 2007 -0800
Committer:  Roland Dreier <[EMAIL PROTECTED]>
CommitDate: Fri Jan 25 14:15:31 2008 -0800

    RDMA/cma: Reenable device removal on passive side
    
    Enable conn_id remove on the passive side after connection
    establishment.  This corrects an issue where the IB driver can't be
    unloaded after running applications over RDS.  The 'dev_remove' counter
    does not reach 0 for established connections on the passive side.
    
    This problem is limited to device removal, and only occurs on the
    passive side if there are established connections.
    
    Signed-off-by: Vladimir Sokolovsky <[EMAIL PROTECTED]>
    Reviewed-by: Sean Hefty <[EMAIL PROTECTED]>
    Signed-off-by: Roland Dreier <[EMAIL PROTECTED]>
---
 drivers/infiniband/core/cma.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 5a80e74..312ec74 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -1122,8 +1122,10 @@ static int cma_req_handler(struct ib_cm_id *cm_id, 
struct ib_cm_event *ib_event)
        cm_id->cm_handler = cma_ib_handler;
 
        ret = conn_id->id.event_handler(&conn_id->id, &event);
-       if (!ret)
+       if (!ret) {
+               cma_enable_remove(conn_id);
                goto out;
+       }
 
        /* Destroy the CM ID by returning a non-zero value. */
        conn_id->cm_id.ib = NULL;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to