Re: [PATCH net-next 2/2] net: geneve: enable local address bind for geneve sockets

From: kernel test robot
Date: Sat Feb 24 2024 - 04:01:50 EST


Hi Richard,

kernel test robot noticed the following build errors:

[auto build test ERROR on net-next/main]

url: https://github.com/intel-lab-lkp/linux/commits/Richard-Gobert/net-vxlan-enable-local-address-bind-for-vxlan-sockets/20240223-045600
base: net-next/main
patch link: https://lore.kernel.org/r/79a8ba83-86bf-4c22-845c-8f285c2d1396%40gmail.com
patch subject: [PATCH net-next 2/2] net: geneve: enable local address bind for geneve sockets
config: x86_64-randconfig-012-20240224 (https://download.01.org/0day-ci/archive/20240224/202402241629.S6oEesWO-lkp@xxxxxxxxx/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240224/202402241629.S6oEesWO-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202402241629.S6oEesWO-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

In file included from include/linux/string.h:292,
from include/linux/bitmap.h:12,
from include/linux/ethtool.h:16,
from drivers/net/geneve.c:10:
drivers/net/geneve.c: In function 'geneve_create_sock':
>> drivers/net/geneve.c:469:34: error: 'struct udp_port_cfg' has no member named 'local_ip6'; did you mean 'local_ip'?
469 | memcpy(&udp_conf.local_ip6,
| ^~~~~~~~~
include/linux/fortify-string.h:582:34: note: in definition of macro '__fortify_memcpy_chk'
582 | const size_t __p_size = (p_size); \
| ^~~~~~
include/linux/fortify-string.h:639:17: note: in expansion of macro '__struct_size'
639 | __struct_size(p), __struct_size(q), \
| ^~~~~~~~~~~~~
drivers/net/geneve.c:469:17: note: in expansion of macro 'memcpy'
469 | memcpy(&udp_conf.local_ip6,
| ^~~~~~
>> drivers/net/geneve.c:469:34: error: 'struct udp_port_cfg' has no member named 'local_ip6'; did you mean 'local_ip'?
469 | memcpy(&udp_conf.local_ip6,
| ^~~~~~~~~
include/linux/fortify-string.h:584:40: note: in definition of macro '__fortify_memcpy_chk'
584 | const size_t __p_size_field = (p_size_field); \
| ^~~~~~~~~~~~
include/linux/fortify-string.h:640:17: note: in expansion of macro '__member_size'
640 | __member_size(p), __member_size(q), \
| ^~~~~~~~~~~~~
drivers/net/geneve.c:469:17: note: in expansion of macro 'memcpy'
469 | memcpy(&udp_conf.local_ip6,
| ^~~~~~
>> drivers/net/geneve.c:469:34: error: 'struct udp_port_cfg' has no member named 'local_ip6'; did you mean 'local_ip'?
469 | memcpy(&udp_conf.local_ip6,
| ^~~~~~~~~
include/linux/fortify-string.h:593:27: note: in definition of macro '__fortify_memcpy_chk'
593 | __underlying_##op(p, q, __fortify_size); \
| ^
drivers/net/geneve.c:469:17: note: in expansion of macro 'memcpy'
469 | memcpy(&udp_conf.local_ip6,
| ^~~~~~


vim +469 drivers/net/geneve.c

454
455 static struct socket *geneve_create_sock(struct net *net, bool ipv6,
456 __be16 port, bool ipv6_rx_csum,
457 union geneve_addr *local_addr)
458 {
459 struct socket *sock;
460 struct udp_port_cfg udp_conf;
461 int err;
462
463 memset(&udp_conf, 0, sizeof(udp_conf));
464
465 if (ipv6) {
466 udp_conf.family = AF_INET6;
467 udp_conf.ipv6_v6only = 1;
468 udp_conf.use_udp6_rx_checksums = ipv6_rx_csum;
> 469 memcpy(&udp_conf.local_ip6,
470 &local_addr->sin6.sin6_addr,
471 sizeof(local_addr->sin6.sin6_addr));
472 } else {
473 udp_conf.family = AF_INET;
474 udp_conf.local_ip.s_addr = htonl(INADDR_ANY);
475 memcpy(&udp_conf.local_ip,
476 &local_addr->sin.sin_addr,
477 sizeof(local_addr->sin.sin_addr));
478 }
479
480 udp_conf.local_udp_port = port;
481
482 /* Open UDP socket */
483 err = udp_sock_create(net, &udp_conf, &sock);
484 if (err < 0)
485 return ERR_PTR(err);
486
487 udp_allow_gso(sock->sk);
488 return sock;
489 }
490

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki