summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorCezary Rojewski <cezary.rojewski@intel.com>2025-11-26 10:55:18 +0100
committerMark Brown <broonie@kernel.org>2025-11-27 11:41:12 +0000
commit1a0ce0a1e6d2e6e03469eb5233e2a571511b1ae1 (patch)
tree2ba0adeda4ca75600f3ebec6833d5250c18c74ef /sound
parent5d0cad409099798462d8a46756be537730bd8a22 (diff)
ASoC: Intel: catpt: Fix offset checks
Verify if the entire block is found within DRAM, not just the start of it. Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Link: https://patch.msgid.link/20251126095523.3925364-2-cezary.rojewski@intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/intel/catpt/loader.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sound/soc/intel/catpt/loader.c b/sound/soc/intel/catpt/loader.c
index 696d84314eeb..5804de1d89e3 100644
--- a/sound/soc/intel/catpt/loader.c
+++ b/sound/soc/intel/catpt/loader.c
@@ -216,7 +216,7 @@ static int catpt_restore_memdumps(struct catpt_dev *cdev, struct dma_chan *chan)
continue;
off = catpt_to_host_offset(info->offset);
- if (off < cdev->dram.start || off > cdev->dram.end)
+ if (off < cdev->dram.start || off + info->size >= cdev->dram.end)
continue;
dev_dbg(cdev->dev, "restoring memdump: off 0x%08x size %d\n",
@@ -261,12 +261,12 @@ static int catpt_restore_fwimage(struct catpt_dev *cdev,
continue;
off = catpt_to_host_offset(info->offset);
- if (off < cdev->dram.start || off > cdev->dram.end)
- continue;
-
r2.start = off;
r2.end = r2.start + info->size - 1;
+ if (r2.start < cdev->dram.start || r2.end > cdev->dram.end)
+ continue;
+
if (!resource_intersection(&r2, &r1, &common))
continue;
/* calculate start offset of common data area */