Message ID | 20221012185234.never.936-kees@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | firmware: meson_sm: Fix memcpy vs iomem type warnings | expand |
On 12/10/2022 20:53, Kees Cook wrote: > 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_base > drivers/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_base > drivers/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_base > drivers/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_base > drivers/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_base > drivers/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 > > Reported-by: kernel test robot <lkp@intel.com> > Link: https://lore.kernel.org/lkml/202210122023.zF56nCzM-lkp@intel.com > Cc: Neil Armstrong <narmstrong@baylibre.com> > Cc: Kevin Hilman <khilman@baylibre.com> > Cc: Jerome Brunet <jbrunet@baylibre.com> > Cc: Martin Blumenstingl <martin.blumenstingl@googlemail.com> > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-amlogic@lists.infradead.org > Signed-off-by: Kees Cook <keescook@chromium.org> > --- > drivers/firmware/meson/meson_sm.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/firmware/meson/meson_sm.c b/drivers/firmware/meson/meson_sm.c > index 77aa5c6398aa..4efde225a580 100644 > --- a/drivers/firmware/meson/meson_sm.c > +++ b/drivers/firmware/meson/meson_sm.c > @@ -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; Thanks, Acked-by: Neil Armstrong <neil.armstrong@linaro.org>
Hi, On Wed, 12 Oct 2022 11:53:16 -0700, Kees Cook wrote: > 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_base > drivers/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_base > drivers/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_base > drivers/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_base > drivers/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_base > drivers/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 > > [...] 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
*thread necromancy* On Mon, Oct 17, 2022 at 05:25:13PM +0200, Neil Armstrong wrote: > Hi, > > On Wed, 12 Oct 2022 11:53:16 -0700, Kees Cook wrote: > > 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_base > > drivers/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_base > > drivers/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_base > > drivers/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_base > > drivers/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_base > > drivers/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 > > > > [...] > > 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 Hi! This change seems to have never been mainlined and seems to have disappeared from linux-next.
On 17/05/2023 20:25, Kees Cook wrote: > *thread necromancy* > > On Mon, Oct 17, 2022 at 05:25:13PM +0200, Neil Armstrong wrote: >> Hi, >> >> On Wed, 12 Oct 2022 11:53:16 -0700, Kees Cook wrote: >>> 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_base >>> drivers/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_base >>> drivers/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_base >>> drivers/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_base >>> drivers/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_base >>> drivers/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 >>> >>> [...] >> >> 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 > > 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 https://lore.kernel.org/all/4a6b34ef-f5d2-4e56-a7f6-6a7c9cdda416@app.fastmail.com/ Neil
On Wed, May 31, 2023 at 10:59:14AM +0200, Neil Armstrong wrote: > On 17/05/2023 20:25, Kees Cook wrote: > > *thread necromancy* > > > > On Mon, Oct 17, 2022 at 05:25:13PM +0200, Neil Armstrong wrote: > > > Hi, > > > > > > On Wed, 12 Oct 2022 11:53:16 -0700, Kees Cook wrote: > > > > 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_base > > > > drivers/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_base > > > > drivers/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_base > > > > drivers/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_base > > > > drivers/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_base > > > > drivers/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 > > > > > > > > [...] > > > > > > 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 > > > > 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 > > https://lore.kernel.org/all/4a6b34ef-f5d2-4e56-a7f6-6a7c9cdda416@app.fastmail.com/ Ah-ha! Thanks for the pointer.
diff --git a/drivers/firmware/meson/meson_sm.c b/drivers/firmware/meson/meson_sm.c index 77aa5c6398aa..4efde225a580 100644 --- a/drivers/firmware/meson/meson_sm.c +++ b/drivers/firmware/meson/meson_sm.c @@ -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;
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_base drivers/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_base drivers/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_base drivers/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_base drivers/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_base drivers/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 Reported-by: kernel test robot <lkp@intel.com> Link: https://lore.kernel.org/lkml/202210122023.zF56nCzM-lkp@intel.com Cc: Neil Armstrong <narmstrong@baylibre.com> Cc: Kevin Hilman <khilman@baylibre.com> Cc: Jerome Brunet <jbrunet@baylibre.com> Cc: Martin Blumenstingl <martin.blumenstingl@googlemail.com> Cc: linux-arm-kernel@lists.infradead.org Cc: linux-amlogic@lists.infradead.org Signed-off-by: Kees Cook <keescook@chromium.org> --- drivers/firmware/meson/meson_sm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)