Re: [PATCH v5 net-next 02/13] net: allow gso_max_size to exceed 65536
From: Eric Dumazet <edumazet@google.com>
Date: 2022-05-10 02:09:19
Also in:
oe-kbuild-all
On Mon, May 9, 2022 at 6:36 PM kernel test robot [off-list ref] wrote:
Hi Eric, Thank you for the patch! Yet something to improve: [auto build test ERROR on net-next/master] url: https://github.com/intel-lab-lkp/linux/commits/Eric-Dumazet/tcp-BIG-TCP-implementation/20220510-062530 base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 9c095bd0d4c451d31d0fd1131cc09d3b60de815d config: um-i386_defconfig (https://download.01.org/0day-ci/archive/20220510/202205100923.RHeXqtNd-lkp@intel.com/config) compiler: gcc-11 (Debian 11.2.0-20) 11.2.0 reproduce (this is a W=1 build): # https://github.com/intel-lab-lkp/linux/commit/8f9b47ee99f57d1747010d002315092bfa17ed50 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Eric-Dumazet/tcp-BIG-TCP-implementation/20220510-062530 git checkout 8f9b47ee99f57d1747010d002315092bfa17ed50 # save the config file mkdir build_dir && cp config build_dir/.config make W=1 O=build_dir ARCH=um SUBARCH=i386 SHELL=/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <redacted> All errors (new ones prefixed by >>): In file included from include/net/inet_sock.h:22, from include/net/ip.h:29, from include/linux/errqueue.h:6, from net/core/sock.c:91: net/core/sock.c: In function 'sk_setup_caps':quoted
quoted
include/net/sock.h:389:37: error: 'struct sock_common' has no member named 'skc_v6_rcv_saddr'; did you mean 'skc_rcv_saddr'?389 | #define sk_v6_rcv_saddr __sk_common.skc_v6_rcv_saddr | ^~~~~~~~~~~~~~~~ net/core/sock.c:2317:72: note: in expansion of macro 'sk_v6_rcv_saddr' 2317 | !sk_is_tcp(sk) || ipv6_addr_v4mapped(&sk->sk_v6_rcv_saddr))) | ^~~~~~~~~~~~~~~
Alexander used :
+ if (sk->sk_gso_max_size > GSO_LEGACY_MAX_SIZE &&
+ (!IS_ENABLED(CONFIG_IPV6) || sk->sk_family
!= AF_INET6 ||
+ !sk_is_tcp(sk) ||
ipv6_addr_v4mapped(&sk->sk_v6_rcv_saddr)))
+ sk->sk_gso_max_size = GSO_LEGACY_MAX_SIZE;
I guess we could simply allow gso_max_size to be bigger than
GSO_LEGACY_MAX_SIZE only
if IS_ENABLED(CONFIG_IPV6)
So the above code could really be:
#if IS_ENABLED(CONFIG_IPV6)
if (sk->sk_gso_max_size > GSO_LEGACY_MAX_SIZE &&
(sk->sk_family != AF_INET6 ||
!sk_is_tcp(sk) ||
ipv6_addr_v4mapped(&sk->sk_v6_rcv_saddr)))
sk->sk_gso_max_size = GSO_LEGACY_MAX_SIZE;
#endif