summaryrefslogtreecommitdiffstats
path: root/drivers/remoteproc/remoteproc_coredump.c
diff options
context:
space:
mode:
authorPeng Fan <peng.fan@nxp.com>2021-03-06 19:24:19 +0800
committerBjorn Andersson <bjorn.andersson@linaro.org>2021-03-11 12:02:41 -0600
commit40df0a91b2a5228ded8e5f75b80d28c96c6831cd (patch)
treef21ff48a98e3897411a7b81a248ff32bd6d49a30 /drivers/remoteproc/remoteproc_coredump.c
parent2cfc056ef2c28b4961bff5e2f6deed94afb14024 (diff)
downloadlinux-40df0a91b2a5228ded8e5f75b80d28c96c6831cd.tar.bz2
remoteproc: add is_iomem to da_to_va
Introduce an extra parameter is_iomem to da_to_va, then the caller could take the memory as normal memory or io mapped memory. Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org> Reported-by: kernel test robot <lkp@intel.com> Signed-off-by: Peng Fan <peng.fan@nxp.com> Link: https://lore.kernel.org/r/1615029865-23312-5-git-send-email-peng.fan@oss.nxp.com Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Diffstat (limited to 'drivers/remoteproc/remoteproc_coredump.c')
-rw-r--r--drivers/remoteproc/remoteproc_coredump.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/remoteproc/remoteproc_coredump.c b/drivers/remoteproc/remoteproc_coredump.c
index 81ec154a6a5e..aee657cc08c6 100644
--- a/drivers/remoteproc/remoteproc_coredump.c
+++ b/drivers/remoteproc/remoteproc_coredump.c
@@ -153,18 +153,22 @@ static void rproc_copy_segment(struct rproc *rproc, void *dest,
size_t offset, size_t size)
{
void *ptr;
+ bool is_iomem;
if (segment->dump) {
segment->dump(rproc, segment, dest, offset, size);
} else {
- ptr = rproc_da_to_va(rproc, segment->da + offset, size);
+ ptr = rproc_da_to_va(rproc, segment->da + offset, size, &is_iomem);
if (!ptr) {
dev_err(&rproc->dev,
"invalid copy request for segment %pad with offset %zu and size %zu)\n",
&segment->da, offset, size);
memset(dest, 0xff, size);
} else {
- memcpy(dest, ptr, size);
+ if (is_iomem)
+ memcpy_fromio(dest, ptr, size);
+ else
+ memcpy(dest, ptr, size);
}
}
}