diff mbox series

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

Message ID 20240605145117.397751-2-bvanassche@acm.org (mailing list archive)
State Accepted
Headers show
Series iWARP Connection Manager patches | expand

Commit Message

Bart Van Assche June 5, 2024, 2:50 p.m. UTC
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(-)

Comments

Zhu Yanjun June 6, 2024, 8:29 p.m. UTC | #1
在 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;
diff mbox series

Patch

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);
 	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;