linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v7 0/2] Panfrost driver fixes
@ 2022-06-30 20:05 Dmitry Osipenko
  2022-06-30 20:06 ` [PATCH v7 1/2] drm/panfrost: Put mapping instead of shmem obj on panfrost_mmu_map_fault_addr() error Dmitry Osipenko
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Dmitry Osipenko @ 2022-06-30 20:05 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Thomas Zimmermann, Rob Herring,
	Steven Price, Alyssa Rosenzweig, Tomeu Vizoso, Rob Clark,
	Robin Murphy
  Cc: dri-devel, linux-kernel, Dmitry Osipenko, kernel

This series fixes two minor bugs in the Panfrost driver.

Changelog:

v7: - Factored out Panfrost fixes from [1] since I'll be working on
      the dma-buf locking in a separate patchset now.

[1] https://lore.kernel.org/all/20220526235040.678984-1-dmitry.osipenko@collabora.com/

Dmitry Osipenko (2):
  drm/panfrost: Put mapping instead of shmem obj on
    panfrost_mmu_map_fault_addr() error
  drm/panfrost: Fix shrinker list corruption by madvise IOCTL

 drivers/gpu/drm/panfrost/panfrost_drv.c | 4 ++--
 drivers/gpu/drm/panfrost/panfrost_mmu.c | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

-- 
2.36.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v7 1/2] drm/panfrost: Put mapping instead of shmem obj on panfrost_mmu_map_fault_addr() error
  2022-06-30 20:05 [PATCH v7 0/2] Panfrost driver fixes Dmitry Osipenko
@ 2022-06-30 20:06 ` Dmitry Osipenko
  2022-06-30 20:06 ` [PATCH v7 2/2] drm/panfrost: Fix shrinker list corruption by madvise IOCTL Dmitry Osipenko
  2022-07-04 15:47 ` [PATCH v7 0/2] Panfrost driver fixes Steven Price
  2 siblings, 0 replies; 4+ messages in thread
From: Dmitry Osipenko @ 2022-06-30 20:06 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Thomas Zimmermann, Rob Herring,
	Steven Price, Alyssa Rosenzweig, Tomeu Vizoso, Rob Clark,
	Robin Murphy
  Cc: dri-devel, linux-kernel, Dmitry Osipenko, kernel

When panfrost_mmu_map_fault_addr() fails, the BO's mapping should be
unreferenced and not the shmem object which backs the mapping.

Cc: stable@vger.kernel.org
Fixes: bdefca2d8dc0 ("drm/panfrost: Add the panfrost_gem_mapping concept")
Reviewed-by: Steven Price <steven.price@arm.com>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
---
 drivers/gpu/drm/panfrost/panfrost_mmu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/panfrost/panfrost_mmu.c b/drivers/gpu/drm/panfrost/panfrost_mmu.c
