firmware: meson_sm: Fix memcpy vs iomem type warnings
PATCH 1/1 firmware: meson_sm: Fix memcpy vs iomem type warnings
Use memcpy_{toio,fromio}() instead of memcpy(). Silences warnings from Sparse:
drivers/firmware/meson/meson_sm.c:170:17: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:170:17: expected void const *drivers/firmware/meson/meson_sm.c:170:17: got void [noderef] __iomem *sm_shmem_out_basedrivers/firmware/meson/meson_sm.c:170:17: warning: incorrect type in argument 2 (different address spaces)drivers/firmware/meson/meson_sm.c:170:17: expected void const *drivers/firmware/meson/meson_sm.c:170:17: got void [noderef] __iomem *sm_shmem_out_basedrivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:206:9: expected void const *drivers/firmware/meson/meson_sm.c:206:9: got void [noderef] __iomem *sm_shmem_in_basedrivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:206:9: expected void const *drivers/firmware/meson/meson_sm.c:206:9: got void [noderef] __iomem *sm_shmem_in_basedrivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:206:9: expected void const *drivers/firmware/meson/meson_sm.c:206:9: got void [noderef] __iomem *sm_shmem_in_basedrivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:206:9: expected void *drivers/firmware/meson/meson_sm.c:206:9: got void [noderef] __iomem *sm_shmem_in_base
While here, fix this warning as well:
drivers/firmware/meson/meson_sm.c:85:24: warning: Using plain integer as NULL pointer
--- drivers/firmware/meson/meson_sm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
drivers/firmware/meson/meson_sm.c +3 -3
@@ -82,7 +82,7 @@ static void __iomem *meson_sm_map_shmem(u32 cmd_shmem, unsigned int size) sm_phy_base =__meson_sm_call (cmd_shmem,0 ,0 ,0 ,0 ,0 );if (!sm_phy_base) -return 0 ; +return NULL ;return ioremap_cache (sm_phy_base, size); }
@@ -167,7 +167,7 @@ int meson_sm_call_read(struct meson_sm_firmware *fw, void *buffer, size = bsize;if (buffer) -memcpy (buffer, fw->sm_shmem_out_base, size); +memcpy_fromio (buffer, fw->sm_shmem_out_base, size);return ret; }
@@ -203,7 +203,7 @@ int meson_sm_call_write(struct meson_sm_firmware *fw, void *buffer,if (!fw->chip->cmd_shmem_in_base)return -EINVAL ; -memcpy (fw->sm_shmem_in_base, buffer, size); +memcpy_toio (fw->sm_shmem_in_base, buffer, size);if (meson_sm_call (fw, cmd_index, &written, arg0, arg1, arg2, arg3, arg4) <0 )return -EINVAL ;
Signature · 7 lines
2.34.1 _______________________________________________ linux-amlogic mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-amlogic
Quoted 62 lines · Kees Cook
Use memcpy_{toio,fromio}() instead of
memcpy(). Silences warnings from Sparse:
drivers/firmware/meson/meson_sm.c:170:17: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:170:17: expected void const *drivers/firmware/meson/meson_sm.c:170:17: got void [noderef]__iomem*sm_shmem_out_basedrivers/firmware/meson/meson_sm.c:170:17: warning: incorrect type in argument 2 (different address spaces)drivers/firmware/meson/meson_sm.c:170:17: expected void const *drivers/firmware/meson/meson_sm.c:170:17: got void [noderef]__iomem*sm_shmem_out_basedrivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:206:9: expected void const *drivers/firmware/meson/meson_sm.c:206:9: got void [noderef]__iomem*sm_shmem_in_basedrivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:206:9: expected void const *drivers/firmware/meson/meson_sm.c:206:9: got void [noderef]__iomem*sm_shmem_in_basedrivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:206:9: expected void const *drivers/firmware/meson/meson_sm.c:206:9: got void [noderef]__iomem*sm_shmem_in_basedrivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:206:9: expected void *drivers/firmware/meson/meson_sm.c:206:9: got void [noderef]__iomem*sm_shmem_in_baseWhile here, fix this warning as well:
drivers/firmware/meson/meson_sm.c:85:24: warning: Using plain integer as NULL pointerReported-by kernel test robot <[email protected]>Cc Neil Armstrong <[email protected]>Cc Kevin Hilman <[email protected]>Cc Jerome Brunet <[email protected]>Cc Martin Blumenstingl <[email protected]>Signed-off-by Kees Cook <[email protected]>--- drivers/firmware/meson/meson_sm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)drivers/firmware/meson/meson_sm.c +2
-2@@ -82,7 +82,7 @@ static void __iomem *meson_sm_map_shmem(u32 cmd_shmem, unsigned int size) sm_phy_base =__meson_sm_call (cmd_shmem,0 ,0 ,0 ,0 ,0 );if (!sm_phy_base) -return 0 ; +return NULL ;return ioremap_cache (sm_phy_base, size); }@@ -167,7 +167,7 @@ int meson_sm_call_read(struct meson_sm_firmware *fw, void *buffer, size = bsize;if (buffer) -memcpy (buffer, fw->sm_shmem_out_base, size); +memcpy_fromio (buffer, fw->sm_shmem_out_base, size);return ret; }
drivers/firmware/meson/meson_sm.c int meson_sm_call_write(struct meson_sm_firmware *fw, void *buffer, · line 209
Quoted 8 lines
drivers/firmware/meson/meson_sm.c +1
-1@@ -203,7 +203,7 @@ int meson_sm_call_write(struct meson_sm_firmware *fw, void *buffer,if (!fw->chip->cmd_shmem_in_base)return -EINVAL ; -memcpy (fw->sm_shmem_in_base, buffer, size); +memcpy_toio (fw->sm_shmem_in_base, buffer, size);if (meson_sm_call (fw, cmd_index, &written, arg0, arg1, arg2, arg3, arg4) <0 )return -EINVAL ;
Thanks,
Hi,
Quoted 22 lines · Kees Cook
Use memcpy_{toio,fromio}() instead of
memcpy(). Silences warnings from Sparse:
drivers/firmware/meson/meson_sm.c:170:17: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:170:17: expected void const *drivers/firmware/meson/meson_sm.c:170:17: got void [noderef]__iomem*sm_shmem_out_basedrivers/firmware/meson/meson_sm.c:170:17: warning: incorrect type in argument 2 (different address spaces)drivers/firmware/meson/meson_sm.c:170:17: expected void const *drivers/firmware/meson/meson_sm.c:170:17: got void [noderef]__iomem*sm_shmem_out_basedrivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:206:9: expected void const *drivers/firmware/meson/meson_sm.c:206:9: got void [noderef]__iomem*sm_shmem_in_basedrivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:206:9: expected void const *drivers/firmware/meson/meson_sm.c:206:9: got void [noderef]__iomem*sm_shmem_in_basedrivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:206:9: expected void const *drivers/firmware/meson/meson_sm.c:206:9: got void [noderef]__iomem*sm_shmem_in_basedrivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:206:9: expected void *drivers/firmware/meson/meson_sm.c:206:9: got void [noderef]__iomem*sm_shmem_in_base
Quoted 1 line
[...]
Thanks, Applied to https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git (v6.2/drivers)
[1/1] firmware: meson_sm: Fix memcpy vs iomem type warnings
https://git.kernel.org/amlogic/c/7dc69c7d073e6004a281db8f7f15cf6ebf702ea0
These changes has been applied on the intermediate git tree [1].
The v6.2/drivers branch will then be sent via a formal Pull Request to the Linux SoC maintainers for inclusion in their intermediate git branches in order to be sent to Linus during the next merge window, or sooner if it's a set of fixes.
In the cases of fixes, those will be merged in the current release candidate kernel and as soon they appear on the Linux master branch they will be backported to the previous Stable and Long-Stable kernels [2].
The intermediate git branches are merged daily in the linux-next tree [3], people are encouraged testing these pre-release kernels and report issues on the relevant mailing-lists.
If problems are discovered on those changes, please submit a signed-off-by revert patch followed by a corrective changeset.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
[3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
Signature · 1 line
Neil
*thread necromancy*
Quoted 46 lines · Neil Armstrong
Hi,
Quoted 22 lines · Kees Cook
Use memcpy_{toio,fromio}() instead of
memcpy(). Silences warnings from Sparse:
drivers/firmware/meson/meson_sm.c:170:17: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:170:17: expected void const *drivers/firmware/meson/meson_sm.c:170:17: got void [noderef]__iomem*sm_shmem_out_basedrivers/firmware/meson/meson_sm.c:170:17: warning: incorrect type in argument 2 (different address spaces)drivers/firmware/meson/meson_sm.c:170:17: expected void const *drivers/firmware/meson/meson_sm.c:170:17: got void [noderef]__iomem*sm_shmem_out_basedrivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:206:9: expected void const *drivers/firmware/meson/meson_sm.c:206:9: got void [noderef]__iomem*sm_shmem_in_basedrivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:206:9: expected void const *drivers/firmware/meson/meson_sm.c:206:9: got void [noderef]__iomem*sm_shmem_in_basedrivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:206:9: expected void const *drivers/firmware/meson/meson_sm.c:206:9: got void [noderef]__iomem*sm_shmem_in_basedrivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:206:9: expected void *drivers/firmware/meson/meson_sm.c:206:9: got void [noderef]__iomem*sm_shmem_in_baseQuoted 1 line
[...]
Thanks, Applied to https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git (v6.2/drivers)
[1/1] firmware:
meson_sm: Fix memcpy vs iomem type warningshttps://git.kernel.org/amlogic/c/7dc69c7d073e6004a281db8f7f15cf6ebf702ea0These changes has been applied on the intermediate git tree [1].
The v6.2/drivers branch will then be sent via a formal Pull Request to the Linux SoC maintainers for inclusion in their intermediate git branches in order to be sent to Linus during the next merge window, or sooner if it's a set of fixes.
In the cases of fixes, those will be merged in the current release candidate kernel and as soon they appear on the Linux master branch they will be backported to the previous Stable and Long-Stable kernels [2].
The intermediate git branches are merged daily in the linux-next tree [3], people are encouraged testing these pre-release kernels and report issues on the relevant mailing-lists.
Quoted 6 lines
If problems are discovered on those changes, please submit a signed-off-by revert patch followed by a corrective changeset.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
[3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
Hi! This change seems to have never been mainlined and seems to have disappeared from linux-next.
Signature · 1 line
Kees Cook
Neil Armstrong
maintainerQuoted 52 lines · Kees Cook
*thread necromancy*
Quoted 49 lines · Neil Armstrong
Hi,
Quoted 22 lines · Kees Cook
Use memcpy_{toio,fromio}() instead of
memcpy(). Silences warnings from Sparse:
drivers/firmware/meson/meson_sm.c:170:17: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:170:17: expected void const *drivers/firmware/meson/meson_sm.c:170:17: got void [noderef]__iomem*sm_shmem_out_basedrivers/firmware/meson/meson_sm.c:170:17: warning: incorrect type in argument 2 (different address spaces)drivers/firmware/meson/meson_sm.c:170:17: expected void const *drivers/firmware/meson/meson_sm.c:170:17: got void [noderef]__iomem*sm_shmem_out_basedrivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:206:9: expected void const *drivers/firmware/meson/meson_sm.c:206:9: got void [noderef]__iomem*sm_shmem_in_basedrivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:206:9: expected void const *drivers/firmware/meson/meson_sm.c:206:9: got void [noderef]__iomem*sm_shmem_in_basedrivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:206:9: expected void const *drivers/firmware/meson/meson_sm.c:206:9: got void [noderef]__iomem*sm_shmem_in_basedrivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:206:9: expected void *drivers/firmware/meson/meson_sm.c:206:9: got void [noderef]__iomem*sm_shmem_in_baseQuoted 1 line
[...]
Thanks, Applied to https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git (v6.2/drivers)
[1/1] firmware:
meson_sm: Fix memcpy vs iomem type warningshttps://git.kernel.org/amlogic/c/7dc69c7d073e6004a281db8f7f15cf6ebf702ea0These changes has been applied on the intermediate git tree [1].
The v6.2/drivers branch will then be sent via a formal Pull Request to the Linux SoC maintainers for inclusion in their intermediate git branches in order to be sent to Linus during the next merge window, or sooner if it's a set of fixes.
In the cases of fixes, those will be merged in the current release candidate kernel and as soon they appear on the Linux master branch they will be backported to the previous Stable and Long-Stable kernels [2].
The intermediate git branches are merged daily in the linux-next tree [3], people are encouraged testing these pre-release kernels and report issues on the relevant mailing-lists.
If problems are discovered on those changes, please submit a signed-off-by revert patch followed by a corrective changeset.
Quoted 7 lines
Quoted 3 lines
[1] https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
[3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.gitHi! This change seems to have never been mainlined and seems to have disappeared from linux-next.
Hi,
Indeed it was rejected by Arnd, but I failed to find time to investigate how to fix it
https://lore.kernel.org/all/[email protected]/
Neil
_______________________________________________
linux-amlogic mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-amlogic
Quoted 57 lines · Neil Armstrong
Quoted 56 lines · Kees Cook
*thread necromancy*
Quoted 52 lines · Neil Armstrong
Hi,
Quoted 22 lines · Kees Cook
Use memcpy_{toio,fromio}() instead of
memcpy(). Silences warnings from Sparse:
drivers/firmware/meson/meson_sm.c:170:17: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:170:17: expected void const *drivers/firmware/meson/meson_sm.c:170:17: got void [noderef]__iomem*sm_shmem_out_basedrivers/firmware/meson/meson_sm.c:170:17: warning: incorrect type in argument 2 (different address spaces)drivers/firmware/meson/meson_sm.c:170:17: expected void const *drivers/firmware/meson/meson_sm.c:170:17: got void [noderef]__iomem*sm_shmem_out_basedrivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:206:9: expected void const *drivers/firmware/meson/meson_sm.c:206:9: got void [noderef]__iomem*sm_shmem_in_basedrivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:206:9: expected void const *drivers/firmware/meson/meson_sm.c:206:9: got void [noderef]__iomem*sm_shmem_in_basedrivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:206:9: expected void const *drivers/firmware/meson/meson_sm.c:206:9: got void [noderef]__iomem*sm_shmem_in_basedrivers/firmware/meson/meson_sm.c:206:9: warning: incorrect type in argument 1 (different address spaces)drivers/firmware/meson/meson_sm.c:206:9: expected void *drivers/firmware/meson/meson_sm.c:206:9: got void [noderef]__iomem*sm_shmem_in_baseQuoted 1 line
[...]
Thanks, Applied to https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git (v6.2/drivers)
[1/1] firmware:
meson_sm: Fix memcpy vs iomem type warningshttps://git.kernel.org/amlogic/c/7dc69c7d073e6004a281db8f7f15cf6ebf702ea0These changes has been applied on the intermediate git tree [1].
The v6.2/drivers branch will then be sent via a formal Pull Request to the Linux SoC maintainers for inclusion in their intermediate git branches in order to be sent to Linus during the next merge window, or sooner if it's a set of fixes.
In the cases of fixes, those will be merged in the current release candidate kernel and as soon they appear on the Linux master branch they will be backported to the previous Stable and Long-Stable kernels [2].
The intermediate git branches are merged daily in the linux-next tree [3], people are encouraged testing these pre-release kernels and report issues on the relevant mailing-lists.
If problems are discovered on those changes, please submit a signed-off-by revert patch followed by a corrective changeset.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
[3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
Quoted 8 lines
Quoted 3 lines
Hi! This change seems to have never been mainlined and seems to have disappeared from linux-next.
Hi,
Indeed it was rejected by Arnd, but I failed to find time to investigate how to fix it
Ah-ha! Thanks for the pointer.
Signature · 1 line
Kees Cook