[PATCH v2 1/2] drm/xe/client: remove bogus rcu list usage

Nirmoy Das nirmoy.das at linux.intel.com
Mon Mar 18 09:45:16 UTC 2024


On 3/18/2024 10:34 AM, Matthew Auld wrote:
> We use plain spinlock to protect readers and writers, so there is no
> actual RCU here. Rather use the more appropriate non-rcu list based API.
>
> Signed-off-by: Matthew Auld <matthew.auld at intel.com>
> Cc: Nirmoy Das <nirmoy.das at intel.com>
Reviewed-by: Nirmoy Das <nirmoy.das at intel.com>
> ---
>   drivers/gpu/drm/xe/xe_drm_client.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_drm_client.c b/drivers/gpu/drm/xe/xe_drm_client.c
> index 87c10bd7958b..59b01d838229 100644
> --- a/drivers/gpu/drm/xe/xe_drm_client.c
> +++ b/drivers/gpu/drm/xe/xe_drm_client.c
> @@ -78,7 +78,7 @@ void xe_drm_client_add_bo(struct xe_drm_client *client,
>   
>   	spin_lock(&client->bos_lock);
>   	bo->client = xe_drm_client_get(client);
> -	list_add_tail_rcu(&bo->client_link, &client->bos_list);
> +	list_add_tail(&bo->client_link, &client->bos_list);
>   	spin_unlock(&client->bos_lock);
>   }
>   
> @@ -96,7 +96,7 @@ void xe_drm_client_remove_bo(struct xe_bo *bo)
>   	struct xe_drm_client *client = bo->client;
>   
>   	spin_lock(&client->bos_lock);
> -	list_del_rcu(&bo->client_link);
> +	list_del(&bo->client_link);
>   	spin_unlock(&client->bos_lock);
>   
>   	xe_drm_client_put(client);
> @@ -154,7 +154,7 @@ static void show_meminfo(struct drm_printer *p, struct drm_file *file)
>   
>   	/* Internal objects. */
>   	spin_lock(&client->bos_lock);
> -	list_for_each_entry_rcu(bo, &client->bos_list, client_link) {
> +	list_for_each_entry(bo, &client->bos_list, client_link) {
>   		if (!bo || !kref_get_unless_zero(&bo->ttm.base.refcount))
>   			continue;
>   		bo_meminfo(bo, stats);


More information about the Intel-xe mailing list