All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v7 0/2] Panfrost driver fixes
@ 2022-06-30 20:05 ` Dmitry Osipenko
  0 siblings, 0 replies; 8+ 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] 8+ messages in thread

* [PATCH v7 0/2] Panfrost driver fixes
@ 2022-06-30 20:05 ` Dmitry Osipenko
  0 siblings, 0 replies; 8+ 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: Dmitry Osipenko, kernel, linux-kernel, dri-devel

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] 8+ 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 ` Dmitry Osipenko
@ 2022-06-30 20:06   ` Dmitry Osipenko
  -1 siblings, 0 replies; 8+ 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] 8+ 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:06   ` Dmitry Osipenko
  0 siblings, 0 replies; 8+ 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: Dmitry Osipenko, kernel, linux-kernel, dri-devel

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] 8+ messages in thread

* [PATCH v7 2/2] drm/panfrost: Fix shrinker list corruption by madvise IOCTL
  2022-06-30 20:05 ` Dmitry Osipenko
@ 2022-06-30 20:06   ` Dmitry Osipenko
  -1 siblings, 0 replies; 8+ 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] 8+ messages in thread

* [PATCH v7 2/2] drm/panfrost: Fix shrinker list corruption by madvise IOCTL
@ 2022-06-30 20:06   ` Dmitry Osipenko
  0 siblings, 0 replies; 8+ 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: Dmitry Osipenko, kernel, linux-kernel, dri-devel

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] 8+ messages in thread

* Re: [PATCH v7 0/2] Panfrost driver fixes
  2022-06-30 20:05 ` Dmitry Osipenko
@ 2022-07-04 15:47   ` Steven Price
  -1 siblings, 0 replies; 8+ 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] 8+ messages in thread

* Re: [PATCH v7 0/2] Panfrost driver fixes
@ 2022-07-04 15:47   ` Steven Price
  0 siblings, 0 replies; 8+ 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: Dmitry Osipenko, kernel, linux-kernel, dri-devel

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] 8+ messages in thread

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

Thread overview: 8+ 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: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
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-06-30 20:06   ` Dmitry Osipenko
2022-07-04 15:47 ` [PATCH v7 0/2] Panfrost driver fixes Steven Price
2022-07-04 15:47   ` Steven Price

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.