Re: [asm-generic:compat-alloc-user-space-9 6/41] net/ethtool/ioctl.c:815:9: error: implicit declaration of function 'in_ia32_syscall'; did you mean 'in_compat_syscall'?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Kernel]     [Kernel Newbies]     [x86 Platform Driver]     [Netdev]     [Linux Wireless]     [Netfilter]     [Bugtraq]     [Linux Filesystems]     [Yosemite Discussion]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux