drm/xe/client: remove bogus rcu list usage

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@intel.com>
Cc: Nirmoy Das <nirmoy.das@intel.com>
Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240318093431.21075-3-matthew.auld@intel.com
This commit is contained in:
Matthew Auld 2024-03-18 09:34:32 +00:00
parent df26ac9464
commit 10ed10c279

View File

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