2023-04-07 16:24:15

by Mathieu Poirier

[permalink] [raw]
Subject: [PATCH] remoteproc: imx_dsp_rproc: Fix kernel test robot sparse warning

This patch fixes the kernel test robot warning reported here:

https://lore.kernel.org/bpf/642f916b.pPIKZ%2Fl%2F%2Fbw8tvIH%[email protected]/T/

Fixes: 408ec1ff0caa ("remoteproc: imx_dsp_rproc: Add custom memory copy implementation for i.MX DSP Cores")
Signed-off-by: Mathieu Poirier <[email protected]>
---

Iuliana - please thest this on your side

---
drivers/remoteproc/imx_dsp_rproc.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/remoteproc/imx_dsp_rproc.c b/drivers/remoteproc/imx_dsp_rproc.c
index 21759d9e5b7b..c805cb83cacc 100644
--- a/drivers/remoteproc/imx_dsp_rproc.c
+++ b/drivers/remoteproc/imx_dsp_rproc.c
@@ -750,12 +750,12 @@ static void imx_dsp_rproc_kick(struct rproc *rproc, int vqid)
* The IRAM is part of the HiFi DSP.
* According to hw specs only 32-bits writes are allowed.
*/
-static int imx_dsp_rproc_memcpy(void *dest, const void *src, size_t size)
+static int imx_dsp_rproc_memcpy(void *dst, const void *src, size_t size)
{
+ void __iomem *dest = (void __iomem *)dst;
const u8 *src_byte = src;
const u32 *source = src;
u32 affected_mask;
- u32 *dst = dest;
int i, q, r;
u32 tmp;

@@ -768,7 +768,7 @@ static int imx_dsp_rproc_memcpy(void *dest, const void *src, size_t size)

/* copy data in units of 32 bits at a time */
for (i = 0; i < q; i++)
- writel(source[i], &dst[i]);
+ writel(source[i], dest + i * 4);

if (r) {
affected_mask = GENMASK(8 * r, 0);
@@ -799,8 +799,8 @@ static int imx_dsp_rproc_memcpy(void *dest, const void *src, size_t size)
*/
static int imx_dsp_rproc_memset(void *addr, u8 value, size_t size)
{
+ void __iomem *tmp_dst = (void __iomem *)addr;
u32 tmp_val = value;
- u32 *tmp_dst = addr;
u32 affected_mask;
int q, r;
u32 tmp;
--
2.25.1


2023-04-10 23:41:06

by Iuliana Prodan

[permalink] [raw]
Subject: Re: [PATCH] remoteproc: imx_dsp_rproc: Fix kernel test robot sparse warning

On 4/7/2023 7:14 PM, Mathieu Poirier wrote:
> This patch fixes the kernel test robot warning reported here:
>
> https://lore.kernel.org/bpf/642f916b.pPIKZ%2Fl%2F%2Fbw8tvIH%[email protected]/T/
>
> Fixes: 408ec1ff0caa ("remoteproc: imx_dsp_rproc: Add custom memory copy implementation for i.MX DSP Cores")
> Signed-off-by: Mathieu Poirier <[email protected]>

Tested-by: Iuliana Prodan <[email protected]>
Reviewed-by: Iuliana Prodan <[email protected]>

Thanks,
Iulia


> ---
>
> Iuliana - please thest this on your side
>
> ---
> drivers/remoteproc/imx_dsp_rproc.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/remoteproc/imx_dsp_rproc.c b/drivers/remoteproc/imx_dsp_rproc.c
> index 21759d9e5b7b..c805cb83cacc 100644
> --- a/drivers/remoteproc/imx_dsp_rproc.c
> +++ b/drivers/remoteproc/imx_dsp_rproc.c
> @@ -750,12 +750,12 @@ static void imx_dsp_rproc_kick(struct rproc *rproc, int vqid)
> * The IRAM is part of the HiFi DSP.
> * According to hw specs only 32-bits writes are allowed.
> */
> -static int imx_dsp_rproc_memcpy(void *dest, const void *src, size_t size)
> +static int imx_dsp_rproc_memcpy(void *dst, const void *src, size_t size)
> {
> + void __iomem *dest = (void __iomem *)dst;
> const u8 *src_byte = src;
> const u32 *source = src;
> u32 affected_mask;
> - u32 *dst = dest;
> int i, q, r;
> u32 tmp;
>
> @@ -768,7 +768,7 @@ static int imx_dsp_rproc_memcpy(void *dest, const void *src, size_t size)
>
> /* copy data in units of 32 bits at a time */
> for (i = 0; i < q; i++)
> - writel(source[i], &dst[i]);
> + writel(source[i], dest + i * 4);
>
> if (r) {
> affected_mask = GENMASK(8 * r, 0);
> @@ -799,8 +799,8 @@ static int imx_dsp_rproc_memcpy(void *dest, const void *src, size_t size)
> */
> static int imx_dsp_rproc_memset(void *addr, u8 value, size_t size)
> {
> + void __iomem *tmp_dst = (void __iomem *)addr;
> u32 tmp_val = value;
> - u32 *tmp_dst = addr;
> u32 affected_mask;
> int q, r;
> u32 tmp;

2023-04-11 17:24:43

by Mathieu Poirier

[permalink] [raw]
Subject: Re: [PATCH] remoteproc: imx_dsp_rproc: Fix kernel test robot sparse warning

On Tue, Apr 11, 2023 at 02:28:34AM +0300, Iuliana Prodan wrote:
> On 4/7/2023 7:14 PM, Mathieu Poirier wrote:
> > This patch fixes the kernel test robot warning reported here:
> >
> > https://lore.kernel.org/bpf/642f916b.pPIKZ%2Fl%2F%2Fbw8tvIH%[email protected]/T/
> >
> > Fixes: 408ec1ff0caa ("remoteproc: imx_dsp_rproc: Add custom memory copy implementation for i.MX DSP Cores")
> > Signed-off-by: Mathieu Poirier <[email protected]>
>
> Tested-by: Iuliana Prodan <[email protected]>
> Reviewed-by: Iuliana Prodan <[email protected]>
>

Applied

> Thanks,
> Iulia
>
>
> > ---
> >
> > Iuliana - please thest this on your side
> >
> > ---
> > drivers/remoteproc/imx_dsp_rproc.c | 8 ++++----
> > 1 file changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/remoteproc/imx_dsp_rproc.c b/drivers/remoteproc/imx_dsp_rproc.c
> > index 21759d9e5b7b..c805cb83cacc 100644
> > --- a/drivers/remoteproc/imx_dsp_rproc.c
> > +++ b/drivers/remoteproc/imx_dsp_rproc.c
> > @@ -750,12 +750,12 @@ static void imx_dsp_rproc_kick(struct rproc *rproc, int vqid)
> > * The IRAM is part of the HiFi DSP.
> > * According to hw specs only 32-bits writes are allowed.
> > */
> > -static int imx_dsp_rproc_memcpy(void *dest, const void *src, size_t size)
> > +static int imx_dsp_rproc_memcpy(void *dst, const void *src, size_t size)
> > {
> > + void __iomem *dest = (void __iomem *)dst;
> > const u8 *src_byte = src;
> > const u32 *source = src;
> > u32 affected_mask;
> > - u32 *dst = dest;
> > int i, q, r;
> > u32 tmp;
> > @@ -768,7 +768,7 @@ static int imx_dsp_rproc_memcpy(void *dest, const void *src, size_t size)
> > /* copy data in units of 32 bits at a time */
> > for (i = 0; i < q; i++)
> > - writel(source[i], &dst[i]);
> > + writel(source[i], dest + i * 4);
> > if (r) {
> > affected_mask = GENMASK(8 * r, 0);
> > @@ -799,8 +799,8 @@ static int imx_dsp_rproc_memcpy(void *dest, const void *src, size_t size)
> > */
> > static int imx_dsp_rproc_memset(void *addr, u8 value, size_t size)
> > {
> > + void __iomem *tmp_dst = (void __iomem *)addr;
> > u32 tmp_val = value;
> > - u32 *tmp_dst = addr;
> > u32 affected_mask;
> > int q, r;
> > u32 tmp;