Re: [PATCH] Initialize the obj flags for shmem objects

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03/02/2023 11:57, Aravind Iddamsetty wrote:
Obj flags for shmem objects is not being set correctly.

Cc: Matthew Auld <matthew.auld@xxxxxxxxx>
Signed-off-by: Aravind Iddamsetty <aravind.iddamsetty@xxxxxxxxx>

Subject should have "drm/i915:" prefix.

This is also a bug fix due to not setting BO_ALLOC_USER (the other flags don't seem to matter for shmem), which is quite important, so we need to figure out the "Fixes" tag. Maybe mention in the commit message that this fixes setting ALLOC_USER which is needed even for shmem.

Looking at the git history, ALLOC_USER looks to be first introduced in 213d50927763 ("drm/i915/ttm: Introduce a TTM i915 gem object backend"), but the users of ALLOC_USER at this stage are only interesting for the ttm backend, and that already passes the flags due to using its own object_init() vfunc for all normal object types.

So the first real user impacted by this bug appears to be in: 13d29c823738 ("drm/i915/ehl: unconditionally flush the pages on acquire").

So I think needs:

Fixes: 13d29c823738 ("drm/i915/ehl: unconditionally flush the pages on acquire")
Cc: <stable@xxxxxxxxxxxxxxx> # v5.15+

With that,
Reviewed-by: Matthew Auld <matthew.auld@xxxxxxxxx>


---
  drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
index 114443096841..37d1efcd3ca6 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
@@ -596,7 +596,7 @@ static int shmem_object_init(struct intel_memory_region *mem,
  	mapping_set_gfp_mask(mapping, mask);
  	GEM_BUG_ON(!(mapping_gfp_mask(mapping) & __GFP_RECLAIM));
- i915_gem_object_init(obj, &i915_gem_shmem_ops, &lock_class, 0);
+	i915_gem_object_init(obj, &i915_gem_shmem_ops, &lock_class, flags);
  	obj->mem_flags |= I915_BO_FLAG_STRUCT_PAGE;
  	obj->write_domain = I915_GEM_DOMAIN_CPU;
  	obj->read_domains = I915_GEM_DOMAIN_CPU;



[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux