Re: [PATCH 1/5] RDMA/iwcm: Use list_first_entry() where appropriate

Zhu Yanjun
2024-06-06T20:29:09Z

在 2024/6/5 16:50, Bart Van Assche 写道:
> Improve source code readability by using list_first_entry() where appropriate.
>
> Signed-off-by: Bart Van Assche <bvanassche@acm.org>
> ---
> drivers/infiniband/core/iwcm.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/infiniband/core/iwcm.c b/drivers/infiniband/core/iwcm.c
> index 0301fcad4b48..90d8f3d66990 100644
> --- a/drivers/infiniband/core/iwcm.c
> +++ b/drivers/infiniband/core/iwcm.c
> @@ -143,8 +143,8 @@ static struct iwcm_work *get_work(struct iwcm_id_private *cm_id_priv)
>
> if (list_empty(&cm_id_priv->work_free_list))
> return NULL;
> - work = list_entry(cm_id_priv->work_free_list.next, struct iwcm_work,
> - free_list);
> + work = list_first_entry(&cm_id_priv->work_free_list, struct iwcm_work,
> + free_list);

The followings are the definitions of list_entry and list_first_entry.

#define list_entry(ptr, type, member) \

container_of(ptr, type, member)

#define list_first_entry(ptr, type, member) \
list_entry((ptr)->next, type, member)F

From the above, IMO, this commit is fine.

Thanks.

Reviewed-by: Zhu Yanjun <yanjun.zhu@linux.dev>

Zhu Yanjun

> list_del_init(&work->free_list);
> return work;
> }
> @@ -1023,8 +1023,8 @@ static void cm_work_handler(struct work_struct *_work)
> spin_lock_irqsave(&cm_id_priv->lock, flags);
> empty = list_empty(&cm_id_priv->work_list);
> while (!empty) {
> - work = list_entry(cm_id_priv->work_list.next,
> - struct iwcm_work, list);
> + work = list_first_entry(&cm_id_priv->work_list,
> + struct iwcm_work, list);
> list_del_init(&work->list);
> empty = list_empty(&cm_id_priv->work_list);
> levent = work->event;

--
Best Regards,
Yanjun.Zhu