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 <[email protected]>
Signed-off-by: Kefeng Wang <[email protected]>
---
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(-)
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
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 <[email protected]>
> Signed-off-by: Kefeng Wang <[email protected]>
> ---
> 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
>