From: Leon Romanovsky Date: Tue, 29 May 2018 11:56:16 +0000 (+0300) Subject: RDMA/cm: Abort loop in case of CM dequeue X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=2f5059a7af144426086555b62dd268d8060fe6d3;p=openwrt%2Fstaging%2Fblogic.git RDMA/cm: Abort loop in case of CM dequeue In case CM work list is empty, the work pointer will be NULL, so instead of kernel crash it is better to abort processing of works. Signed-off-by: Leon Romanovsky Signed-off-by: Doug Ledford --- diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index 7df4c7173607..724f123c037f 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -1707,7 +1707,9 @@ static void cm_process_work(struct cm_id_private *cm_id_priv, spin_lock_irq(&cm_id_priv->lock); work = cm_dequeue_work(cm_id_priv); spin_unlock_irq(&cm_id_priv->lock); - BUG_ON(!work); + if (!work) + return; + ret = cm_id_priv->id.cm_handler(&cm_id_priv->id, &work->cm_event); cm_free_work(work);