Re: [PATCH] drm/i915: Do not dereference NULL bo->resource

2022-09-20 Thread Das, Nirmoy



On 9/19/2022 5:29 PM, Gupta, Anshuman wrote:



-Original Message-
From: Das, Nirmoy 
Sent: Monday, September 19, 2022 8:33 PM
To: intel-...@lists.freedesktop.org
Cc: dri-devel@lists.freedesktop.org; Auld, Matthew
; Gupta, Anshuman 
Subject: [PATCH] drm/i915: Do not dereference NULL bo->resource

bo->resource could be NULL hence add a NULL check for resource before
bo->dereferencing it.

Will bo->resource will be NULL only in case of object is smem or it can be NULL 
even in lmem case as well ?



It can happen with lmem too. I think we should just use 
i915_gem_object_is_lmem() instead of i915_ttm_cpu_maps_iomem here.



Nirmoy


Thanks,
Anshuman Gupta.

References: https://gitlab.freedesktop.org/drm/intel/-/issues/6850
Fixes: ad74457a6b5a96 ("drm/i915/dgfx: Release mmap on rpm suspend")
Signed-off-by: Nirmoy Das 
---
  drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
index 0544b0a4a43a..8608801cd9ab 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
@@ -513,7 +513,7 @@ static void i915_ttm_delete_mem_notify(struct
ttm_buffer_object *bo)

if (likely(obj)) {
/* ttm_bo_release() already has dma_resv_lock */
-   if (i915_ttm_cpu_maps_iomem(bo->resource))
+   if (bo->resource && i915_ttm_cpu_maps_iomem(bo-

resource))

wakeref = intel_runtime_pm_get(&to_i915(obj-

base.dev)->runtime_pm);

__i915_gem_object_pages_fini(obj);
--
2.37.3


RE: [PATCH] drm/i915: Do not dereference NULL bo->resource

2022-09-19 Thread Gupta, Anshuman



> -Original Message-
> From: Das, Nirmoy 
> Sent: Monday, September 19, 2022 8:33 PM
> To: intel-...@lists.freedesktop.org
> Cc: dri-devel@lists.freedesktop.org; Auld, Matthew
> ; Gupta, Anshuman 
> Subject: [PATCH] drm/i915: Do not dereference NULL bo->resource
> 
> bo->resource could be NULL hence add a NULL check for resource before
> bo->dereferencing it.
Will bo->resource will be NULL only in case of object is smem or it can be NULL 
even in lmem case as well ?
Thanks,
Anshuman Gupta. 
> 
> References: https://gitlab.freedesktop.org/drm/intel/-/issues/6850
> Fixes: ad74457a6b5a96 ("drm/i915/dgfx: Release mmap on rpm suspend")
> Signed-off-by: Nirmoy Das 
> ---
>  drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> index 0544b0a4a43a..8608801cd9ab 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
> @@ -513,7 +513,7 @@ static void i915_ttm_delete_mem_notify(struct
> ttm_buffer_object *bo)
> 
>   if (likely(obj)) {
>   /* ttm_bo_release() already has dma_resv_lock */
> - if (i915_ttm_cpu_maps_iomem(bo->resource))
> + if (bo->resource && i915_ttm_cpu_maps_iomem(bo-
> >resource))
>   wakeref = intel_runtime_pm_get(&to_i915(obj-
> >base.dev)->runtime_pm);
> 
>   __i915_gem_object_pages_fini(obj);
> --
> 2.37.3



[PATCH] drm/i915: Do not dereference NULL bo->resource

2022-09-19 Thread Nirmoy Das
bo->resource could be NULL hence add a NULL check for
bo->resource before dereferencing it.

References: https://gitlab.freedesktop.org/drm/intel/-/issues/6850
Fixes: ad74457a6b5a96 ("drm/i915/dgfx: Release mmap on rpm suspend")
Signed-off-by: Nirmoy Das 
---
 drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c 
b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
index 0544b0a4a43a..8608801cd9ab 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c
@@ -513,7 +513,7 @@ static void i915_ttm_delete_mem_notify(struct 
ttm_buffer_object *bo)
 
if (likely(obj)) {
/* ttm_bo_release() already has dma_resv_lock */
-   if (i915_ttm_cpu_maps_iomem(bo->resource))
+   if (bo->resource && i915_ttm_cpu_maps_iomem(bo->resource))
wakeref = 
intel_runtime_pm_get(&to_i915(obj->base.dev)->runtime_pm);
 
__i915_gem_object_pages_fini(obj);
-- 
2.37.3