Message ID | 20221118074755.121424-1-yuancan@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | remoteproc: omap_remoteproc: Fix compile errors about casting | expand |
On Fri, Nov 18, 2022 at 07:47:55AM +0000, Yuan Can wrote: > The following errors was given when compiling > drivers/remoteproc/omap_remoteproc.c: > > drivers/remoteproc/omap_remoteproc.c: In function ‘omap_rproc_mbox_callback’: > drivers/remoteproc/omap_remoteproc.c:497:12: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] > u32 msg = (u32)data; > ^ > drivers/remoteproc/omap_remoteproc.c: In function ‘omap_rproc_kick’: > drivers/remoteproc/omap_remoteproc.c:548:39: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] > ret = mbox_send_message(oproc->mbox, (void *)vqid); > ^ > drivers/remoteproc/omap_remoteproc.c: In function ‘_omap_rproc_suspend’: > drivers/remoteproc/omap_remoteproc.c:783:39: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] > ret = mbox_send_message(oproc->mbox, (void *)suspend_msg); > ^ > In file included from ./include/linux/device.h:15, > from ./include/linux/node.h:18, > from ./include/linux/cpu.h:17, > from ./include/linux/of_device.h:5, > from drivers/remoteproc/omap_remoteproc.c:22: > drivers/remoteproc/omap_remoteproc.c: In function ‘omap_rproc_of_get_internal_memories’: > drivers/remoteproc/omap_remoteproc.c:1211:16: error: format ‘%x’ expects argument of type ‘unsigned int’, but argument 6 has type ‘size_t’ {aka ‘long unsigned int’} [-Werror=format=] > dev_dbg(dev, "memory %8s: bus addr %pa size 0x%x va %pK da 0x%x\n", > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > I am not seeing any of this on my side with gcc 9.4.0: $ arm-linux-gnueabihf-gcc --version arm-linux-gnueabihf-gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 What version do you use? Thanks, Mathieu > Fixes: 8841a66aaa7c ("mailbox/omap: adapt to the new mailbox framework") > Fixes: 5f31b232c674 ("remoteproc/omap: Add support for runtime auto-suspend/resume") > Fixes: 4a032199d3f7 ("remoteproc/omap: Add support to parse internal memories from DT") > Signed-off-by: Yuan Can <yuancan@huawei.com> > --- > drivers/remoteproc/omap_remoteproc.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/remoteproc/omap_remoteproc.c b/drivers/remoteproc/omap_remoteproc.c > index 430fab0266ed..be43b5d85e2b 100644 > --- a/drivers/remoteproc/omap_remoteproc.c > +++ b/drivers/remoteproc/omap_remoteproc.c > @@ -494,7 +494,7 @@ static void omap_rproc_mbox_callback(struct mbox_client *client, void *data) > client); > struct device *dev = oproc->rproc->dev.parent; > const char *name = oproc->rproc->name; > - u32 msg = (u32)data; > + u32 msg = (u32)(unsigned long)data; > > dev_dbg(dev, "mbox msg: 0x%x\n", msg); > > @@ -545,7 +545,7 @@ static void omap_rproc_kick(struct rproc *rproc, int vqid) > } > > /* send the index of the triggered virtqueue in the mailbox payload */ > - ret = mbox_send_message(oproc->mbox, (void *)vqid); > + ret = mbox_send_message(oproc->mbox, (void *)(unsigned long)vqid); > if (ret < 0) > dev_err(dev, "failed to send mailbox message, status = %d\n", > ret); > @@ -780,7 +780,7 @@ static int _omap_rproc_suspend(struct rproc *rproc, bool auto_suspend) > > reinit_completion(&oproc->pm_comp); > oproc->suspend_acked = false; > - ret = mbox_send_message(oproc->mbox, (void *)suspend_msg); > + ret = mbox_send_message(oproc->mbox, (void *)(unsigned long)suspend_msg); > if (ret < 0) { > dev_err(dev, "PM mbox_send_message failed: %d\n", ret); > return ret; > @@ -1208,7 +1208,7 @@ static int omap_rproc_of_get_internal_memories(struct platform_device *pdev, > oproc->mem[i].dev_addr = data->mems[i].dev_addr; > oproc->mem[i].size = resource_size(res); > > - dev_dbg(dev, "memory %8s: bus addr %pa size 0x%x va %pK da 0x%x\n", > + dev_dbg(dev, "memory %8s: bus addr %pa size 0x%zx va %pK da 0x%x\n", > data->mems[i].name, &oproc->mem[i].bus_addr, > oproc->mem[i].size, oproc->mem[i].cpu_addr, > oproc->mem[i].dev_addr); > -- > 2.17.1 >
在 2022/11/22 1:25, Mathieu Poirier 写道: > On Fri, Nov 18, 2022 at 07:47:55AM +0000, Yuan Can wrote: >> The following errors was given when compiling >> drivers/remoteproc/omap_remoteproc.c: >> >> drivers/remoteproc/omap_remoteproc.c: In function ‘omap_rproc_mbox_callback’: >> drivers/remoteproc/omap_remoteproc.c:497:12: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] >> u32 msg = (u32)data; >> ^ >> drivers/remoteproc/omap_remoteproc.c: In function ‘omap_rproc_kick’: >> drivers/remoteproc/omap_remoteproc.c:548:39: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] >> ret = mbox_send_message(oproc->mbox, (void *)vqid); >> ^ >> drivers/remoteproc/omap_remoteproc.c: In function ‘_omap_rproc_suspend’: >> drivers/remoteproc/omap_remoteproc.c:783:39: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] >> ret = mbox_send_message(oproc->mbox, (void *)suspend_msg); >> ^ >> In file included from ./include/linux/device.h:15, >> from ./include/linux/node.h:18, >> from ./include/linux/cpu.h:17, >> from ./include/linux/of_device.h:5, >> from drivers/remoteproc/omap_remoteproc.c:22: >> drivers/remoteproc/omap_remoteproc.c: In function ‘omap_rproc_of_get_internal_memories’: >> drivers/remoteproc/omap_remoteproc.c:1211:16: error: format ‘%x’ expects argument of type ‘unsigned int’, but argument 6 has type ‘size_t’ {aka ‘long unsigned int’} [-Werror=format=] >> dev_dbg(dev, "memory %8s: bus addr %pa size 0x%x va %pK da 0x%x\n", >> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> > I am not seeing any of this on my side with gcc 9.4.0: > > $ arm-linux-gnueabihf-gcc --version > arm-linux-gnueabihf-gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 > > What version do you use? Thanks for the reply, I was working with the wrong cross compiler, sorry about the noise.
Hi Yuan, On 22/11/22 03:03, Yuan Can wrote: > 在 2022/11/22 1:25, Mathieu Poirier 写道: >> On Fri, Nov 18, 2022 at 07:47:55AM +0000, Yuan Can wrote: >>> The following errors was given when compiling >>> drivers/remoteproc/omap_remoteproc.c: >>> >>> drivers/remoteproc/omap_remoteproc.c: In function >>> ‘omap_rproc_mbox_callback’: >>> drivers/remoteproc/omap_remoteproc.c:497:12: error: cast from pointer >>> to integer of different size [-Werror=pointer-to-int-cast] >>> u32 msg = (u32)data; >>> ^ >>> drivers/remoteproc/omap_remoteproc.c: In function ‘omap_rproc_kick’: >>> drivers/remoteproc/omap_remoteproc.c:548:39: error: cast to pointer >>> from integer of different size [-Werror=int-to-pointer-cast] >>> ret = mbox_send_message(oproc->mbox, (void *)vqid); >>> ^ >>> drivers/remoteproc/omap_remoteproc.c: In function ‘_omap_rproc_suspend’: >>> drivers/remoteproc/omap_remoteproc.c:783:39: error: cast to pointer >>> from integer of different size [-Werror=int-to-pointer-cast] >>> ret = mbox_send_message(oproc->mbox, (void *)suspend_msg); >>> ^ >>> In file included from ./include/linux/device.h:15, >>> from ./include/linux/node.h:18, >>> from ./include/linux/cpu.h:17, >>> from ./include/linux/of_device.h:5, >>> from drivers/remoteproc/omap_remoteproc.c:22: >>> drivers/remoteproc/omap_remoteproc.c: In function >>> ‘omap_rproc_of_get_internal_memories’: >>> drivers/remoteproc/omap_remoteproc.c:1211:16: error: format ‘%x’ >>> expects argument of type ‘unsigned int’, but argument 6 has type >>> ‘size_t’ {aka ‘long unsigned int’} [-Werror=format=] >>> dev_dbg(dev, "memory %8s: bus addr %pa size 0x%x va %pK da 0x%x\n", >>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>> >> I am not seeing any of this on my side with gcc 9.4.0: >> >> $ arm-linux-gnueabihf-gcc --version >> arm-linux-gnueabihf-gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 >> >> What version do you use? > Thanks for the reply, I was working with the wrong cross compiler, sorry > about the noise. Don't worry about being noisy ;) What would have helped here is if you mentioned the version of the compiler you used in the commit description (usually the output of '$CC --version'). Back to your patch content, the format string fix is correct (the 3rd hunk). Regard, Phil.
diff --git a/drivers/remoteproc/omap_remoteproc.c b/drivers/remoteproc/omap_remoteproc.c index 430fab0266ed..be43b5d85e2b 100644 --- a/drivers/remoteproc/omap_remoteproc.c +++ b/drivers/remoteproc/omap_remoteproc.c @@ -494,7 +494,7 @@ static void omap_rproc_mbox_callback(struct mbox_client *client, void *data) client); struct device *dev = oproc->rproc->dev.parent; const char *name = oproc->rproc->name; - u32 msg = (u32)data; + u32 msg = (u32)(unsigned long)data; dev_dbg(dev, "mbox msg: 0x%x\n", msg); @@ -545,7 +545,7 @@ static void omap_rproc_kick(struct rproc *rproc, int vqid) } /* send the index of the triggered virtqueue in the mailbox payload */ - ret = mbox_send_message(oproc->mbox, (void *)vqid); + ret = mbox_send_message(oproc->mbox, (void *)(unsigned long)vqid); if (ret < 0) dev_err(dev, "failed to send mailbox message, status = %d\n", ret); @@ -780,7 +780,7 @@ static int _omap_rproc_suspend(struct rproc *rproc, bool auto_suspend) reinit_completion(&oproc->pm_comp); oproc->suspend_acked = false; - ret = mbox_send_message(oproc->mbox, (void *)suspend_msg); + ret = mbox_send_message(oproc->mbox, (void *)(unsigned long)suspend_msg); if (ret < 0) { dev_err(dev, "PM mbox_send_message failed: %d\n", ret); return ret; @@ -1208,7 +1208,7 @@ static int omap_rproc_of_get_internal_memories(struct platform_device *pdev, oproc->mem[i].dev_addr = data->mems[i].dev_addr; oproc->mem[i].size = resource_size(res); - dev_dbg(dev, "memory %8s: bus addr %pa size 0x%x va %pK da 0x%x\n", + dev_dbg(dev, "memory %8s: bus addr %pa size 0x%zx va %pK da 0x%x\n", data->mems[i].name, &oproc->mem[i].bus_addr, oproc->mem[i].size, oproc->mem[i].cpu_addr, oproc->mem[i].dev_addr);
The following errors was given when compiling drivers/remoteproc/omap_remoteproc.c: drivers/remoteproc/omap_remoteproc.c: In function ‘omap_rproc_mbox_callback’: drivers/remoteproc/omap_remoteproc.c:497:12: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] u32 msg = (u32)data; ^ drivers/remoteproc/omap_remoteproc.c: In function ‘omap_rproc_kick’: drivers/remoteproc/omap_remoteproc.c:548:39: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] ret = mbox_send_message(oproc->mbox, (void *)vqid); ^ drivers/remoteproc/omap_remoteproc.c: In function ‘_omap_rproc_suspend’: drivers/remoteproc/omap_remoteproc.c:783:39: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] ret = mbox_send_message(oproc->mbox, (void *)suspend_msg); ^ In file included from ./include/linux/device.h:15, from ./include/linux/node.h:18, from ./include/linux/cpu.h:17, from ./include/linux/of_device.h:5, from drivers/remoteproc/omap_remoteproc.c:22: drivers/remoteproc/omap_remoteproc.c: In function ‘omap_rproc_of_get_internal_memories’: drivers/remoteproc/omap_remoteproc.c:1211:16: error: format ‘%x’ expects argument of type ‘unsigned int’, but argument 6 has type ‘size_t’ {aka ‘long unsigned int’} [-Werror=format=] dev_dbg(dev, "memory %8s: bus addr %pa size 0x%x va %pK da 0x%x\n", ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Fixes: 8841a66aaa7c ("mailbox/omap: adapt to the new mailbox framework") Fixes: 5f31b232c674 ("remoteproc/omap: Add support for runtime auto-suspend/resume") Fixes: 4a032199d3f7 ("remoteproc/omap: Add support to parse internal memories from DT") Signed-off-by: Yuan Can <yuancan@huawei.com> --- drivers/remoteproc/omap_remoteproc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)