[PATCH 2/3] drm/exynos: Don't use %pK through printk
Inki Dae
daeinki at gmail.com
Fri Jun 27 02:02:59 UTC 2025
Hi,
2025년 6월 18일 (수) 오후 4:56, Thomas Weißschuh
<thomas.weissschuh at linutronix.de>님이 작성:
>
> In the past %pK was preferable to %p as it would not leak raw pointer
> values into the kernel log.
> Since commit ad67b74d2469 ("printk: hash addresses printed with %p")
> the regular %p has been improved to avoid this issue.
> Furthermore, restricted pointers ("%pK") were never meant to be used
> through printk(). They can still unintentionally leak raw pointers or
> acquire sleeping locks in atomic contexts.
>
> Switch to the regular pointer formatting which is safer and
> easier to reason about.
Applied.
Thanks,
Inki Dae
>
> Signed-off-by: Thomas Weißschuh <thomas.weissschuh at linutronix.de>
> ---
> drivers/gpu/drm/exynos/exynos_drm_gem.c | 2 +-
> drivers/gpu/drm/exynos/exynos_drm_ipp.c | 32 ++++++++++++++++----------------
> 2 files changed, 17 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c
> index 4787fee4696f8e6f9eecaacb1535765c246688c8..d44401a695e203bd36b3b6678fdeb3572a91bfda 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c
> @@ -174,7 +174,7 @@ static struct exynos_drm_gem *exynos_drm_gem_init(struct drm_device *dev,
> return ERR_PTR(ret);
> }
>
> - DRM_DEV_DEBUG_KMS(dev->dev, "created file object = %pK\n", obj->filp);
> + DRM_DEV_DEBUG_KMS(dev->dev, "created file object = %p\n", obj->filp);
>
> return exynos_gem;
> }
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_ipp.c b/drivers/gpu/drm/exynos/exynos_drm_ipp.c
> index ea9f66037600e1020da4b0a9c318ca2f2266a871..03c8490af4f45447d123a20777e5362ebd933b46 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_ipp.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_ipp.c
> @@ -271,7 +271,7 @@ static inline struct exynos_drm_ipp_task *
> task->src.rect.h = task->dst.rect.h = UINT_MAX;
> task->transform.rotation = DRM_MODE_ROTATE_0;
>
> - DRM_DEV_DEBUG_DRIVER(task->dev, "Allocated task %pK\n", task);
> + DRM_DEV_DEBUG_DRIVER(task->dev, "Allocated task %p\n", task);
>
> return task;
> }
> @@ -339,7 +339,7 @@ static int exynos_drm_ipp_task_set(struct exynos_drm_ipp_task *task,
> }
>
> DRM_DEV_DEBUG_DRIVER(task->dev,
> - "Got task %pK configuration from userspace\n",
> + "Got task %p configuration from userspace\n",
> task);
> return 0;
> }
> @@ -394,7 +394,7 @@ static void exynos_drm_ipp_task_release_buf(struct exynos_drm_ipp_buffer *buf)
> static void exynos_drm_ipp_task_free(struct exynos_drm_ipp *ipp,
> struct exynos_drm_ipp_task *task)
> {
> - DRM_DEV_DEBUG_DRIVER(task->dev, "Freeing task %pK\n", task);
> + DRM_DEV_DEBUG_DRIVER(task->dev, "Freeing task %p\n", task);
>
> exynos_drm_ipp_task_release_buf(&task->src);
> exynos_drm_ipp_task_release_buf(&task->dst);
> @@ -559,7 +559,7 @@ static int exynos_drm_ipp_check_format(struct exynos_drm_ipp_task *task,
> DRM_EXYNOS_IPP_FORMAT_DESTINATION);
> if (!fmt) {
> DRM_DEV_DEBUG_DRIVER(task->dev,
> - "Task %pK: %s format not supported\n",
> + "Task %p: %s format not supported\n",
> task, buf == src ? "src" : "dst");
> return -EINVAL;
> }
> @@ -609,7 +609,7 @@ static int exynos_drm_ipp_task_check(struct exynos_drm_ipp_task *task)
> bool rotate = (rotation != DRM_MODE_ROTATE_0);
> bool scale = false;
>
> - DRM_DEV_DEBUG_DRIVER(task->dev, "Checking task %pK\n", task);
> + DRM_DEV_DEBUG_DRIVER(task->dev, "Checking task %p\n", task);
>
> if (src->rect.w == UINT_MAX)
> src->rect.w = src->buf.width;
> @@ -625,7 +625,7 @@ static int exynos_drm_ipp_task_check(struct exynos_drm_ipp_task *task)
> dst->rect.x + dst->rect.w > (dst->buf.width) ||
> dst->rect.y + dst->rect.h > (dst->buf.height)) {
> DRM_DEV_DEBUG_DRIVER(task->dev,
> - "Task %pK: defined area is outside provided buffers\n",
> + "Task %p: defined area is outside provided buffers\n",
> task);
> return -EINVAL;
> }
> @@ -642,7 +642,7 @@ static int exynos_drm_ipp_task_check(struct exynos_drm_ipp_task *task)
> (!(ipp->capabilities & DRM_EXYNOS_IPP_CAP_SCALE) && scale) ||
> (!(ipp->capabilities & DRM_EXYNOS_IPP_CAP_CONVERT) &&
> src->buf.fourcc != dst->buf.fourcc)) {
> - DRM_DEV_DEBUG_DRIVER(task->dev, "Task %pK: hw capabilities exceeded\n",
> + DRM_DEV_DEBUG_DRIVER(task->dev, "Task %p: hw capabilities exceeded\n",
> task);
> return -EINVAL;
> }
> @@ -655,7 +655,7 @@ static int exynos_drm_ipp_task_check(struct exynos_drm_ipp_task *task)
> if (ret)
> return ret;
>
> - DRM_DEV_DEBUG_DRIVER(ipp->dev, "Task %pK: all checks done.\n",
> + DRM_DEV_DEBUG_DRIVER(ipp->dev, "Task %p: all checks done.\n",
> task);
>
> return ret;
> @@ -667,25 +667,25 @@ static int exynos_drm_ipp_task_setup_buffers(struct exynos_drm_ipp_task *task,
> struct exynos_drm_ipp_buffer *src = &task->src, *dst = &task->dst;
> int ret = 0;
>
> - DRM_DEV_DEBUG_DRIVER(task->dev, "Setting buffer for task %pK\n",
> + DRM_DEV_DEBUG_DRIVER(task->dev, "Setting buffer for task %p\n",
> task);
>
> ret = exynos_drm_ipp_task_setup_buffer(src, filp);
> if (ret) {
> DRM_DEV_DEBUG_DRIVER(task->dev,
> - "Task %pK: src buffer setup failed\n",
> + "Task %p: src buffer setup failed\n",
> task);
> return ret;
> }
> ret = exynos_drm_ipp_task_setup_buffer(dst, filp);
> if (ret) {
> DRM_DEV_DEBUG_DRIVER(task->dev,
> - "Task %pK: dst buffer setup failed\n",
> + "Task %p: dst buffer setup failed\n",
> task);
> return ret;
> }
>
> - DRM_DEV_DEBUG_DRIVER(task->dev, "Task %pK: buffers prepared.\n",
> + DRM_DEV_DEBUG_DRIVER(task->dev, "Task %p: buffers prepared.\n",
> task);
>
> return ret;
> @@ -764,7 +764,7 @@ void exynos_drm_ipp_task_done(struct exynos_drm_ipp_task *task, int ret)
> struct exynos_drm_ipp *ipp = task->ipp;
> unsigned long flags;
>
> - DRM_DEV_DEBUG_DRIVER(task->dev, "ipp: %d, task %pK done: %d\n",
> + DRM_DEV_DEBUG_DRIVER(task->dev, "ipp: %d, task %p done: %d\n",
> ipp->id, task, ret);
>
> spin_lock_irqsave(&ipp->lock, flags);
> @@ -807,7 +807,7 @@ static void exynos_drm_ipp_next_task(struct exynos_drm_ipp *ipp)
> spin_unlock_irqrestore(&ipp->lock, flags);
>
> DRM_DEV_DEBUG_DRIVER(ipp->dev,
> - "ipp: %d, selected task %pK to run\n", ipp->id,
> + "ipp: %d, selected task %p to run\n", ipp->id,
> task);
>
> ret = ipp->funcs->commit(ipp, task);
> @@ -917,14 +917,14 @@ int exynos_drm_ipp_commit_ioctl(struct drm_device *dev, void *data,
> */
> if (arg->flags & DRM_EXYNOS_IPP_FLAG_NONBLOCK) {
> DRM_DEV_DEBUG_DRIVER(ipp->dev,
> - "ipp: %d, nonblocking processing task %pK\n",
> + "ipp: %d, nonblocking processing task %p\n",
> ipp->id, task);
>
> task->flags |= DRM_EXYNOS_IPP_TASK_ASYNC;
> exynos_drm_ipp_schedule_task(task->ipp, task);
> ret = 0;
> } else {
> - DRM_DEV_DEBUG_DRIVER(ipp->dev, "ipp: %d, processing task %pK\n",
> + DRM_DEV_DEBUG_DRIVER(ipp->dev, "ipp: %d, processing task %p\n",
> ipp->id, task);
> exynos_drm_ipp_schedule_task(ipp, task);
> ret = wait_event_interruptible(ipp->done_wq,
>
> --
> 2.49.0
>
>
More information about the dri-devel
mailing list