Unverified Commit 1a0ce0a1 authored by Cezary Rojewski's avatar Cezary Rojewski Committed by Mark Brown
Browse files

ASoC: Intel: catpt: Fix offset checks



Verify if the entire block is found within DRAM, not just
the start of it.

Signed-off-by: default avatarCezary Rojewski <cezary.rojewski@intel.com>
Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://patch.msgid.link/20251126095523.3925364-2-cezary.rojewski@intel.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 5d0cad40
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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 */