Commit 82b13dd5 authored by Thorsten Blum's avatar Thorsten Blum Committed by Tvrtko Ursulin
Browse files

drm/i915: Replace kmalloc() + copy_from_user() with memdup_user()



Replace kmalloc() followed by copy_from_user() with memdup_user() to
improve and simplify set_context_image(), and to silence the following
Coccinelle/coccicheck warning reported by memdup_user.cocci:

  WARNING opportunity for memdup_user

No functional changes intended.

Signed-off-by: default avatarThorsten Blum <thorsten.blum@linux.dev>
Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@igalia.com>
Reviewed-by: default avatarAndi Shyti <andi.shyti@linux.intel.com>
Signed-off-by: default avatarTvrtko Ursulin <tursulin@ursulin.net>
Link: https://lore.kernel.org/r/20250902081046.35463-2-thorsten.blum@linux.dev
parent b7a855f4
Loading
Loading
Loading
Loading
+3 −9
Original line number Diff line number Diff line
@@ -2158,18 +2158,12 @@ static int set_context_image(struct i915_gem_context *ctx,
		goto out_ce;
	}

	state = kmalloc(ce->engine->context_size, GFP_KERNEL);
	if (!state) {
		ret = -ENOMEM;
	state = memdup_user(u64_to_user_ptr(user.image), ce->engine->context_size);
	if (IS_ERR(state)) {
		ret = PTR_ERR(state);
		goto out_ce;
	}

	if (copy_from_user(state, u64_to_user_ptr(user.image),
			   ce->engine->context_size)) {
		ret = -EFAULT;
		goto out_state;
	}

	shmem_state = shmem_create_from_data(ce->engine->name,
					     state, ce->engine->context_size);
	if (IS_ERR(shmem_state)) {