OSDN Git Service

RDMA/cm: Remove the cm_free_id() wrapper function
authorJason Gunthorpe <jgg@mellanox.com>
Wed, 6 May 2020 07:46:59 +0000 (10:46 +0300)
committerJason Gunthorpe <jgg@mellanox.com>
Wed, 13 May 2020 00:32:54 +0000 (21:32 -0300)
Just call xa_erase directly during cm_destroy_id()

Link: https://lore.kernel.org/r/20200506074701.9775-9-leon@kernel.org
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/core/cm.c

index 4f77ca2..320fe89 100644 (file)
@@ -580,11 +580,6 @@ static u32 cm_local_id(__be32 local_id)
        return (__force u32) (local_id ^ cm.random_id_operand);
 }
 
-static void cm_free_id(__be32 local_id)
-{
-       xa_erase_irq(&cm.local_id_table, cm_local_id(local_id));
-}
-
 static struct cm_id_private *cm_acquire_id(__be32 local_id, __be32 remote_id)
 {
        struct cm_id_private *cm_id_priv;
@@ -1136,7 +1131,7 @@ retest:
        case IB_CM_TIMEWAIT:
                /*
                 * The cm_acquire_id in cm_timewait_handler will stop working
-                * once we do cm_free_id() below, so just move to idle here for
+                * once we do xa_erase below, so just move to idle here for
                 * consistency.
                 */
                cm_id->state = IB_CM_IDLE;
@@ -1166,7 +1161,7 @@ retest:
        spin_unlock(&cm.lock);
        spin_unlock_irq(&cm_id_priv->lock);
 
-       cm_free_id(cm_id->local_id);
+       xa_erase_irq(&cm.local_id_table, cm_local_id(cm_id->local_id));
        cm_deref_id(cm_id_priv);
        wait_for_completion(&cm_id_priv->comp);
        while ((work = cm_dequeue_work(cm_id_priv)) != NULL)