From 9501cafc50b5fa1a136387a3b00e1cec5ecfab03 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Thu, 16 Apr 2026 15:47:33 +0200 Subject: [PATCH] pan/lib: fix up afbc and linear layout A few cases of UINT32_MAX were missed, whoops. Fixes: c2c91e78fdc ("pan/layout: Allow bigger size/surface stride on v12+") Reviewed-by: Boris Brezillon Reviewed-by: Lars-Ivar Hesselberg Simonsen (cherry picked from commit 69b8372fbf98da6e81ba6b22a13e160ea6784928) Part-of: --- .pick_status.json | 2 +- src/panfrost/lib/pan_mod.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index f1ef6c8d7bf..558fbcb28e8 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -4214,7 +4214,7 @@ "description": "pan/lib: fix up afbc and linear layout", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "c2c91e78fdc7e121a54796636c09ab8d76451df4", "notes": null diff --git a/src/panfrost/lib/pan_mod.c b/src/panfrost/lib/pan_mod.c index 089282f1751..1c650108dbb 100644 --- a/src/panfrost/lib/pan_mod.c +++ b/src/panfrost/lib/pan_mod.c @@ -179,8 +179,8 @@ pan_mod_afbc_init_slice_layout( slayout->afbc.surface_stride_B = surf_stride_B; slayout->size_B = surf_stride_B * mip_extent_px.depth; - if (hdr_surf_size_B > UINT32_MAX || surf_stride_B > UINT32_MAX || - slayout->size_B > UINT32_MAX) + if (hdr_surf_size_B > UINT32_MAX || surf_stride_B > MAX_SLICE_STRIDE_B || + slayout->size_B > MAX_SIZE_B) return false; return true; @@ -682,7 +682,7 @@ pan_mod_linear_init_slice_layout( /* Surface stride is passed as a 32-bit unsigned integer to RT/ZS and texture * descriptors, make sure it fits. */ - if (surf_stride_B > UINT32_MAX) + if (surf_stride_B > MAX_SLICE_STRIDE_B) return false; slayout->tiled_or_linear.surface_stride_B = surf_stride_B;