提交 71ffb5a2 编写于 作者: T Tzung-Bi Shih 提交者: Bjorn Andersson

remoteproc/mediatek: fix boundary check

It is valid if offset+length == sram_size.

For example, sram_size=100, offset=99, length=1.  Accessing offset 99
with length 1 is valid.
Reviewed-by: NMathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: NTzung-Bi Shih <tzungbi@google.com>
Link: https://lore.kernel.org/r/20201116084413.3312631-2-tzungbi@google.comSigned-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
上级 903635cb
...@@ -408,11 +408,11 @@ static void *scp_da_to_va(struct rproc *rproc, u64 da, size_t len) ...@@ -408,11 +408,11 @@ static void *scp_da_to_va(struct rproc *rproc, u64 da, size_t len)
if (da < scp->sram_size) { if (da < scp->sram_size) {
offset = da; offset = da;
if (offset >= 0 && (offset + len) < scp->sram_size) if (offset >= 0 && (offset + len) <= scp->sram_size)
return (void __force *)scp->sram_base + offset; return (void __force *)scp->sram_base + offset;
} else if (scp->dram_size) { } else if (scp->dram_size) {
offset = da - scp->dma_addr; offset = da - scp->dma_addr;
if (offset >= 0 && (offset + len) < scp->dram_size) if (offset >= 0 && (offset + len) <= scp->dram_size)
return scp->cpu_addr + offset; return scp->cpu_addr + offset;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册