Re: [PATCH] remoteproc: rcar_rproc: silince address space sparse warning

From: Mathieu Poirier
Date: Tue Aug 23 2022 - 16:09:10 EST


On Mon, Aug 08, 2022 at 09:16:09AM +0800, Kefeng Wang wrote:
> Fix sparse warnings,
> drivers/remoteproc/st_remoteproc.c:98:12: sparse: sparse: incorrect type in assignment (different address spaces) @@
> expected void *va @@ got void [noderef] __iomem * @@
> drivers/remoteproc/st_remoteproc.c:98:12: sparse: expected void *va
> drivers/remoteproc/st_remoteproc.c:98:12: sparse: got void [noderef] __iomem *
> ...
> drivers/remoteproc/st_remoteproc.c:114:20: sparse: expected void volatile [noderef] __iomem *io_addr
> drivers/remoteproc/st_remoteproc.c:114:20: sparse: got void *va
>
> Add __iomem to io address space 'va' to fix it.
>
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
> Signed-off-by: Kefeng Wang <wangkefeng.wang@xxxxxxxxxx>
> ---
> note: the commit d803336abdbc "(ARM: mm: kill unused runtime hook arch_iounmap())"
> won't introduce the warning, but lkp report issue to me many times,
> let's fix it.
>
> drivers/remoteproc/rcar_rproc.c | 2 +-
> include/linux/remoteproc.h | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>

$ ./scripts/checkpatch.pl _PATCH_remoteproc_rcar_rproc_silince_address_space_sparse_warning.patch
WARNING: A patch subject line should describe the change not the tool that found it
#9:
Subject: [PATCH] remoteproc: rcar_rproc: silince address space sparse warning

total: 0 errors, 1 warnings, 16 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
mechanically convert to the typical style using --fix or --fix-inplace.

_PATCH_remoteproc_rcar_rproc_silince_address_space_sparse_warning.patch has style problems, please review.

NOTE: If any of the errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.


> diff --git a/drivers/remoteproc/rcar_rproc.c b/drivers/remoteproc/rcar_rproc.c
> index aa86154109c7..e3363a4cde0a 100644
> --- a/drivers/remoteproc/rcar_rproc.c
> +++ b/drivers/remoteproc/rcar_rproc.c
> @@ -22,7 +22,7 @@ static int rcar_rproc_mem_alloc(struct rproc *rproc,
> struct rproc_mem_entry *mem)
> {
> struct device *dev = &rproc->dev;
> - void *va;
> + void __iomem *va;
>
> dev_dbg(dev, "map memory: %pa+%zx\n", &mem->dma, mem->len);
> va = ioremap_wc(mem->dma, mem->len);
> diff --git a/include/linux/remoteproc.h b/include/linux/remoteproc.h
> index 7c943f0a2fc4..c0c950cf7d72 100644
> --- a/include/linux/remoteproc.h
> +++ b/include/linux/remoteproc.h
> @@ -330,7 +330,7 @@ struct rproc;
> * @alloc: specific memory allocator function
> */
> struct rproc_mem_entry {
> - void *va;
> + void __iomem *va;
> bool is_iomem;
> dma_addr_t dma;
> size_t len;
> --
> 2.35.3
>