On Wed, May 19, 2021 at 10:08 PM kernel test robot <lkp@xxxxxxxxx> wrote: > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git compat-alloc-user-space-9 > head: c20b182ddc8032c63c381bf868f99222bab89537 > commit: 5cbe995d81d1ea310babe2c123bf1a40dff25e46 [6/41] ethtool: improve compat ioctl handling > config: um-allmodconfig (attached as .config) > compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 > reproduce (this is a W=1 build): > # https://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git/commit/?id=5cbe995d81d1ea310babe2c123bf1a40dff25e46 > git remote add asm-generic https://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git > git fetch --no-tags asm-generic compat-alloc-user-space-9 > git checkout 5cbe995d81d1ea310babe2c123bf1a40dff25e46 > # save the attached .config to linux build tree > make W=1 ARCH=um > > If you fix the issue, kindly add following tag as appropriate > Reported-by: kernel test robot <lkp@xxxxxxxxx> > > All errors (new ones prefixed by >>): > > net/ethtool/ioctl.c: In function 'ethtool_translate_compat': > >> net/ethtool/ioctl.c:815:9: error: implicit declaration of function 'in_ia32_syscall'; did you mean 'in_compat_syscall'? [-Werror=implicit-function-declaration] > 815 | return in_ia32_syscall(); > | ^~~~~~~~~~~~~~~ > | in_compat_syscall > cc1: some warnings being treated as errors > > > vim +815 net/ethtool/ioctl.c > > 810 > 811 static bool ethtool_translate_compat(void) > 812 { > 813 #ifdef CONFIG_X86_64 > 814 /* On x86, translation is needed for i386 but not x32 */ > > 815 return in_ia32_syscall(); > 816 #else > 817 BUILD_BUG_ON(sizeof(struct compat_ethtool_rxnfc) != > 818 sizeof(struct ethtool_rxnfc)); > 819 #endif I never noticed that uml sets CONFIG_X86_64, but that makes sense. Changing the check to --- a/net/ethtool/ioctl.c +++ b/net/ethtool/ioctl.c @@ -810,7 +810,7 @@ static noinline_for_stack int ethtool_get_sset_info(struct net_device *dev, static bool ethtool_translate_compat(void) { -#ifdef CONFIG_X86_64 +#if defined(CONFIG_X86_64) && !defined(CONFIG_UML) /* On x86, translation is needed for i386 but not x32 */ return in_ia32_syscall(); #else Arnd