[PATCH 02/12] drm/panic: Make allocation of zlib workspace more robust
Thomas Zimmermann
tzimmermann at suse.de
Tue Aug 18 05:28:00 PDT 2026
Test the zlib workspace size to not have a negative value. This
would be a driver bug. Also touch allocated memory so that the
pages are available upon a panic.
Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
---
drivers/gpu/drm/drm_panic.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/drm_panic.c b/drivers/gpu/drm/drm_panic.c
index 0685f7d8dba2..705b72bf0d83 100644
--- a/drivers/gpu/drm/drm_panic.c
+++ b/drivers/gpu/drm/drm_panic.c
@@ -634,13 +634,19 @@ static struct z_stream_s stream;
static void __init drm_panic_qr_init(void)
{
+ int wssize;
+
+ wssize = zlib_deflate_workspacesize(WINDOW_BITS, MEM_LEVEL);
+ if (WARN_ON_ONCE(wssize < 0))
+ return;
/* best-effort allocation; can be NULL */
- stream.workspace = kmalloc(zlib_deflate_workspacesize(WINDOW_BITS, MEM_LEVEL),
- GFP_KERNEL);
+ stream.workspace = kmalloc(wssize, GFP_KERNEL);
/* touch memory so that pages are there in the case of a panic */
memset(qrbuf1, 0, sizeof(qrbuf1));
memset(qrbuf2, 0, sizeof(qrbuf2));
+ if (stream.workspace)
+ memset(stream.workspace, 0, wssize);
}
static void drm_panic_qr_exit(void)
--
2.55.0
More information about the linux-arm-kernel
mailing list