]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
RDMA/iwcm: Simplify cm_event_handler()
authorBart Van Assche <bvanassche@acm.org>
Wed, 5 Jun 2024 14:50:59 +0000 (08:50 -0600)
committerLeon Romanovsky <leon@kernel.org>
Sun, 9 Jun 2024 08:15:27 +0000 (11:15 +0300)
queue_work() can test efficiently whether or not work is pending. Hence,
simplify cm_event_handler() by always calling queue_work() instead of only
if the list with pending work is empty.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Link: https://lore.kernel.org/r/20240605145117.397751-4-bvanassche@acm.org
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/core/iwcm.c

index ae9c12409f8a5ed11e4d4c862e3b372e70f3e7b3..3d66aec36899fa030f02803ffde6930f5f6d31d4 100644 (file)
@@ -1093,11 +1093,8 @@ static int cm_event_handler(struct iw_cm_id *cm_id,
        }
 
        refcount_inc(&cm_id_priv->refcount);
-       if (list_empty(&cm_id_priv->work_list)) {
-               list_add_tail(&work->list, &cm_id_priv->work_list);
-               queue_work(iwcm_wq, &work->work);
-       } else
-               list_add_tail(&work->list, &cm_id_priv->work_list);
+       list_add_tail(&work->list, &cm_id_priv->work_list);
+       queue_work(iwcm_wq, &work->work);
 out:
        spin_unlock_irqrestore(&cm_id_priv->lock, flags);
        return ret;