Content-Type: multipart/mixed; boundary="===============0384679520434677051==" MIME-Version: 1.0 From: kernel test robot To: kbuild-all@lists.01.org Subject: Re: [PATCH v1 4/5] driver core: Handle cycles in device links created by fw_devlink Date: Fri, 18 Dec 2020 15:12:54 +0800 Message-ID: <202012181505.m7nw6A6L-lkp@intel.com> In-Reply-To: <20201218031703.3053753-5-saravanak@google.com> List-Id: --===============0384679520434677051== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Saravana, I love your patch! Perhaps something to improve: [auto build test WARNING on driver-core/driver-core-testing] [also build test WARNING on linus/master next-20201217] [cannot apply to linux/master v5.10] [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://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Saravana-Kannan/Enable-fw_= devlink-on-by-default/20201218-112111 base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.= git accefff5b547a9a1d959c7e76ad539bf2480e78b config: riscv-randconfig-r014-20201217 (attached as .config) compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project cee1e7= d14f4628d6174b33640d502bff3b54ae45) reproduce (this is a W=3D1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/= make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install riscv cross compiling tool for clang build # apt-get install binutils-riscv64-linux-gnu # https://github.com/0day-ci/linux/commit/7bdc87ea0400318d827410f45= 4ec7e5fbaf470c3 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Saravana-Kannan/Enable-fw_devlink-= on-by-default/20201218-112111 git checkout 7bdc87ea0400318d827410f454ec7e5fbaf470c3 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=3D$HOME/0day COMPILER=3Dclang make.cross ARCH= =3Driscv = If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): = ~~~~~~~~~~ ^ arch/riscv/include/asm/mmio.h:87:48: note: expanded from macro 'readb_cp= u' #define readb_cpu(c) ({ u8 __r =3D __raw_readb(c); __r; }) ^ In file included from drivers/base/core.c:27: In file included from include/linux/netdevice.h:37: In file included from include/net/net_namespace.h:39: In file included from include/linux/skbuff.h:31: In file included from include/linux/dma-mapping.h:10: In file included from include/linux/scatterlist.h:9: In file included from arch/riscv/include/asm/io.h:149: include/asm-generic/io.h:564:9: warning: performing pointer arithmetic o= n a null pointer has undefined behavior [-Wnull-pointer-arithmetic] return inw(addr); ^~~~~~~~~ arch/riscv/include/asm/io.h:56:76: note: expanded from macro 'inw' #define inw(c) ({ u16 __v; __io_pbr(); __v =3D readw_cpu((void*= )(PCI_IOBASE + (c))); __io_par(__v); __v; }) = ~~~~~~~~~~ ^ arch/riscv/include/asm/mmio.h:88:76: note: expanded from macro 'readw_cp= u' #define readw_cpu(c) ({ u16 __r =3D le16_to_cpu((__force __le= 16)__raw_readw(c)); __r; }) = ^ include/uapi/linux/byteorder/little_endian.h:36:51: note: expanded from = macro '__le16_to_cpu' #define __le16_to_cpu(x) ((__force __u16)(__le16)(x)) ^ In file included from drivers/base/core.c:27: In file included from include/linux/netdevice.h:37: In file included from include/net/net_namespace.h:39: In file included from include/linux/skbuff.h:31: In file included from include/linux/dma-mapping.h:10: In file included from include/linux/scatterlist.h:9: In file included from arch/riscv/include/asm/io.h:149: include/asm-generic/io.h:572:9: warning: performing pointer arithmetic o= n a null pointer has undefined behavior [-Wnull-pointer-arithmetic] return inl(addr); ^~~~~~~~~ arch/riscv/include/asm/io.h:57:76: note: expanded from macro 'inl' #define inl(c) ({ u32 __v; __io_pbr(); __v =3D readl_cpu((void*= )(PCI_IOBASE + (c))); __io_par(__v); __v; }) = ~~~~~~~~~~ ^ arch/riscv/include/asm/mmio.h:89:76: note: expanded from macro 'readl_cp= u' #define readl_cpu(c) ({ u32 __r =3D le32_to_cpu((__force __le= 32)__raw_readl(c)); __r; }) = ^ include/uapi/linux/byteorder/little_endian.h:34:51: note: expanded from = macro '__le32_to_cpu' #define __le32_to_cpu(x) ((__force __u32)(__le32)(x)) ^ In file included from drivers/base/core.c:27: In file included from include/linux/netdevice.h:37: In file included from include/net/net_namespace.h:39: In file included from include/linux/skbuff.h:31: In file included from include/linux/dma-mapping.h:10: In file included from include/linux/scatterlist.h:9: In file included from arch/riscv/include/asm/io.h:149: include/asm-generic/io.h:580:2: warning: performing pointer arithmetic o= n a null pointer has undefined behavior [-Wnull-pointer-arithmetic] outb(value, addr); ^~~~~~~~~~~~~~~~~ arch/riscv/include/asm/io.h:59:68: note: expanded from macro 'outb' #define outb(v,c) ({ __io_pbw(); writeb_cpu((v),(void*)(PCI_IOBASE= + (c))); __io_paw(); }) ~~~~~~~~~~= ^ arch/riscv/include/asm/mmio.h:91:52: note: expanded from macro 'writeb_c= pu' #define writeb_cpu(v, c) ((void)__raw_writeb((v), (c))) ^ In file included from drivers/base/core.c:27: In file included from include/linux/netdevice.h:37: In file included from include/net/net_namespace.h:39: In file included from include/linux/skbuff.h:31: In file included from include/linux/dma-mapping.h:10: In file included from include/linux/scatterlist.h:9: In file included from arch/riscv/include/asm/io.h:149: include/asm-generic/io.h:588:2: warning: performing pointer arithmetic o= n a null pointer has undefined behavior [-Wnull-pointer-arithmetic] outw(value, addr); ^~~~~~~~~~~~~~~~~ arch/riscv/include/asm/io.h:60:68: note: expanded from macro 'outw' #define outw(v,c) ({ __io_pbw(); writew_cpu((v),(void*)(PCI_IOBASE= + (c))); __io_paw(); }) ~~~~~~~~~~= ^ arch/riscv/include/asm/mmio.h:92:76: note: expanded from macro 'writew_c= pu' #define writew_cpu(v, c) ((void)__raw_writew((__force u16)cpu_to_= le16(v), (c))) = ^ In file included from drivers/base/core.c:27: In file included from include/linux/netdevice.h:37: In file included from include/net/net_namespace.h:39: In file included from include/linux/skbuff.h:31: In file included from include/linux/dma-mapping.h:10: In file included from include/linux/scatterlist.h:9: In file included from arch/riscv/include/asm/io.h:149: include/asm-generic/io.h:596:2: warning: performing pointer arithmetic o= n a null pointer has undefined behavior [-Wnull-pointer-arithmetic] outl(value, addr); ^~~~~~~~~~~~~~~~~ arch/riscv/include/asm/io.h:61:68: note: expanded from macro 'outl' #define outl(v,c) ({ __io_pbw(); writel_cpu((v),(void*)(PCI_IOBASE= + (c))); __io_paw(); }) ~~~~~~~~~~= ^ arch/riscv/include/asm/mmio.h:93:76: note: expanded from macro 'writel_c= pu' #define writel_cpu(v, c) ((void)__raw_writel((__force u32)cpu_to_= le32(v), (c))) = ^ In file included from drivers/base/core.c:27: In file included from include/linux/netdevice.h:37: In file included from include/net/net_namespace.h:39: In file included from include/linux/skbuff.h:31: In file included from include/linux/dma-mapping.h:10: In file included from include/linux/scatterlist.h:9: In file included from arch/riscv/include/asm/io.h:149: include/asm-generic/io.h:1005:55: warning: performing pointer arithmetic= on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] return (port > MMIO_UPPER_LIMIT) ? NULL : PCI_IOBASE + port; ~~~~~~~~~~ ^ >> drivers/base/core.c:1522:5: warning: no previous prototype for function = 'fw_devlink_relax_cycle' [-Wmissing-prototypes] int fw_devlink_relax_cycle(struct device *con, void *sup) ^ drivers/base/core.c:1522:1: note: declare 'static' if the function is no= t intended to be used outside of this translation unit int fw_devlink_relax_cycle(struct device *con, void *sup) ^ static = 8 warnings generated. vim +/fw_devlink_relax_cycle +1522 drivers/base/core.c 1507 = 1508 /** 1509 * fw_devlink_relax_cycle - Convert cyclic links to SYNC_STATE_ONLY = links 1510 * @con: Device to check dependencies for. 1511 * @sup: Device to check against. 1512 * 1513 * Check if @sup depends on @con or any device dependent on it (its = child or 1514 * its consumer etc). When such a cyclic dependency is found, conve= rt all 1515 * device links created solely by fw_devlink into SYNC_STATE_ONLY de= vice links. 1516 * This is the equivalent of doing fw_devlink=3Dpermissive just betw= een the 1517 * devices in the cycle. We need to do this because, at this point, = fw_devlink 1518 * can't tell which of these dependencies is not a real dependency. 1519 * 1520 * Return 1 if a cycle is found. Otherwise, return 0. 1521 */ > 1522 int fw_devlink_relax_cycle(struct device *con, void *sup) 1523 { 1524 struct device_link *link; 1525 int ret; 1526 = 1527 if (con =3D=3D sup) 1528 return 1; 1529 = 1530 ret =3D device_for_each_child(con, sup, fw_devlink_relax_cycle); 1531 if (ret) 1532 return ret; 1533 = 1534 list_for_each_entry(link, &con->links.consumers, s_node) { 1535 if ((link->flags & ~DL_FLAG_INFERRED) =3D=3D 1536 (DL_FLAG_SYNC_STATE_ONLY | DL_FLAG_MANAGED)) 1537 continue; 1538 = 1539 if (!fw_devlink_relax_cycle(link->consumer, sup)) 1540 continue; 1541 = 1542 ret =3D 1; 1543 = 1544 if (!(link->flags & DL_FLAG_INFERRED)) 1545 continue; 1546 = 1547 pm_runtime_drop_link(link); 1548 link->flags =3D DL_FLAG_MANAGED | FW_DEVLINK_FLAGS_PERMISSIVE; 1549 dev_dbg(link->consumer, "Relaxing link with %s\n", 1550 dev_name(link->supplier)); 1551 } 1552 return ret; 1553 } 1554 = --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============0384679520434677051== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 wMB/F1yf8vAbAQA= --===============0384679520434677051==--