Message ID | 20230620131356.25440-11-bhe@redhat.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mm: ioremap: Convert architectures to take GENERIC_IOREMAP way | expand |
Hi Baoquan, kernel test robot noticed the following build errors: [auto build test ERROR on akpm-mm/mm-everything] url: https://github.com/intel-lab-lkp/linux/commits/Baoquan-He/asm-generic-iomap-h-remove-ARCH_HAS_IOREMAP_xx-macros/20230620-212135 base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything patch link: https://lore.kernel.org/r/20230620131356.25440-11-bhe%40redhat.com patch subject: [PATCH v7 10/19] s390: mm: Convert to GENERIC_IOREMAP config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20230621/202306211329.ticOJCSv-lkp@intel.com/config) compiler: s390-linux-gcc (GCC) 12.3.0 reproduce: (https://download.01.org/0day-ci/archive/20230621/202306211329.ticOJCSv-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202306211329.ticOJCSv-lkp@intel.com/ All error/warnings (new ones prefixed by >>): drivers/tty/ipwireless/main.c: In function 'ipwireless_probe': drivers/tty/ipwireless/main.c:115:30: error: implicit declaration of function 'ioremap'; did you mean 'iounmap'? [-Werror=implicit-function-declaration] 115 | ipw->common_memory = ioremap(p_dev->resource[2]->start, | ^~~~~~~ | iounmap >> drivers/tty/ipwireless/main.c:115:28: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 115 | ipw->common_memory = ioremap(p_dev->resource[2]->start, | ^ drivers/tty/ipwireless/main.c:139:26: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 139 | ipw->attr_memory = ioremap(p_dev->resource[3]->start, | ^ In file included from include/linux/io.h:13, from drivers/tty/ipwireless/main.c:26: arch/s390/include/asm/io.h:29:17: error: implicit declaration of function 'iounmap'; did you mean 'vunmap'? [-Werror=implicit-function-declaration] 29 | #define iounmap iounmap | ^~~~~~~ drivers/tty/ipwireless/main.c:155:9: note: in expansion of macro 'iounmap' 155 | iounmap(ipw->attr_memory); | ^~~~~~~ cc1: some warnings being treated as errors -- drivers/net/ethernet/smsc/smc91c92_cs.c: In function 'mhz_mfc_config': >> drivers/net/ethernet/smsc/smc91c92_cs.c:447:17: error: implicit declaration of function 'ioremap'; did you mean 'ifr_map'? [-Werror=implicit-function-declaration] 447 | smc->base = ioremap(link->resource[2]->start, | ^~~~~~~ | ifr_map >> drivers/net/ethernet/smsc/smc91c92_cs.c:447:15: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 447 | smc->base = ioremap(link->resource[2]->start, | ^ In file included from include/linux/scatterlist.h:9, from include/linux/dma-mapping.h:11, from include/linux/skbuff.h:28, from include/net/net_namespace.h:43, from include/linux/netdevice.h:38, from drivers/net/ethernet/smsc/smc91c92_cs.c:38: drivers/net/ethernet/smsc/smc91c92_cs.c: In function 'smc91c92_release': arch/s390/include/asm/io.h:29:17: error: implicit declaration of function 'iounmap'; did you mean 'vunmap'? [-Werror=implicit-function-declaration] 29 | #define iounmap iounmap | ^~~~~~~ drivers/net/ethernet/smsc/smc91c92_cs.c:962:17: note: in expansion of macro 'iounmap' 962 | iounmap(smc->base); | ^~~~~~~ cc1: some warnings being treated as errors -- drivers/net/ethernet/xircom/xirc2ps_cs.c: In function 'xirc2ps_config': drivers/net/ethernet/xircom/xirc2ps_cs.c:843:28: error: implicit declaration of function 'ioremap'; did you mean 'iounmap'? [-Werror=implicit-function-declaration] 843 | local->dingo_ccr = ioremap(link->resource[2]->start, 0x1000) + 0x0800; | ^~~~~~~ | iounmap >> drivers/net/ethernet/xircom/xirc2ps_cs.c:843:26: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 843 | local->dingo_ccr = ioremap(link->resource[2]->start, 0x1000) + 0x0800; | ^ In file included from include/linux/scatterlist.h:9, from include/linux/dma-mapping.h:11, from include/linux/skbuff.h:28, from include/linux/if_ether.h:19, from include/linux/ethtool.h:18, from drivers/net/ethernet/xircom/xirc2ps_cs.c:77: drivers/net/ethernet/xircom/xirc2ps_cs.c: In function 'xirc2ps_release': arch/s390/include/asm/io.h:29:17: error: implicit declaration of function 'iounmap'; did you mean 'vunmap'? [-Werror=implicit-function-declaration] 29 | #define iounmap iounmap | ^~~~~~~ drivers/net/ethernet/xircom/xirc2ps_cs.c:934:25: note: in expansion of macro 'iounmap' 934 | iounmap(local->dingo_ccr - 0x0800); | ^~~~~~~ cc1: some warnings being treated as errors vim +447 drivers/net/ethernet/smsc/smc91c92_cs.c b54bf94bf91e4c drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2008-08-02 422 fba395eee7d3f3 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2006-03-31 423 static int mhz_mfc_config(struct pcmcia_device *link) ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 424 { ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 425 struct net_device *dev = link->priv; ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 426 struct smc_private *smc = netdev_priv(dev); b5cb259e7fac55 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-24 427 unsigned int offset; b54bf94bf91e4c drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2008-08-02 428 int i; ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 429 00990e7ce0b0e5 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-30 430 link->config_flags |= CONF_ENABLE_SPKR | CONF_ENABLE_IRQ | 00990e7ce0b0e5 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-30 431 CONF_AUTO_SET_IO; ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 432 ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 433 /* The Megahertz combo cards have modem-like CIS entries, so ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 434 we have to explicitly try a bunch of port combinations. */ b54bf94bf91e4c drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2008-08-02 435 if (pcmcia_loop_config(link, mhz_mfc_config_check, NULL)) dddfbd824b96a2 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2009-10-18 436 return -ENODEV; dddfbd824b96a2 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2009-10-18 437 9a017a910346af drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-24 438 dev->base_addr = link->resource[0]->start; ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 439 ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 440 /* Allocate a memory window, for accessing the ISR */ cdb138080b7814 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-28 441 link->resource[2]->flags = WIN_DATA_WIDTH_8|WIN_MEMORY_TYPE_AM|WIN_ENABLE; cdb138080b7814 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-28 442 link->resource[2]->start = link->resource[2]->end = 0; cdb138080b7814 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-28 443 i = pcmcia_request_window(link, link->resource[2], 0); 4c89e88bfde6a3 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2008-08-03 444 if (i != 0) dddfbd824b96a2 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2009-10-18 445 return -ENODEV; dddfbd824b96a2 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2009-10-18 446 cdb138080b7814 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-28 @447 smc->base = ioremap(link->resource[2]->start, cdb138080b7814 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-28 448 resource_size(link->resource[2])); 7feabb6412ea23 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-29 449 offset = (smc->manfid == MANFID_MOTOROLA) ? link->config_base : 0; cdb138080b7814 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-28 450 i = pcmcia_map_mem_page(link, link->resource[2], offset); 8e95a2026f3b43 drivers/net/pcmcia/smc91c92_cs.c Joe Perches 2009-12-03 451 if ((i == 0) && 8e95a2026f3b43 drivers/net/pcmcia/smc91c92_cs.c Joe Perches 2009-12-03 452 (smc->manfid == MANFID_MEGAHERTZ) && 8e95a2026f3b43 drivers/net/pcmcia/smc91c92_cs.c Joe Perches 2009-12-03 453 (smc->cardid == PRODID_MEGAHERTZ_EM3288)) ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 454 mhz_3288_power(link); ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 455 dddfbd824b96a2 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2009-10-18 456 return 0; ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 457 } ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 458
Hi, On 06/21/23 at 01:43pm, kernel test robot wrote: > Hi Baoquan, > > kernel test robot noticed the following build errors: > > [auto build test ERROR on akpm-mm/mm-everything] > > url: https://github.com/intel-lab-lkp/linux/commits/Baoquan-He/asm-generic-iomap-h-remove-ARCH_HAS_IOREMAP_xx-macros/20230620-212135 > base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything > patch link: https://lore.kernel.org/r/20230620131356.25440-11-bhe%40redhat.com > patch subject: [PATCH v7 10/19] s390: mm: Convert to GENERIC_IOREMAP > config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20230621/202306211329.ticOJCSv-lkp@intel.com/config) > compiler: s390-linux-gcc (GCC) 12.3.0 > reproduce: (https://download.01.org/0day-ci/archive/20230621/202306211329.ticOJCSv-lkp@intel.com/reproduce) Thanks for reporting this. I followed steps in above reproduce link, it failed as below. Please help check if anything is missing. [root@intel-knightslanding-lb-02 linux]# COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.3.0 ~/bin/make.cross W=1 O=build_dir ARCH=s390 olddefconfig Compiler will be installed in /root/0day lftpget -c https://download.01.org/0day-ci/cross-package/./gcc-12.3.0-nolibc/x86_64-gcc-12.3.0-nolibc_s390-linux.tar.xz /root/linux tar Jxf /root/0day/gcc-12.3.0-nolibc/x86_64-gcc-12.3.0-nolibc_s390-linux.tar.xz -C /root/0day Please update: libc6 or glibc ldd /root/0day/gcc-12.3.0-nolibc/s390-linux/bin/s390-linux-gcc /root/0day/gcc-12.3.0-nolibc/s390-linux/bin/s390-linux-gcc: /lib64/libc.so.6: version `GLIBC_2.36' not found (required by /root/0day/gcc-12.3.0-nolibc/s390-linux/bin/s390-linux-gcc) setup_crosstool failed > > If you fix the issue in a separate patch/commit (i.e. not just a new version of > the same patch/commit), kindly add following tags > | Reported-by: kernel test robot <lkp@intel.com> > | Closes: https://lore.kernel.org/oe-kbuild-all/202306211329.ticOJCSv-lkp@intel.com/ > > All error/warnings (new ones prefixed by >>): > > drivers/tty/ipwireless/main.c: In function 'ipwireless_probe': > drivers/tty/ipwireless/main.c:115:30: error: implicit declaration of function 'ioremap'; did you mean 'iounmap'? [-Werror=implicit-function-declaration] > 115 | ipw->common_memory = ioremap(p_dev->resource[2]->start, > | ^~~~~~~ > | iounmap > >> drivers/tty/ipwireless/main.c:115:28: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion] > 115 | ipw->common_memory = ioremap(p_dev->resource[2]->start, > | ^ > drivers/tty/ipwireless/main.c:139:26: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion] > 139 | ipw->attr_memory = ioremap(p_dev->resource[3]->start, > | ^ > In file included from include/linux/io.h:13, > from drivers/tty/ipwireless/main.c:26: > arch/s390/include/asm/io.h:29:17: error: implicit declaration of function 'iounmap'; did you mean 'vunmap'? [-Werror=implicit-function-declaration] > 29 | #define iounmap iounmap > | ^~~~~~~ > drivers/tty/ipwireless/main.c:155:9: note: in expansion of macro 'iounmap' > 155 | iounmap(ipw->attr_memory); > | ^~~~~~~ > cc1: some warnings being treated as errors > -- > drivers/net/ethernet/smsc/smc91c92_cs.c: In function 'mhz_mfc_config': > >> drivers/net/ethernet/smsc/smc91c92_cs.c:447:17: error: implicit declaration of function 'ioremap'; did you mean 'ifr_map'? [-Werror=implicit-function-declaration] > 447 | smc->base = ioremap(link->resource[2]->start, > | ^~~~~~~ > | ifr_map > >> drivers/net/ethernet/smsc/smc91c92_cs.c:447:15: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion] > 447 | smc->base = ioremap(link->resource[2]->start, > | ^ > In file included from include/linux/scatterlist.h:9, > from include/linux/dma-mapping.h:11, > from include/linux/skbuff.h:28, > from include/net/net_namespace.h:43, > from include/linux/netdevice.h:38, > from drivers/net/ethernet/smsc/smc91c92_cs.c:38: > drivers/net/ethernet/smsc/smc91c92_cs.c: In function 'smc91c92_release': > arch/s390/include/asm/io.h:29:17: error: implicit declaration of function 'iounmap'; did you mean 'vunmap'? [-Werror=implicit-function-declaration] > 29 | #define iounmap iounmap > | ^~~~~~~ > drivers/net/ethernet/smsc/smc91c92_cs.c:962:17: note: in expansion of macro 'iounmap' > 962 | iounmap(smc->base); > | ^~~~~~~ > cc1: some warnings being treated as errors > -- > drivers/net/ethernet/xircom/xirc2ps_cs.c: In function 'xirc2ps_config': > drivers/net/ethernet/xircom/xirc2ps_cs.c:843:28: error: implicit declaration of function 'ioremap'; did you mean 'iounmap'? [-Werror=implicit-function-declaration] > 843 | local->dingo_ccr = ioremap(link->resource[2]->start, 0x1000) + 0x0800; > | ^~~~~~~ > | iounmap > >> drivers/net/ethernet/xircom/xirc2ps_cs.c:843:26: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion] > 843 | local->dingo_ccr = ioremap(link->resource[2]->start, 0x1000) + 0x0800; > | ^ > In file included from include/linux/scatterlist.h:9, > from include/linux/dma-mapping.h:11, > from include/linux/skbuff.h:28, > from include/linux/if_ether.h:19, > from include/linux/ethtool.h:18, > from drivers/net/ethernet/xircom/xirc2ps_cs.c:77: > drivers/net/ethernet/xircom/xirc2ps_cs.c: In function 'xirc2ps_release': > arch/s390/include/asm/io.h:29:17: error: implicit declaration of function 'iounmap'; did you mean 'vunmap'? [-Werror=implicit-function-declaration] > 29 | #define iounmap iounmap > | ^~~~~~~ > drivers/net/ethernet/xircom/xirc2ps_cs.c:934:25: note: in expansion of macro 'iounmap' > 934 | iounmap(local->dingo_ccr - 0x0800); > | ^~~~~~~ > cc1: some warnings being treated as errors > > > vim +447 drivers/net/ethernet/smsc/smc91c92_cs.c > > b54bf94bf91e4c drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2008-08-02 422 > fba395eee7d3f3 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2006-03-31 423 static int mhz_mfc_config(struct pcmcia_device *link) > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 424 { > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 425 struct net_device *dev = link->priv; > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 426 struct smc_private *smc = netdev_priv(dev); > b5cb259e7fac55 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-24 427 unsigned int offset; > b54bf94bf91e4c drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2008-08-02 428 int i; > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 429 > 00990e7ce0b0e5 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-30 430 link->config_flags |= CONF_ENABLE_SPKR | CONF_ENABLE_IRQ | > 00990e7ce0b0e5 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-30 431 CONF_AUTO_SET_IO; > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 432 > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 433 /* The Megahertz combo cards have modem-like CIS entries, so > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 434 we have to explicitly try a bunch of port combinations. */ > b54bf94bf91e4c drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2008-08-02 435 if (pcmcia_loop_config(link, mhz_mfc_config_check, NULL)) > dddfbd824b96a2 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2009-10-18 436 return -ENODEV; > dddfbd824b96a2 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2009-10-18 437 > 9a017a910346af drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-24 438 dev->base_addr = link->resource[0]->start; > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 439 > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 440 /* Allocate a memory window, for accessing the ISR */ > cdb138080b7814 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-28 441 link->resource[2]->flags = WIN_DATA_WIDTH_8|WIN_MEMORY_TYPE_AM|WIN_ENABLE; > cdb138080b7814 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-28 442 link->resource[2]->start = link->resource[2]->end = 0; > cdb138080b7814 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-28 443 i = pcmcia_request_window(link, link->resource[2], 0); > 4c89e88bfde6a3 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2008-08-03 444 if (i != 0) > dddfbd824b96a2 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2009-10-18 445 return -ENODEV; > dddfbd824b96a2 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2009-10-18 446 > cdb138080b7814 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-28 @447 smc->base = ioremap(link->resource[2]->start, > cdb138080b7814 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-28 448 resource_size(link->resource[2])); > 7feabb6412ea23 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-29 449 offset = (smc->manfid == MANFID_MOTOROLA) ? link->config_base : 0; > cdb138080b7814 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-28 450 i = pcmcia_map_mem_page(link, link->resource[2], offset); > 8e95a2026f3b43 drivers/net/pcmcia/smc91c92_cs.c Joe Perches 2009-12-03 451 if ((i == 0) && > 8e95a2026f3b43 drivers/net/pcmcia/smc91c92_cs.c Joe Perches 2009-12-03 452 (smc->manfid == MANFID_MEGAHERTZ) && > 8e95a2026f3b43 drivers/net/pcmcia/smc91c92_cs.c Joe Perches 2009-12-03 453 (smc->cardid == PRODID_MEGAHERTZ_EM3288)) > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 454 mhz_3288_power(link); > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 455 > dddfbd824b96a2 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2009-10-18 456 return 0; > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 457 } > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 458 > > -- > 0-DAY CI Kernel Test Service > https://github.com/intel/lkp-tests/wiki >
On Wed, Jun 21, 2023 at 06:41:09PM +0800, Baoquan He wrote: Hi Baoquan, > > [auto build test ERROR on akpm-mm/mm-everything] > > > > url: https://github.com/intel-lab-lkp/linux/commits/Baoquan-He/asm-generic-iomap-h-remove-ARCH_HAS_IOREMAP_xx-macros/20230620-212135 > > base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything > > patch link: https://lore.kernel.org/r/20230620131356.25440-11-bhe%40redhat.com > > patch subject: [PATCH v7 10/19] s390: mm: Convert to GENERIC_IOREMAP > > config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20230621/202306211329.ticOJCSv-lkp@intel.com/config) > > compiler: s390-linux-gcc (GCC) 12.3.0 > > reproduce: (https://download.01.org/0day-ci/archive/20230621/202306211329.ticOJCSv-lkp@intel.com/reproduce) > > Thanks for reporting this. > > I followed steps in above reproduce link, it failed as below. Please > help check if anything is missing. Could it be because you locally have the fix you posted aganst v6? Thansk!
On 06/21/23 at 12:46pm, Alexander Gordeev wrote: > On Wed, Jun 21, 2023 at 06:41:09PM +0800, Baoquan He wrote: > > Hi Baoquan, > > > > [auto build test ERROR on akpm-mm/mm-everything] > > > > > > url: https://github.com/intel-lab-lkp/linux/commits/Baoquan-He/asm-generic-iomap-h-remove-ARCH_HAS_IOREMAP_xx-macros/20230620-212135 > > > base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything > > > patch link: https://lore.kernel.org/r/20230620131356.25440-11-bhe%40redhat.com > > > patch subject: [PATCH v7 10/19] s390: mm: Convert to GENERIC_IOREMAP > > > config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20230621/202306211329.ticOJCSv-lkp@intel.com/config) > > > compiler: s390-linux-gcc (GCC) 12.3.0 > > > reproduce: (https://download.01.org/0day-ci/archive/20230621/202306211329.ticOJCSv-lkp@intel.com/reproduce) > > > > Thanks for reporting this. > > > > I followed steps in above reproduce link, it failed as below. Please > > help check if anything is missing. > > Could it be because you locally have the fix you posted aganst v6? I am not sure. I failed to setup the cross compiling environment accoridng to steps of lkp. I borrowed a s390x machine, will build with the config of lkp test robot to see if I can reproduce it.
On Wed, Jun 21, 2023 at 06:41:09PM +0800, Baoquan He wrote: > Hi, > > On 06/21/23 at 01:43pm, kernel test robot wrote: > > Hi Baoquan, > > > > kernel test robot noticed the following build errors: > > > > [auto build test ERROR on akpm-mm/mm-everything] > > > > url: https://github.com/intel-lab-lkp/linux/commits/Baoquan-He/asm-generic-iomap-h-remove-ARCH_HAS_IOREMAP_xx-macros/20230620-212135 > > base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything > > patch link: https://lore.kernel.org/r/20230620131356.25440-11-bhe%40redhat.com > > patch subject: [PATCH v7 10/19] s390: mm: Convert to GENERIC_IOREMAP > > config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20230621/202306211329.ticOJCSv-lkp@intel.com/config) > > compiler: s390-linux-gcc (GCC) 12.3.0 > > reproduce: (https://download.01.org/0day-ci/archive/20230621/202306211329.ticOJCSv-lkp@intel.com/reproduce) > > Thanks for reporting this. > > I followed steps in above reproduce link, it failed as below. Please > help check if anything is missing. > > [root@intel-knightslanding-lb-02 linux]# COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.3.0 ~/bin/make.cross W=1 O=build_dir ARCH=s390 olddefconfig > Compiler will be installed in /root/0day > lftpget -c https://download.01.org/0day-ci/cross-package/./gcc-12.3.0-nolibc/x86_64-gcc-12.3.0-nolibc_s390-linux.tar.xz > /root/linux > tar Jxf /root/0day/gcc-12.3.0-nolibc/x86_64-gcc-12.3.0-nolibc_s390-linux.tar.xz -C /root/0day > Please update: libc6 or glibc > ldd /root/0day/gcc-12.3.0-nolibc/s390-linux/bin/s390-linux-gcc > /root/0day/gcc-12.3.0-nolibc/s390-linux/bin/s390-linux-gcc: /lib64/libc.so.6: version `GLIBC_2.36' not found (required by /root/0day/gcc-12.3.0-nolibc/s390-linux/bin/s390-linux-gcc) > setup_crosstool failed Certain recent versions of the kernel.org crosstool toolchains were built against a pretty recent glibc so attempting to run it on a system with an older glibc will result in the error above: https://lore.kernel.org/87mt2eoopo.fsf@kernel.org/ Arnd resolved this and reuploaded the binaries, I suspect the Intel folks need to mirror the updated tarballs to 01.org: https://lore.kernel.org/e9601db2-ff7d-4490-abd5-8d3c5946e108@app.fastmail.com/ According to make.cross, you can override the URL it uses with a variable, you could try removing these files /root/0day/gcc-12.3.0-nolibc/s390-linux /root/0day/gcc-12.3.0-nolibc/x86_64-gcc-12.3.0-nolibc_s390-linux.tar.xz and running $ COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.3.0 URL=https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64 ~/bin/make.cross W=1 O=build_dir ARCH=s390 olddefconfig to see if that works now. Cheers, Nathan > > If you fix the issue in a separate patch/commit (i.e. not just a new version of > > the same patch/commit), kindly add following tags > > | Reported-by: kernel test robot <lkp@intel.com> > > | Closes: https://lore.kernel.org/oe-kbuild-all/202306211329.ticOJCSv-lkp@intel.com/ > > > > All error/warnings (new ones prefixed by >>): > > > > drivers/tty/ipwireless/main.c: In function 'ipwireless_probe': > > drivers/tty/ipwireless/main.c:115:30: error: implicit declaration of function 'ioremap'; did you mean 'iounmap'? [-Werror=implicit-function-declaration] > > 115 | ipw->common_memory = ioremap(p_dev->resource[2]->start, > > | ^~~~~~~ > > | iounmap > > >> drivers/tty/ipwireless/main.c:115:28: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion] > > 115 | ipw->common_memory = ioremap(p_dev->resource[2]->start, > > | ^ > > drivers/tty/ipwireless/main.c:139:26: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion] > > 139 | ipw->attr_memory = ioremap(p_dev->resource[3]->start, > > | ^ > > In file included from include/linux/io.h:13, > > from drivers/tty/ipwireless/main.c:26: > > arch/s390/include/asm/io.h:29:17: error: implicit declaration of function 'iounmap'; did you mean 'vunmap'? [-Werror=implicit-function-declaration] > > 29 | #define iounmap iounmap > > | ^~~~~~~ > > drivers/tty/ipwireless/main.c:155:9: note: in expansion of macro 'iounmap' > > 155 | iounmap(ipw->attr_memory); > > | ^~~~~~~ > > cc1: some warnings being treated as errors > > -- > > drivers/net/ethernet/smsc/smc91c92_cs.c: In function 'mhz_mfc_config': > > >> drivers/net/ethernet/smsc/smc91c92_cs.c:447:17: error: implicit declaration of function 'ioremap'; did you mean 'ifr_map'? [-Werror=implicit-function-declaration] > > 447 | smc->base = ioremap(link->resource[2]->start, > > | ^~~~~~~ > > | ifr_map > > >> drivers/net/ethernet/smsc/smc91c92_cs.c:447:15: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion] > > 447 | smc->base = ioremap(link->resource[2]->start, > > | ^ > > In file included from include/linux/scatterlist.h:9, > > from include/linux/dma-mapping.h:11, > > from include/linux/skbuff.h:28, > > from include/net/net_namespace.h:43, > > from include/linux/netdevice.h:38, > > from drivers/net/ethernet/smsc/smc91c92_cs.c:38: > > drivers/net/ethernet/smsc/smc91c92_cs.c: In function 'smc91c92_release': > > arch/s390/include/asm/io.h:29:17: error: implicit declaration of function 'iounmap'; did you mean 'vunmap'? [-Werror=implicit-function-declaration] > > 29 | #define iounmap iounmap > > | ^~~~~~~ > > drivers/net/ethernet/smsc/smc91c92_cs.c:962:17: note: in expansion of macro 'iounmap' > > 962 | iounmap(smc->base); > > | ^~~~~~~ > > cc1: some warnings being treated as errors > > -- > > drivers/net/ethernet/xircom/xirc2ps_cs.c: In function 'xirc2ps_config': > > drivers/net/ethernet/xircom/xirc2ps_cs.c:843:28: error: implicit declaration of function 'ioremap'; did you mean 'iounmap'? [-Werror=implicit-function-declaration] > > 843 | local->dingo_ccr = ioremap(link->resource[2]->start, 0x1000) + 0x0800; > > | ^~~~~~~ > > | iounmap > > >> drivers/net/ethernet/xircom/xirc2ps_cs.c:843:26: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion] > > 843 | local->dingo_ccr = ioremap(link->resource[2]->start, 0x1000) + 0x0800; > > | ^ > > In file included from include/linux/scatterlist.h:9, > > from include/linux/dma-mapping.h:11, > > from include/linux/skbuff.h:28, > > from include/linux/if_ether.h:19, > > from include/linux/ethtool.h:18, > > from drivers/net/ethernet/xircom/xirc2ps_cs.c:77: > > drivers/net/ethernet/xircom/xirc2ps_cs.c: In function 'xirc2ps_release': > > arch/s390/include/asm/io.h:29:17: error: implicit declaration of function 'iounmap'; did you mean 'vunmap'? [-Werror=implicit-function-declaration] > > 29 | #define iounmap iounmap > > | ^~~~~~~ > > drivers/net/ethernet/xircom/xirc2ps_cs.c:934:25: note: in expansion of macro 'iounmap' > > 934 | iounmap(local->dingo_ccr - 0x0800); > > | ^~~~~~~ > > cc1: some warnings being treated as errors > > > > > > vim +447 drivers/net/ethernet/smsc/smc91c92_cs.c > > > > b54bf94bf91e4c drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2008-08-02 422 > > fba395eee7d3f3 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2006-03-31 423 static int mhz_mfc_config(struct pcmcia_device *link) > > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 424 { > > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 425 struct net_device *dev = link->priv; > > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 426 struct smc_private *smc = netdev_priv(dev); > > b5cb259e7fac55 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-24 427 unsigned int offset; > > b54bf94bf91e4c drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2008-08-02 428 int i; > > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 429 > > 00990e7ce0b0e5 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-30 430 link->config_flags |= CONF_ENABLE_SPKR | CONF_ENABLE_IRQ | > > 00990e7ce0b0e5 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-30 431 CONF_AUTO_SET_IO; > > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 432 > > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 433 /* The Megahertz combo cards have modem-like CIS entries, so > > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 434 we have to explicitly try a bunch of port combinations. */ > > b54bf94bf91e4c drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2008-08-02 435 if (pcmcia_loop_config(link, mhz_mfc_config_check, NULL)) > > dddfbd824b96a2 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2009-10-18 436 return -ENODEV; > > dddfbd824b96a2 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2009-10-18 437 > > 9a017a910346af drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-24 438 dev->base_addr = link->resource[0]->start; > > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 439 > > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 440 /* Allocate a memory window, for accessing the ISR */ > > cdb138080b7814 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-28 441 link->resource[2]->flags = WIN_DATA_WIDTH_8|WIN_MEMORY_TYPE_AM|WIN_ENABLE; > > cdb138080b7814 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-28 442 link->resource[2]->start = link->resource[2]->end = 0; > > cdb138080b7814 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-28 443 i = pcmcia_request_window(link, link->resource[2], 0); > > 4c89e88bfde6a3 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2008-08-03 444 if (i != 0) > > dddfbd824b96a2 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2009-10-18 445 return -ENODEV; > > dddfbd824b96a2 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2009-10-18 446 > > cdb138080b7814 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-28 @447 smc->base = ioremap(link->resource[2]->start, > > cdb138080b7814 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-28 448 resource_size(link->resource[2])); > > 7feabb6412ea23 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-29 449 offset = (smc->manfid == MANFID_MOTOROLA) ? link->config_base : 0; > > cdb138080b7814 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2010-07-28 450 i = pcmcia_map_mem_page(link, link->resource[2], offset); > > 8e95a2026f3b43 drivers/net/pcmcia/smc91c92_cs.c Joe Perches 2009-12-03 451 if ((i == 0) && > > 8e95a2026f3b43 drivers/net/pcmcia/smc91c92_cs.c Joe Perches 2009-12-03 452 (smc->manfid == MANFID_MEGAHERTZ) && > > 8e95a2026f3b43 drivers/net/pcmcia/smc91c92_cs.c Joe Perches 2009-12-03 453 (smc->cardid == PRODID_MEGAHERTZ_EM3288)) > > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 454 mhz_3288_power(link); > > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 455 > > dddfbd824b96a2 drivers/net/pcmcia/smc91c92_cs.c Dominik Brodowski 2009-10-18 456 return 0; > > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 457 } > > ^1da177e4c3f41 drivers/net/pcmcia/smc91c92_cs.c Linus Torvalds 2005-04-16 458 > > > > -- > > 0-DAY CI Kernel Test Service > > https://github.com/intel/lkp-tests/wiki > > >
On 06/21/23 at 07:21pm, Nathan Chancellor wrote: > On Wed, Jun 21, 2023 at 06:41:09PM +0800, Baoquan He wrote: > > Hi, > > > > On 06/21/23 at 01:43pm, kernel test robot wrote: > > > Hi Baoquan, > > > > > > kernel test robot noticed the following build errors: > > > > > > [auto build test ERROR on akpm-mm/mm-everything] > > > > > > url: https://github.com/intel-lab-lkp/linux/commits/Baoquan-He/asm-generic-iomap-h-remove-ARCH_HAS_IOREMAP_xx-macros/20230620-212135 > > > base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything > > > patch link: https://lore.kernel.org/r/20230620131356.25440-11-bhe%40redhat.com > > > patch subject: [PATCH v7 10/19] s390: mm: Convert to GENERIC_IOREMAP > > > config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20230621/202306211329.ticOJCSv-lkp@intel.com/config) > > > compiler: s390-linux-gcc (GCC) 12.3.0 > > > reproduce: (https://download.01.org/0day-ci/archive/20230621/202306211329.ticOJCSv-lkp@intel.com/reproduce) > > > > Thanks for reporting this. > > > > I followed steps in above reproduce link, it failed as below. Please > > help check if anything is missing. > > > > [root@intel-knightslanding-lb-02 linux]# COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.3.0 ~/bin/make.cross W=1 O=build_dir ARCH=s390 olddefconfig > > Compiler will be installed in /root/0day > > lftpget -c https://download.01.org/0day-ci/cross-package/./gcc-12.3.0-nolibc/x86_64-gcc-12.3.0-nolibc_s390-linux.tar.xz > > /root/linux > > tar Jxf /root/0day/gcc-12.3.0-nolibc/x86_64-gcc-12.3.0-nolibc_s390-linux.tar.xz -C /root/0day > > Please update: libc6 or glibc > > ldd /root/0day/gcc-12.3.0-nolibc/s390-linux/bin/s390-linux-gcc > > /root/0day/gcc-12.3.0-nolibc/s390-linux/bin/s390-linux-gcc: /lib64/libc.so.6: version `GLIBC_2.36' not found (required by /root/0day/gcc-12.3.0-nolibc/s390-linux/bin/s390-linux-gcc) > > setup_crosstool failed > > Certain recent versions of the kernel.org crosstool toolchains were > built against a pretty recent glibc so attempting to run it on a system > with an older glibc will result in the error above: > > https://lore.kernel.org/87mt2eoopo.fsf@kernel.org/ > > Arnd resolved this and reuploaded the binaries, I suspect the Intel > folks need to mirror the updated tarballs to 01.org: > > https://lore.kernel.org/e9601db2-ff7d-4490-abd5-8d3c5946e108@app.fastmail.com/ > > According to make.cross, you can override the URL it uses with a > variable, you could try removing these files > > /root/0day/gcc-12.3.0-nolibc/s390-linux > /root/0day/gcc-12.3.0-nolibc/x86_64-gcc-12.3.0-nolibc_s390-linux.tar.xz > > and running > > $ COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.3.0 URL=https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64 ~/bin/make.cross W=1 O=build_dir ARCH=s390 olddefconfig > > to see if that works now. Thanks a lot for your help, Nathan. Really appreciated. Above make olddefconfig command works well, however the building failed either becuase of lack of gmp.h. I am not familiar with the manipulation of lkp building, so I gave up after attempt. ====== I finally got a s390x kvm guest from redhat lab, fetched the config file lkp provided and build, I can reproduce those errors and more similar errors are catched. CONFIG_MMU=y # CONFIG_PCI is not set From investigation, I see the lkp config enabled MMU, but disabled PCI. So those drivers which call ioremap()/iounmap() or their devm_xxxx wrappers will fail building because s390's iomem operations rely on pci support enabling. So I just change to make these drivers depend on HAS_IOMEM so that it won't be built. The draft change is pasted at below. Hi Niklas, I remember you ever entioned you would work out patches to solve those those drivers relying on devm_xxx(), not sure if they are related to the compiling error I met here. If I said the right thing, do you have plan to post them? If what you ever said is different thing, or do you have suggestion for below change, should I post them like this or need some adjustment? Look forward to your comments, thanks in advance. diff --git a/drivers/char/xillybus/Kconfig b/drivers/char/xillybus/Kconfig index a8036dad437e..f51d533390a9 100644 --- a/drivers/char/xillybus/Kconfig +++ b/drivers/char/xillybus/Kconfig @@ -29,7 +29,7 @@ config XILLYBUS_PCIE config XILLYBUS_OF tristate "Xillybus over Device Tree" - depends on OF && HAS_DMA + depends on OF && HAS_DMA && HAS_IOMEM help Set to M if you want Xillybus to find its resources from the Open Firmware Flattened Device Tree. If the target is an embedded diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig index 016814e15536..52dfbae4f361 100644 --- a/drivers/clk/Kconfig +++ b/drivers/clk/Kconfig @@ -444,6 +444,7 @@ config COMMON_CLK_BD718XX config COMMON_CLK_FIXED_MMIO bool "Clock driver for Memory Mapped Fixed values" depends on COMMON_CLK && OF + depends on HAS_IOMEM help Support for Memory Mapped IO Fixed clocks diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig index f5f422f9b850..b6221b4432fd 100644 --- a/drivers/dma/Kconfig +++ b/drivers/dma/Kconfig @@ -211,6 +211,7 @@ config FSL_DMA config FSL_EDMA tristate "Freescale eDMA engine support" depends on OF + depends on HAS_IOMEM select DMA_ENGINE select DMA_VIRTUAL_CHANNELS help @@ -280,6 +281,7 @@ config IMX_SDMA config INTEL_IDMA64 tristate "Intel integrated DMA 64-bit support" + depends on HAS_IOMEM select DMA_ENGINE select DMA_VIRTUAL_CHANNELS help diff --git a/drivers/dma/qcom/Kconfig b/drivers/dma/qcom/Kconfig index 3f926a653bd8..ace75d7b835a 100644 --- a/drivers/dma/qcom/Kconfig +++ b/drivers/dma/qcom/Kconfig @@ -45,6 +45,7 @@ config QCOM_HIDMA_MGMT config QCOM_HIDMA tristate "Qualcomm Technologies HIDMA Channel support" + depends on HAS_IOMEM select DMA_ENGINE help Enable support for the Qualcomm Technologies HIDMA controller. diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig index 09e422da482f..4b9036c6d45b 100644 --- a/drivers/irqchip/Kconfig +++ b/drivers/irqchip/Kconfig @@ -89,6 +89,7 @@ config ALPINE_MSI config AL_FIC bool "Amazon's Annapurna Labs Fabric Interrupt Controller" depends on OF + depends on HAS_IOMEM select GENERIC_IRQ_CHIP select IRQ_DOMAIN help diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig index 433aa4197785..1d2b176a0594 100644 --- a/drivers/misc/Kconfig +++ b/drivers/misc/Kconfig @@ -496,6 +496,7 @@ config HISI_HIKEY_USB config OPEN_DICE tristate "Open Profile for DICE driver" depends on OF_RESERVED_MEM + depends on HAS_IOMEM help This driver exposes a DICE reserved memory region to userspace via a character device. The memory region contains Compound Device diff --git a/drivers/net/ethernet/altera/Kconfig b/drivers/net/ethernet/altera/Kconfig index dd7fd41ccde5..33927fdfff28 100644 --- a/drivers/net/ethernet/altera/Kconfig +++ b/drivers/net/ethernet/altera/Kconfig @@ -2,6 +2,7 @@ config ALTERA_TSE tristate "Altera Triple-Speed Ethernet MAC support" depends on HAS_DMA + depends on HAS_IOMEM select PHYLIB select PHYLINK select PCS_ALTERA_TSE diff --git a/drivers/of/Kconfig b/drivers/of/Kconfig index e40f10bf2ba4..da9826accb1b 100644 --- a/drivers/of/Kconfig +++ b/drivers/of/Kconfig @@ -55,7 +55,7 @@ config OF_FLATTREE config OF_EARLY_FLATTREE bool - select DMA_DECLARE_COHERENT if HAS_DMA + select DMA_DECLARE_COHERENT if HAS_DMA && HAS_IOMEM select OF_FLATTREE config OF_PROMTREE
Hi, On 06/21/23 at 01:43pm, kernel test robot wrote: > Hi Baoquan, > > kernel test robot noticed the following build errors: > > [auto build test ERROR on akpm-mm/mm-everything] > > url: https://github.com/intel-lab-lkp/linux/commits/Baoquan-He/asm-generic-iomap-h-remove-ARCH_HAS_IOREMAP_xx-macros/20230620-212135 > base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything > patch link: https://lore.kernel.org/r/20230620131356.25440-11-bhe%40redhat.com > patch subject: [PATCH v7 10/19] s390: mm: Convert to GENERIC_IOREMAP > config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20230621/202306211329.ticOJCSv-lkp@intel.com/config) I can confirm these reproted errors have nothing to do with my patch. I got a s390 system and build the latest kernel from linus's master branch with above config, all these failures have been existing there. I have made patches to fix them by adding dependency on HAS_IOMEM for drivers. I would suggest lkp adjusts script to test the base firstly so that a reliable base is provided to avoid confusion. Thanks Baoquan
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index 6dab9c1be508..e625bb0cc6c7 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig @@ -142,6 +142,7 @@ config S390 select GENERIC_SMP_IDLE_THREAD select GENERIC_TIME_VSYSCALL select GENERIC_VDSO_TIME_NS + select GENERIC_IOREMAP if PCI select HAVE_ALIGNED_STRUCT_PAGE if SLUB select HAVE_ARCH_AUDITSYSCALL select HAVE_ARCH_JUMP_LABEL diff --git a/arch/s390/include/asm/io.h b/arch/s390/include/asm/io.h index e3882b012bfa..4453ad7c11ac 100644 --- a/arch/s390/include/asm/io.h +++ b/arch/s390/include/asm/io.h @@ -22,11 +22,18 @@ void unxlate_dev_mem_ptr(phys_addr_t phys, void *addr); #define IO_SPACE_LIMIT 0 -void __iomem *ioremap_prot(phys_addr_t addr, size_t size, unsigned long prot); -void __iomem *ioremap(phys_addr_t addr, size_t size); -void __iomem *ioremap_wc(phys_addr_t addr, size_t size); -void __iomem *ioremap_wt(phys_addr_t addr, size_t size); -void iounmap(volatile void __iomem *addr); +/* + * I/O memory mapping functions. + */ +#define ioremap_prot ioremap_prot +#define iounmap iounmap + +#define _PAGE_IOREMAP pgprot_val(PAGE_KERNEL) + +#define ioremap_wc(addr, size) \ + ioremap_prot((addr), (size), pgprot_val(pgprot_writecombine(PAGE_KERNEL))) +#define ioremap_wt(addr, size) \ + ioremap_prot((addr), (size), pgprot_val(pgprot_writethrough(PAGE_KERNEL))) static inline void __iomem *ioport_map(unsigned long port, unsigned int nr) { @@ -51,10 +58,6 @@ static inline void ioport_unmap(void __iomem *p) #define pci_iomap_wc pci_iomap_wc #define pci_iomap_wc_range pci_iomap_wc_range -#define ioremap ioremap -#define ioremap_wt ioremap_wt -#define ioremap_wc ioremap_wc - #define memcpy_fromio(dst, src, count) zpci_memcpy_fromio(dst, src, count) #define memcpy_toio(dst, src, count) zpci_memcpy_toio(dst, src, count) #define memset_io(dst, val, count) zpci_memset_io(dst, val, count) diff --git a/arch/s390/kernel/perf_cpum_sf.c b/arch/s390/kernel/perf_cpum_sf.c index 7ef72f5ff52e..b0269f3881aa 100644 --- a/arch/s390/kernel/perf_cpum_sf.c +++ b/arch/s390/kernel/perf_cpum_sf.c @@ -22,7 +22,7 @@ #include <asm/irq.h> #include <asm/debug.h> #include <asm/timex.h> -#include <asm-generic/io.h> +#include <asm/io.h> /* Minimum number of sample-data-block-tables: * At least one table is required for the sampling buffer structure. diff --git a/arch/s390/pci/pci.c b/arch/s390/pci/pci.c index afc3f33788da..d34d5813d006 100644 --- a/arch/s390/pci/pci.c +++ b/arch/s390/pci/pci.c @@ -244,62 +244,25 @@ void __iowrite64_copy(void __iomem *to, const void *from, size_t count) zpci_memcpy_toio(to, from, count); } -static void __iomem *__ioremap(phys_addr_t addr, size_t size, pgprot_t prot) +void __iomem *ioremap_prot(phys_addr_t phys_addr, size_t size, + unsigned long prot) { - unsigned long offset, vaddr; - struct vm_struct *area; - phys_addr_t last_addr; - - last_addr = addr + size - 1; - if (!size || last_addr < addr) - return NULL; - + /* + * When PCI MIO instructions are unavailable the "physical" address + * encodes a hint for accessing the PCI memory space it represents. + * Just pass it unchanged such that ioread/iowrite can decode it. + */ if (!static_branch_unlikely(&have_mio)) - return (void __iomem *) addr; + return (void __iomem *)phys_addr; - offset = addr & ~PAGE_MASK; - addr &= PAGE_MASK; - size = PAGE_ALIGN(size + offset); - area = get_vm_area(size, VM_IOREMAP); - if (!area) - return NULL; - - vaddr = (unsigned long) area->addr; - if (ioremap_page_range(vaddr, vaddr + size, addr, prot)) { - free_vm_area(area); - return NULL; - } - return (void __iomem *) ((unsigned long) area->addr + offset); -} - -void __iomem *ioremap_prot(phys_addr_t addr, size_t size, unsigned long prot) -{ - return __ioremap(addr, size, __pgprot(prot)); + return generic_ioremap_prot(phys_addr, size, __pgprot(prot)); } EXPORT_SYMBOL(ioremap_prot); -void __iomem *ioremap(phys_addr_t addr, size_t size) -{ - return __ioremap(addr, size, PAGE_KERNEL); -} -EXPORT_SYMBOL(ioremap); - -void __iomem *ioremap_wc(phys_addr_t addr, size_t size) -{ - return __ioremap(addr, size, pgprot_writecombine(PAGE_KERNEL)); -} -EXPORT_SYMBOL(ioremap_wc); - -void __iomem *ioremap_wt(phys_addr_t addr, size_t size) -{ - return __ioremap(addr, size, pgprot_writethrough(PAGE_KERNEL)); -} -EXPORT_SYMBOL(ioremap_wt); - void iounmap(volatile void __iomem *addr) { if (static_branch_likely(&have_mio)) - vunmap((__force void *) ((unsigned long) addr & PAGE_MASK)); + generic_iounmap(addr); } EXPORT_SYMBOL(iounmap);