diff mbox series

drm/i915/stolen: shuffle around init_memory_region

Message ID 20210507095948.384230-1-matthew.auld@intel.com (mailing list archive)
State New, archived
Headers show
Series drm/i915/stolen: shuffle around init_memory_region | expand

Commit Message

Matthew Auld May 7, 2021, 9:59 a.m. UTC
We generally want to first call i915_gem_object_init_memory_region()
before calling into get_pages(), since this sets up various bits of
state which might be needed there. Currently for stolen this doesn't
matter much, but it might in the future, and at the very least this
makes things consistent with the other backends.

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
---
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Tvrtko Ursulin May 10, 2021, 9:17 a.m. UTC | #1
On 07/05/2021 10:59, Matthew Auld wrote:
> We generally want to first call i915_gem_object_init_memory_region()
> before calling into get_pages(), since this sets up various bits of
> state which might be needed there. Currently for stolen this doesn't
> matter much, but it might in the future, and at the very least this
> makes things consistent with the other backends.
> 
> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> ---
>   drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 6 ++++--
>   1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
> index 293f640faa0a..b5553fc3ac4d 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
> @@ -657,9 +657,11 @@ static int __i915_gem_object_create_stolen(struct intel_memory_region *mem,
>   	if (WARN_ON(!i915_gem_object_trylock(obj)))
>   		return -EBUSY;
>   
> +	i915_gem_object_init_memory_region(obj, mem);
> +
>   	err = i915_gem_object_pin_pages(obj);
> -	if (!err)
> -		i915_gem_object_init_memory_region(obj, mem);
> +	if (err)
> +		i915_gem_object_release_memory_region(obj);
>   	i915_gem_object_unlock(obj);
>   
>   	return err;
> 

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Regards,

Tvrtko
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
index 293f640faa0a..b5553fc3ac4d 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
@@ -657,9 +657,11 @@  static int __i915_gem_object_create_stolen(struct intel_memory_region *mem,
 	if (WARN_ON(!i915_gem_object_trylock(obj)))
 		return -EBUSY;
 
+	i915_gem_object_init_memory_region(obj, mem);
+
 	err = i915_gem_object_pin_pages(obj);
-	if (!err)
-		i915_gem_object_init_memory_region(obj, mem);
+	if (err)
+		i915_gem_object_release_memory_region(obj);
 	i915_gem_object_unlock(obj);
 
 	return err;