* [PATCH] drm/imagination: Improve logging of unknown freelist IDs
@ 2026-10-06 11:51 Alexandru Dadu
2026-10-06 11:59 ` sashiko-bot
0 siblings, 1 reply; 2+ messages in thread
From: Alexandru Dadu @ 2026-10-06 11:51 UTC (permalink / raw)
To: Alessio Belle, Luigi Santivetti, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter
Cc: imagination, dri-devel, linux-kernel, Alexandru Dadu
From: Alessio Belle <alessio.belle@imgtec.com>
Log freelist IDs not recognised by the driver when processing freelist
grow or reconstruction requests from the firmware.
In the freelist grow request path, remove a WARN_ON() which is not
particularly useful since it is known where the request came from.
Signed-off-by: Alessio Belle <alessio.belle@imgtec.com>
Signed-off-by: Alexandru Dadu <alexandru.dadu@imgtec.com>
---
drivers/gpu/drm/imagination/pvr_free_list.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/imagination/pvr_free_list.c b/drivers/gpu/drm/imagination/pvr_free_list.c
index e85cac83834c..f8a333649933 100644
--- a/drivers/gpu/drm/imagination/pvr_free_list.c
+++ b/drivers/gpu/drm/imagination/pvr_free_list.c
@@ -8,6 +8,7 @@
#include "pvr_vm.h"
#include <drm/drm_gem.h>
+#include <drm/drm_print.h>
#include <linux/slab.h>
#include <linux/xarray.h>
#include <uapi/drm/pvr_drm.h>
@@ -367,8 +368,12 @@ void pvr_free_list_process_grow_req(struct pvr_device *pvr_dev,
u32 grow_pages = 0;
/* If we don't have a freelist registered for this ID, we can't do much. */
- if (WARN_ON(!free_list))
+ if (!free_list) {
+ drm_warn(from_pvr_device(pvr_dev),
+ "Received freelist grow request for unknown ID 0x%x\n",
+ req->freelist_id);
return;
+ }
/* Since the FW made the request, it has already consumed the ready pages,
* update the host struct.
@@ -564,8 +569,12 @@ pvr_free_list_reconstruct(struct pvr_device *pvr_dev, u32 freelist_id)
struct rogue_fwif_freelist *fw_data;
struct pvr_hwrt_data *hwrt_data;
- if (!free_list)
+ if (!free_list) {
+ drm_warn(from_pvr_device(pvr_dev),
+ "Received freelist reconstruction request for unknown ID 0x%x\n",
+ freelist_id);
return;
+ }
mutex_lock(&free_list->lock);
---
base-commit: 6e375de99d0c420169481fcd36064177ab55b09d
change-id: 20261006-b4-improve-logging-of-unknown-freelist-ids-8a69777fd61e
Best regards,
--
Alexandru Dadu <alexandru.dadu@imgtec.com>
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] drm/imagination: Improve logging of unknown freelist IDs
2026-10-06 11:51 [PATCH] drm/imagination: Improve logging of unknown freelist IDs Alexandru Dadu
@ 2026-10-06 11:59 ` sashiko-bot
0 siblings, 0 replies; 2+ messages in thread
From: sashiko-bot @ 2026-10-06 11:59 UTC (permalink / raw)
To: Alexandru Dadu; +Cc: dri-devel
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] drm: missing rate-limiting on firmware-driven log messages
--
commit 48839b908b6b2c9825c18cddcc77e1ed32786c07
Author: Alessio Belle <alessio.belle@imgtec.com>
drm/imagination: Improve logging of unknown freelist IDs
This commit improves logging by adding warnings when the firmware sends
freelist grow or reconstruction requests with unrecognized IDs. It also
removes a WARN_ON() in the grow request path.
> diff --git a/drivers/gpu/drm/imagination/pvr_free_list.c b/drivers/gpu/drm/imagination/pvr_free_list.c
> index e85cac83834c6..f8a333649933a 100644
> --- a/drivers/gpu/drm/imagination/pvr_free_list.c
> +++ b/drivers/gpu/drm/imagination/pvr_free_list.c
[ ... ]
> @@ -367,8 +368,12 @@ void pvr_free_list_process_grow_req(struct pvr_device *pvr_dev,
> u32 grow_pages = 0;
>
> /* If we don't have a freelist registered for this ID, we can't do much. */
> - if (WARN_ON(!free_list))
> + if (!free_list) {
> + drm_warn(from_pvr_device(pvr_dev),
> + "Received freelist grow request for unknown ID 0x%x\n",
> + req->freelist_id);
[Severity: Medium]
Could this lead to log flooding if the firmware repeatedly sends requests
with an unknown freelist ID?
While the firmware is trusted, it is generally standard practice to use
drm_warn_ratelimited() for messages triggered by hardware or firmware
events to prevent kernel log buffer overflows.
> return;
> + }
>
> /* Since the FW made the request, it has already consumed the ready pages,
> * update the host struct.
[ ... ]
> @@ -564,8 +569,12 @@ pvr_free_list_reconstruct(struct pvr_device *pvr_dev, u32 freelist_id)
> struct rogue_fwif_freelist *fw_data;
> struct pvr_hwrt_data *hwrt_data;
>
> - if (!free_list)
> + if (!free_list) {
> + drm_warn(from_pvr_device(pvr_dev),
> + "Received freelist reconstruction request for unknown ID 0x%x\n",
> + freelist_id);
[Severity: Medium]
Similarly, could this unbounded warning consume CPU cycles and mask other
important errors if the firmware malfunctions or is compromised?
Using a rate limited logging function here might be safer.
> return;
> + }
>
> mutex_lock(&free_list->lock);
>
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261006-b4-improve-logging-of-unknown-freelist-ids-v1-1-96ebcb132b80@imgtec.com?part=1
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-10-06 11:59 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-06 11:51 [PATCH] drm/imagination: Improve logging of unknown freelist IDs Alexandru Dadu
2026-10-06 11:59 ` sashiko-bot
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.