summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Herring (Arm) <robh@kernel.org>2026-08-27 15:33:04 -0500
committerRob Herring (Arm) <robh@kernel.org>2026-09-03 12:06:45 -0500
commit2b39d680c9e0fb4d625f2916980977622e84248c (patch)
tree168f8ca01165a6efb4bf84e98ca9bca5ee96fde0
parentf5376d7e0fb703876199d3b6f9f97e128fa2f8a4 (diff)
downloadlinux-2b39d680c9e0fb4d625f2916980977622e84248c.tar.gz
linux-2b39d680c9e0fb4d625f2916980977622e84248c.zip
accel: ethosu: Ensure SRAM region size matches job
It is possible for userspace to set the job SRAM size to 0, but then still have SRAM accesses in the command stream. When the job SRAM size is 0, setting the region base register is skipped and a stale base address from a prior job is used. Check the region size against the job's SRAM size instead of just the size of the SRAM. The job's SRAM size was already checked against the total SRAM size. Fixes: 9cff90774872 ("accel: ethosu: Validate SRAM size on submit") Cc: stable@vger.kernel.org Reviewed-by: Frank Li <Frank.Li@nxp.com> Link: https://patch.msgid.link/20260827-ethosu-fixes-v1-5-346f9ea8791c@kernel.org Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
-rw-r--r--drivers/accel/ethosu/ethosu_job.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/accel/ethosu/ethosu_job.c b/drivers/accel/ethosu/ethosu_job.c
index 4532ff13edb6..8dce74db0cb4 100644
--- a/drivers/accel/ethosu/ethosu_job.c
+++ b/drivers/accel/ethosu/ethosu_job.c
@@ -447,13 +447,13 @@ static int ethosu_ioctl_submit_job(struct drm_device *dev, struct drm_file *file
if (!cmd_info->region_size[i])
continue;
if (i == ETHOSU_SRAM_REGION) {
- if (cmd_info->region_size[i] <= edev->npu_info.sram_size)
+ if (cmd_info->region_size[i] <= ejob->sram_size)
continue;
dev_err(dev->dev,
- "cmd stream region %d size greater than SRAM size (%llu > %u)\n",
+ "cmd stream region %d size greater than job SRAM size (%llu > %u)\n",
i, cmd_info->region_size[i],
- edev->npu_info.sram_size);
+ ejob->sram_size);
ret = -EINVAL;
goto out_cleanup_job;
}