remoteproc: Use size_t type for len in da_to_va
With upcoming changes in elf loader for elf64 support, section size will be a u64. When used with da_to_va, this will potentially lead to overflow if using the current "int" type for len argument. Change da_to_va prototype to use a size_t for len and fix all users of this function. Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org> Signed-off-by: Clement Leger <cleger@kalray.eu> Link: https://lore.kernel.org/r/20200302093902.27849-2-cleger@kalray.eu Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
This commit is contained in:

committad av
Bjorn Andersson

förälder
2e7d4c2c4b
incheckning
9ce3bf225e
@@ -186,7 +186,7 @@ static int imx_rproc_stop(struct rproc *rproc)
|
||||
}
|
||||
|
||||
static int imx_rproc_da_to_sys(struct imx_rproc *priv, u64 da,
|
||||
int len, u64 *sys)
|
||||
size_t len, u64 *sys)
|
||||
{
|
||||
const struct imx_rproc_dcfg *dcfg = priv->dcfg;
|
||||
int i;
|
||||
@@ -203,19 +203,19 @@ static int imx_rproc_da_to_sys(struct imx_rproc *priv, u64 da,
|
||||
}
|
||||
}
|
||||
|
||||
dev_warn(priv->dev, "Translation failed: da = 0x%llx len = 0x%x\n",
|
||||
dev_warn(priv->dev, "Translation failed: da = 0x%llx len = 0x%zx\n",
|
||||
da, len);
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
static void *imx_rproc_da_to_va(struct rproc *rproc, u64 da, int len)
|
||||
static void *imx_rproc_da_to_va(struct rproc *rproc, u64 da, size_t len)
|
||||
{
|
||||
struct imx_rproc *priv = rproc->priv;
|
||||
void *va = NULL;
|
||||
u64 sys;
|
||||
int i;
|
||||
|
||||
if (len <= 0)
|
||||
if (len == 0)
|
||||
return NULL;
|
||||
|
||||
/*
|
||||
@@ -235,7 +235,8 @@ static void *imx_rproc_da_to_va(struct rproc *rproc, u64 da, int len)
|
||||
}
|
||||
}
|
||||
|
||||
dev_dbg(&rproc->dev, "da = 0x%llx len = 0x%x va = 0x%p\n", da, len, va);
|
||||
dev_dbg(&rproc->dev, "da = 0x%llx len = 0x%zx va = 0x%p\n",
|
||||
da, len, va);
|
||||
|
||||
return va;
|
||||
}
|
||||
|
Referens i nytt ärende
Block a user