index d3f82b26a631..b285a8001b1d 100644
--- a/drivers/gpu/drm/panfrost/panfrost_mmu.c
+++ b/drivers/gpu/drm/panfrost/panfrost_mmu.c
@@ -518,7 +518,7 @@ static int panfrost_mmu_map_fault_addr(struct panfrost_device *pfdev, int as,
 err_pages:
 	drm_gem_shmem_put_pages(&bo->base);
 err_bo:
-	drm_gem_object_put(&bo->base.base);
+	panfrost_gem_mapping_put(bomapping);
 	return ret;
 }
 
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH v7 2/2] drm/panfrost: Fix shrinker list corruption by madvise IOCTL
  2022-06-30 20:05 [PATCH v7 0/2] Panfrost driver fixes Dmitry Osipenko
  2022-06-30 20:06 ` [PATCH v7 1/2] drm/panfrost: Put mapping instead of shmem obj on panfrost_mmu_map_fault_addr() error Dmitry Osipenko
@ 2022-06-30 20:06 ` Dmitry Osipenko
  2022-07-04 15:47 ` [PATCH v7 0/2] Panfrost driver fixes Steven Price
  2 siblings, 0 replies; 4+ messages in thread
From: Dmitry Osipenko @ 2022-06-30 20:06 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Thomas Zimmermann, Rob Herring,
	Steven Price, Alyssa Rosenzweig, Tomeu Vizoso, Rob Clark,
	Robin Murphy
  Cc: dri-devel, linux-kernel, Dmitry Osipenko, kernel

Calling madvise IOCTL twice on BO causes memory shrinker list corruption
and crashes kernel because BO is already on the list and it's added to
the list again, while BO should be removed from the list before it's
re-added. Fix it.

Cc: stable@vger.kernel.org
Fixes: 013b65101315 ("drm/panfrost: Add madvise and shrinker support")
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
---
 drivers/gpu/drm/panfrost/panfrost_drv.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c
index c58075bc096e..2d870cf73b07 100644
--- a/drivers/gpu/drm/panfrost/panfrost_drv.c
+++ b/drivers/gpu/drm/panfrost/panfrost_drv.c
@@ -433,8 +433,8 @@ static int panfrost_ioctl_madvise(struct drm_device *dev, void *data,
 
 	if (args->retained) {
 		if (args->madv == PANFROST_MADV_DONTNEED)
-			list_add_tail(&bo->base.madv_list,
-				      &pfdev->shrinker_list);
+			list_move_tail(&bo->base.madv_list,
+				       &pfdev->shrinker_list);
 		else if (args->madv == PANFROST_MADV_WILLNEED)
 			list_del_init(&bo->base.madv_list);
 	}
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v7 0/2] Panfrost driver fixes
  2022-06-30 20:05 [PATCH v7 0/2] Panfrost driver fixes Dmitry Osipenko
  2022-06-30 20:06 ` [PATCH v7 1/2] drm/panfrost: Put mapping instead of shmem obj on panfrost_mmu_map_fault_addr() error Dmitry Osipenko
  2022-06-30 20:06 ` [PATCH v7 2/2] drm/panfrost: Fix shrinker list corruption by madvise IOCTL Dmitry Osipenko
@ 2022-07-04 15:47 ` Steven Price
  2 siblings, 0 replies; 4+ messages in thread
From: Steven Price @ 2022-07-04 15:47 UTC (permalink / raw)
  To: Dmitry Osipenko, David Airlie, Daniel Vetter, Thomas Zimmermann,
	Rob Herring, Alyssa Rosenzweig, Tomeu Vizoso, Rob Clark,
	Robin Murphy
  Cc: dri-devel, linux-kernel, Dmitry Osipenko, kernel

On 30/06/2022 21:05, Dmitry Osipenko wrote:
> This series fixes two minor bugs in the Panfrost driver.
> 
> Changelog:
> 
> v7: - Factored out Panfrost fixes from [1] since I'll be working on
>       the dma-buf locking in a separate patchset now.
> 
> [1] https://lore.kernel.org/all/20220526235040.678984-1-dmitry.osipenko@collabora.com/
> 
> Dmitry Osipenko (2):
>   drm/panfrost: Put mapping instead of shmem obj on
>     panfrost_mmu_map_fault_addr() error
>   drm/panfrost: Fix shrinker list corruption by madvise IOCTL
> 
>  drivers/gpu/drm/panfrost/panfrost_drv.c | 4 ++--
>  drivers/gpu/drm/panfrost/panfrost_mmu.c | 2 +-
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 

Thanks, I've pushed both to drm-misc-fixes.

Steve

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-07-04 15:48 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-30 20:05 [PATCH v7 0/2] Panfrost driver fixes Dmitry Osipenko
2022-06-30 20:06 ` [PATCH v7 1/2] drm/panfrost: Put mapping instead of shmem obj on panfrost_mmu_map_fault_addr() error Dmitry Osipenko
2022-06-30 20:06 ` [PATCH v7 2/2] drm/panfrost: Fix shrinker list corruption by madvise IOCTL Dmitry Osipenko
2022-07-04 15:47 ` [PATCH v7 0/2] Panfrost driver fixes Steven Price

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).