Commit 71ffb5a2 authored by Tzung-Bi Shih's avatar Tzung-Bi Shih Committed by Bjorn Andersson
Browse files

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: default avatarMathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: default avatarTzung-Bi Shih <tzungbi@google.com>
Link: https://lore.kernel.org/r/20201116084413.3312631-2-tzungbi@google.com


Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
parent 903635cb
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -408,11 +408,11 @@ static void *scp_da_to_va(struct rproc *rproc, u64 da, size_t len)

	if (da < scp->sram_size) {
		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;
	} else if (scp->dram_size) {
		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;
	}