Thread (9 messages) 9 messages, 3 authors, 2021-07-29

RE: [PATCH v5 3/3] drivers: dma: sh: Add DMAC driver for RZ/G2L SoC

From: Biju Das <biju.das.jz@bp.renesas.com>
Date: 2021-07-29 13:26:56
Also in: linux-renesas-soc

Hi All,

Looks like there is compiler issue with nios2 cross compilation toolchain.

As per the kernel documentation %pad is the format specifier for dma_addr_t.

This toolchain does not like it. Please let me know if I am missing any thing here.

The changes I made to fix the issue reported by bot:-
-------------------
+++ b/drivers/dma/sh/rz-dmac.c
@@ -475,7 +475,7 @@ rz_dmac_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
        struct rz_dmac *dmac = to_rz_dmac(chan->device);
        struct rz_dmac_desc *desc;
 
-       dev_dbg(dmac->dev, "%s channel: %d src=0x%llx dst=0x%llx len=%ld\n",
+       dev_dbg(dmac->dev, "%s channel: %d src=%pad dst=%pad len=%zx\n",
                __func__, channel->index, src, dest, len);
 
        if (list_empty(&channel->ld_free))
compilation logs:-
------------------
dasb@ree-du1sdd5:~/dmaengine$ COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 ~/bin/make.cross ARCH=nios2 
Compiler will be installed in /data/dasb/0day
make --keep-going CONFIG_OF_ALL_DTBS=y CONFIG_DTC=y CROSS_COMPILE=/data/dasb/0day/gcc-10.3.0-nolibc/nios2-linux/bin/nios2-linux- --jobs=48 ARCH=nios2
  CALL    scripts/atomic/check-atomics.sh
  CALL    scripts/checksyscalls.sh
<stdin>:1515:2: warning: #warning syscall clone3 not implemented [-Wcpp]
  CHK     include/generated/compile.h
make[1]: *** No rule to make target 'arch/nios2/boot/dts/""', needed by 'arch/nios2/boot/dts/built-in.a'.
make[1]: Target '__build' not remade because of errors.
make: *** [Makefile:1842: arch/nios2/boot/dts] Error 2
  CC      drivers/dma/sh/rz-dmac.o
In file included from ./include/linux/printk.h:456,
                 from ./include/asm-generic/bug.h:22,
                 from ./arch/nios2/include/generated/asm/bug.h:1,
                 from ./include/linux/bug.h:5,
                 from ./include/linux/thread_info.h:13,
                 from ./include/asm-generic/current.h:5,
                 from ./arch/nios2/include/generated/asm/current.h:1,
                 from ./include/linux/sched.h:12,
                 from ./include/linux/ratelimit.h:6,
                 from ./include/linux/dev_printk.h:16,
                 from ./include/linux/device.h:15,
                 from ./include/linux/dma-mapping.h:7,
                 from drivers/dma/sh/rz-dmac.c:12:
drivers/dma/sh/rz-dmac.c: In function 'rz_dmac_prep_dma_memcpy':
drivers/dma/sh/rz-dmac.c:478:21: warning: format '%p' expects argument of type 'void *', but argument 6 has type 'dma_addr_t' {aka 'unsigned int'} [-Wformat=]
  478 |  dev_dbg(dmac->dev, "%s channel: %d src=%pad dst=%pad len=%zx\n",
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/dynamic_debug.h:134:15: note: in definition of macro '__dynamic_func_call'
  134 |   func(&id, ##__VA_ARGS__);  \
      |               ^~~~~~~~~~~
./include/linux/dynamic_debug.h:166:2: note: in expansion of macro '_dynamic_func_call'
  166 |  _dynamic_func_call(fmt,__dynamic_dev_dbg,   \
      |  ^~~~~~~~~~~~~~~~~~
./include/linux/dev_printk.h:123:2: note: in expansion of macro 'dynamic_dev_dbg'
  123 |  dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
      |  ^~~~~~~~~~~~~~~
./include/linux/dev_printk.h:123:23: note: in expansion of macro 'dev_fmt'
  123 |  dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
      |                       ^~~~~~~
drivers/dma/sh/rz-dmac.c:478:2: note: in expansion of macro 'dev_dbg'
  478 |  dev_dbg(dmac->dev, "%s channel: %d src=%pad dst=%pad len=%zx\n",
      |  ^~~~~~~
drivers/dma/sh/rz-dmac.c:478:42: note: format string is defined here
  478 |  dev_dbg(dmac->dev, "%s channel: %d src=%pad dst=%pad len=%zx\n",
      |                                         ~^
      |                                          |
      |                                          void *
      |                                         %d
In file included from ./include/linux/printk.h:456,
                 from ./include/asm-generic/bug.h:22,
                 from ./arch/nios2/include/generated/asm/bug.h:1,
                 from ./include/linux/bug.h:5,
                 from ./include/linux/thread_info.h:13,
                 from ./include/asm-generic/current.h:5,
                 from ./arch/nios2/include/generated/asm/current.h:1,
                 from ./include/linux/sched.h:12,
                 from ./include/linux/ratelimit.h:6,
                 from ./include/linux/dev_printk.h:16,
                 from ./include/linux/device.h:15,
                 from ./include/linux/dma-mapping.h:7,
                 from drivers/dma/sh/rz-dmac.c:12:
drivers/dma/sh/rz-dmac.c:478:21: warning: format '%p' expects argument of type 'void *', but argument 7 has type 'dma_addr_t' {aka 'unsigned int'} [-Wformat=]
  478 |  dev_dbg(dmac->dev, "%s channel: %d src=%pad dst=%pad len=%zx\n",
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/dynamic_debug.h:134:15: note: in definition of macro '__dynamic_func_call'
  134 |   func(&id, ##__VA_ARGS__);  \
      |               ^~~~~~~~~~~
./include/linux/dynamic_debug.h:166:2: note: in expansion of macro '_dynamic_func_call'
  166 |  _dynamic_func_call(fmt,__dynamic_dev_dbg,   \
      |  ^~~~~~~~~~~~~~~~~~
./include/linux/dev_printk.h:123:2: note: in expansion of macro 'dynamic_dev_dbg'
  123 |  dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
      |  ^~~~~~~~~~~~~~~
./include/linux/dev_printk.h:123:23: note: in expansion of macro 'dev_fmt'
  123 |  dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
      |                       ^~~~~~~
drivers/dma/sh/rz-dmac.c:478:2: note: in expansion of macro 'dev_dbg'
  478 |  dev_dbg(dmac->dev, "%s channel: %d src=%pad dst=%pad len=%zx\n",
      |  ^~~~~~~
drivers/dma/sh/rz-dmac.c:478:51: note: format string is defined here
  478 |  dev_dbg(dmac->dev, "%s channel: %d src=%pad dst=%pad len=%zx\n",
      |                                                  ~^
      |                                                   |
      |                                                   void *
      |                                                  %d
  CHK     kernel/kheaders_data.tar.xz
  AR      drivers/dma/sh/built-in.a
  AR      drivers/dma/built-in.a
  AR      drivers/built-in.a
make: Target '__all' not remade because of errors.

Regards,
Biju
-----Original Message-----
From: kernel test robot <redacted>
Sent: 29 July 2021 12:34
To: Biju Das <biju.das.jz@bp.renesas.com>; Vinod Koul <vkoul@kernel.org>
Cc: kbuild-all@lists.01.org; Biju Das <biju.das.jz@bp.renesas.com>;
Prabhakar Mahadev Lad [off-list ref]; Chris
Paterson [off-list ref]; Geert Uytterhoeven
[off-list ref]; dmaengine@vger.kernel.org; Chris Brandt
[off-list ref]; linux-renesas-soc@vger.kernel.org
Subject: Re: [PATCH v5 3/3] drivers: dma: sh: Add DMAC driver for RZ/G2L
SoC

Hi Biju,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on vkoul-dmaengine/next] [also build test WARNING
on robh/for-next v5.14-rc3 next-20210728] [If your patch is applied to the
wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit-
scm.com%2Fdocs%2Fgit-format-
patch&amp;data=04%7C01%7Cbiju.das.jz%40bp.renesas.com%7C542bfff2887f488c2f
ef08d95284c66f%7C53d82571da1947e49cb4625a166a4a2a%7C0%7C0%7C63763155516672
5253%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6I
k1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=TJFcD19oJIJ3tWbNwldGo4xy2aaAouJnopP
yZQ2tixo%3D&amp;reserved=0]

url:
https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.c
om%2F0day-ci%2Flinux%2Fcommits%2FBiju-Das%2FAdd-RZ-G2L-DMAC-
support%2F20210729-
162632&amp;data=04%7C01%7Cbiju.das.jz%40bp.renesas.com%7C542bfff2887f488c2
fef08d95284c66f%7C53d82571da1947e49cb4625a166a4a2a%7C0%7C0%7C6376315551667
25253%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6
Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=%2Bg8o5Ec95AfQ5n39E6cJ6lnsziARXpVw
g%2BRoQgBYQks%3D&amp;reserved=0
base:
https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.kern
el.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Fvkoul%2Fdmaengine.git&amp;data
=04%7C01%7Cbiju.das.jz%40bp.renesas.com%7C542bfff2887f488c2fef08d95284c66f
%7C53d82571da1947e49cb4625a166a4a2a%7C0%7C0%7C637631555166725253%7CUnknown
%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI
6Mn0%3D%7C1000&amp;sdata=PLRxI4C7cMH0H4QS6Dv045x8zx%2BIlFeb0mV0QLwfNbQ%3D&
amp;reserved=0 next
config: nios2-allyesconfig (attached as .config)
compiler: nios2-linux-gcc (GCC) 10.3.0
reproduce (this is a W=1 build):
        wget
https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fraw.gith
ubusercontent.com%2Fintel%2Flkp-
tests%2Fmaster%2Fsbin%2Fmake.cross&amp;data=04%7C01%7Cbiju.das.jz%40bp.ren
esas.com%7C542bfff2887f488c2fef08d95284c66f%7C53d82571da1947e49cb4625a166a
4a2a%7C0%7C0%7C637631555166725253%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAw
MDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=mRWtzY
YmV9%2B8br%2BnBcClZz1roSj4GAxaesZbrtMNjYw%3D&amp;reserved=0 -O
~/bin/make.cross
        chmod +x ~/bin/make.cross
        #
https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.c
om%2F0day-
ci%2Flinux%2Fcommit%2Fcfd03e1dedb6793c62ca9acb9642dd314d44ac8e&amp;data=04
%7C01%7Cbiju.das.jz%40bp.renesas.com%7C542bfff2887f488c2fef08d95284c66f%7C
53d82571da1947e49cb4625a166a4a2a%7C0%7C0%7C637631555166725253%7CUnknown%7C
TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn
0%3D%7C1000&amp;sdata=rVtsa8DjyZ4TY2hpwlKz%2F6e3kBSubO6VM58rh8ioiNA%3D&amp
;reserved=0
        git remote add linux-review
https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.c
om%2F0day-
ci%2Flinux&amp;data=04%7C01%7Cbiju.das.jz%40bp.renesas.com%7C542bfff2887f4
88c2fef08d95284c66f%7C53d82571da1947e49cb4625a166a4a2a%7C0%7C0%7C637631555
166735210%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJB
TiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=Jb9197GDbxvSzKoZHxgDzTAXnLAqPL
8KrH%2Bp7xJHu1A%3D&amp;reserved=0
        git fetch --no-tags linux-review Biju-Das/Add-RZ-G2L-DMAC-
support/20210729-162632
        git checkout cfd03e1dedb6793c62ca9acb9642dd314d44ac8e
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross
ARCH=nios2

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <redacted>

All warnings (new ones prefixed by >>):

   In file included from include/linux/printk.h:456,
                    from include/asm-generic/bug.h:22,
                    from ./arch/nios2/include/generated/asm/bug.h:1,
                    from include/linux/bug.h:5,
                    from include/linux/thread_info.h:13,
                    from include/asm-generic/current.h:5,
                    from ./arch/nios2/include/generated/asm/current.h:1,
                    from include/linux/sched.h:12,
                    from include/linux/ratelimit.h:6,
                    from include/linux/dev_printk.h:16,
                    from include/linux/device.h:15,
                    from include/linux/dma-mapping.h:7,
                    from drivers/dma/sh/rz-dmac.c:12:
   drivers/dma/sh/rz-dmac.c: In function 'rz_dmac_prep_dma_memcpy':
quoted
quoted
drivers/dma/sh/rz-dmac.c:478:21: warning: format '%llx' expects
argument of type 'long long unsigned int', but argument 6 has type
'dma_addr_t' {aka 'unsigned int'} [-Wformat=]
     478 |  dev_dbg(dmac->dev, "%s channel: %d src=0x%llx dst=0x%llx
len=%ld\n",
         |
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/dynamic_debug.h:134:15: note: in definition of macro
'__dynamic_func_call'
     134 |   func(&id, ##__VA_ARGS__);  \
         |               ^~~~~~~~~~~
   include/linux/dynamic_debug.h:166:2: note: in expansion of macro
'_dynamic_func_call'
     166 |  _dynamic_func_call(fmt,__dynamic_dev_dbg,   \
         |  ^~~~~~~~~~~~~~~~~~
   include/linux/dev_printk.h:123:2: note: in expansion of macro
'dynamic_dev_dbg'
     123 |  dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
         |  ^~~~~~~~~~~~~~~
   include/linux/dev_printk.h:123:23: note: in expansion of macro
'dev_fmt'
     123 |  dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
         |                       ^~~~~~~
   drivers/dma/sh/rz-dmac.c:478:2: note: in expansion of macro 'dev_dbg'
     478 |  dev_dbg(dmac->dev, "%s channel: %d src=0x%llx dst=0x%llx
len=%ld\n",
         |  ^~~~~~~
   drivers/dma/sh/rz-dmac.c:478:46: note: format string is defined here
     478 |  dev_dbg(dmac->dev, "%s channel: %d src=0x%llx dst=0x%llx
len=%ld\n",
         |                                           ~~~^
         |                                              |
         |                                              long long unsigned
int
         |                                           %x
   In file included from include/linux/printk.h:456,
                    from include/asm-generic/bug.h:22,
                    from ./arch/nios2/include/generated/asm/bug.h:1,
                    from include/linux/bug.h:5,
                    from include/linux/thread_info.h:13,
                    from include/asm-generic/current.h:5,
                    from ./arch/nios2/include/generated/asm/current.h:1,
                    from include/linux/sched.h:12,
                    from include/linux/ratelimit.h:6,
                    from include/linux/dev_printk.h:16,
                    from include/linux/device.h:15,
                    from include/linux/dma-mapping.h:7,
                    from drivers/dma/sh/rz-dmac.c:12:
   drivers/dma/sh/rz-dmac.c:478:21: warning: format '%llx' expects
argument of type 'long long unsigned int', but argument 7 has type
'dma_addr_t' {aka 'unsigned int'} [-Wformat=]
     478 |  dev_dbg(dmac->dev, "%s channel: %d src=0x%llx dst=0x%llx
len=%ld\n",
         |
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/dynamic_debug.h:134:15: note: in definition of macro
'__dynamic_func_call'
     134 |   func(&id, ##__VA_ARGS__);  \
         |               ^~~~~~~~~~~
   include/linux/dynamic_debug.h:166:2: note: in expansion of macro
'_dynamic_func_call'
     166 |  _dynamic_func_call(fmt,__dynamic_dev_dbg,   \
         |  ^~~~~~~~~~~~~~~~~~
   include/linux/dev_printk.h:123:2: note: in expansion of macro
'dynamic_dev_dbg'
     123 |  dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
         |  ^~~~~~~~~~~~~~~
   include/linux/dev_printk.h:123:23: note: in expansion of macro
'dev_fmt'
     123 |  dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
         |                       ^~~~~~~
   drivers/dma/sh/rz-dmac.c:478:2: note: in expansion of macro 'dev_dbg'
     478 |  dev_dbg(dmac->dev, "%s channel: %d src=0x%llx dst=0x%llx
len=%ld\n",
         |  ^~~~~~~
   drivers/dma/sh/rz-dmac.c:478:57: note: format string is defined here
     478 |  dev_dbg(dmac->dev, "%s channel: %d src=0x%llx dst=0x%llx
len=%ld\n",
         |                                                      ~~~^
         |                                                         |
         |                                                         long
long unsigned int
         |                                                      %x
   In file included from include/linux/printk.h:456,
                    from include/asm-generic/bug.h:22,
                    from ./arch/nios2/include/generated/asm/bug.h:1,
                    from include/linux/bug.h:5,
                    from include/linux/thread_info.h:13,
                    from include/asm-generic/current.h:5,
                    from ./arch/nios2/include/generated/asm/current.h:1,
                    from include/linux/sched.h:12,
                    from include/linux/ratelimit.h:6,
                    from include/linux/dev_printk.h:16,
                    from include/linux/device.h:15,
                    from include/linux/dma-mapping.h:7,
                    from drivers/dma/sh/rz-dmac.c:12:
quoted
quoted
drivers/dma/sh/rz-dmac.c:478:21: warning: format '%ld' expects
argument of type 'long int', but argument 8 has type 'size_t' {aka
'unsigned int'} [-Wformat=]
     478 |  dev_dbg(dmac->dev, "%s channel: %d src=0x%llx dst=0x%llx
len=%ld\n",
         |
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/dynamic_debug.h:134:15: note: in definition of macro
'__dynamic_func_call'
     134 |   func(&id, ##__VA_ARGS__);  \
         |               ^~~~~~~~~~~
   include/linux/dynamic_debug.h:166:2: note: in expansion of macro
'_dynamic_func_call'
     166 |  _dynamic_func_call(fmt,__dynamic_dev_dbg,   \
         |  ^~~~~~~~~~~~~~~~~~
   include/linux/dev_printk.h:123:2: note: in expansion of macro
'dynamic_dev_dbg'
     123 |  dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
         |  ^~~~~~~~~~~~~~~
   include/linux/dev_printk.h:123:23: note: in expansion of macro
'dev_fmt'
     123 |  dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
         |                       ^~~~~~~
   drivers/dma/sh/rz-dmac.c:478:2: note: in expansion of macro 'dev_dbg'
     478 |  dev_dbg(dmac->dev, "%s channel: %d src=0x%llx dst=0x%llx
len=%ld\n",
         |  ^~~~~~~
   drivers/dma/sh/rz-dmac.c:478:65: note: format string is defined here
     478 |  dev_dbg(dmac->dev, "%s channel: %d src=0x%llx dst=0x%llx
len=%ld\n",
         |
~~^
         |
|
         |
long int
         |
%d


vim +478 drivers/dma/sh/rz-dmac.c

   469
   470	static struct dma_async_tx_descriptor *
   471	rz_dmac_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t
dest, dma_addr_t src,
   472				size_t len, unsigned long flags)
   473	{
   474		struct rz_dmac_chan *channel = to_rz_dmac_chan(chan);
   475		struct rz_dmac *dmac = to_rz_dmac(chan->device);
   476		struct rz_dmac_desc *desc;
   477
 > 478		dev_dbg(dmac->dev, "%s channel: %d src=0x%llx dst=0x%llx
len=%ld\n",
   479			__func__, channel->index, src, dest, len);
   480
   481		if (list_empty(&channel->ld_free))
   482			return NULL;
   483
   484		desc = list_first_entry(&channel->ld_free, struct
rz_dmac_desc, node);
   485
   486		desc->type = RZ_DMAC_DESC_MEMCPY;
   487		desc->src = src;
   488		desc->dest = dest;
   489		desc->len = len;
   490		desc->direction = DMA_MEM_TO_MEM;
   491
   492		list_move_tail(channel->ld_free.next, &channel-
quoted
ld_queue);
   493		return vchan_tx_prep(&channel->vc, &desc->vd, flags);
   494	}
   495

---
0-DAY CI Kernel Test Service, Intel Corporation
https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.01
.org%2Fhyperkitty%2Flist%2Fkbuild-
all%40lists.01.org&amp;data=04%7C01%7Cbiju.das.jz%40bp.renesas.com%7C542bf
ff2887f488c2fef08d95284c66f%7C53d82571da1947e49cb4625a166a4a2a%7C0%7C0%7C6
37631555166735210%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2lu
MzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=Iaa%2FyiTehgWr7ygHm6xV
0xspg7HWa79nPlkqUH0HVj0%3D&amp;reserved=0
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help