mirror of https://github.com/torvalds/linux.git
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>
This commit is contained in:
parent
5d0cad4090
commit
1a0ce0a1e6
|
|
@ -216,7 +216,7 @@ static int catpt_restore_memdumps(struct catpt_dev *cdev, struct dma_chan *chan)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
off = catpt_to_host_offset(info->offset);
|
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;
|
continue;
|
||||||
|
|
||||||
dev_dbg(cdev->dev, "restoring memdump: off 0x%08x size %d\n",
|
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;
|
continue;
|
||||||
|
|
||||||
off = catpt_to_host_offset(info->offset);
|
off = catpt_to_host_offset(info->offset);
|
||||||
if (off < cdev->dram.start || off > cdev->dram.end)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
r2.start = off;
|
r2.start = off;
|
||||||
r2.end = r2.start + info->size - 1;
|
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))
|
if (!resource_intersection(&r2, &r1, &common))
|
||||||
continue;
|
continue;
|
||||||
/* calculate start offset of common data area */
|
/* calculate start offset of common data area */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue