On 5/30/21 5:05 PM, Randy Dunlap wrote: > On 5/29/21 4:25 PM, kernel test robot wrote: >> Hi Andrew, >> >> First bad commit (maybe != root cause): >> >> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master >> head: df8c66c4cfb91f2372d138b9b714f6df6f506966 >> commit: a9770eac511ad82390b9f4a3c1728e078c387ac7 net: mdio: Move MDIO drivers into a new subdirectory >> date: 9 months ago >> config: sh-allmodconfig (attached as .config) >> compiler: sh4-linux-gcc (GCC) 9.3.0 >> reproduce (this is a W=1 build): >> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross >> chmod +x ~/bin/make.cross >> # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a9770eac511ad82390b9f4a3c1728e078c387ac7 >> git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git >> git fetch --no-tags linus master >> git checkout a9770eac511ad82390b9f4a3c1728e078c387ac7 >> # save the attached .config to linux build tree >> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=sh >> >> If you fix the issue, kindly add following tag as appropriate >> Reported-by: kernel test robot >> >> All errors (new ones prefixed by >>, old ones prefixed by <<): >> >>>> ERROR: modpost: "__delay" [drivers/net/mdio/mdio-cavium.ko] undefined! Should we make this one driver depend on !SUPERH ? > > Just a comment here. kernel test robot has reported this issue > 5 times in 2021 that I know of -- and I could have missed some. > > I see that Geert recently (June 2020) reverted the > EXPORT_SYMBOL(__delay) in arch/sh/lib/delay.c, with this comment: > > __delay() is an internal implementation detail on several architectures. > Drivers should not call __delay() directly, as it has non-standardized > semantics, or may not even exist. > Hence there is no need to export __delay() to modules. > > See also include/asm-generic/delay.h: > > /* Undefined functions to get compile-time errors */ > ... > extern void __delay(unsigned long loops); > > However, s/several architectures/all but one architecture: SH/. > All architectures except for SH provide either an exported function, > an inline function, or a macro for __delay(). Yeah, they probably > don't all do the same delay. > -- ~Randy