[dsahern:vrf-keep-orig-oif 1/2] net/xfrm/xfrm_interface.c:514:55: error: incompatible type for argument 6 of 'ip6_update_pmtu'

From: kernel test robot
Date: Sat Mar 12 2022 - 21:40:55 EST


tree: https://github.com/dsahern/linux vrf-keep-orig-oif
head: 9830d54a15a0e242fe89180d8e54fe04211abd82
commit: 038474b9858f889e59d274e2eaea63e2d3bcc00e [1/2] wip - mostly works needs to be simplified
config: sh-allmodconfig (https://download.01.org/0day-ci/archive/20220313/202203131040.XgH7dGI6-lkp@xxxxxxxxx/config)
compiler: sh4-linux-gcc (GCC) 11.2.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://github.com/dsahern/linux/commit/038474b9858f889e59d274e2eaea63e2d3bcc00e
git remote add dsahern https://github.com/dsahern/linux
git fetch --no-tags dsahern vrf-keep-orig-oif
git checkout 038474b9858f889e59d274e2eaea63e2d3bcc00e
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=sh SHELL=/bin/bash net/xfrm/

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/xfrm/xfrm_interface.c: In function 'xfrmi6_err':
>> net/xfrm/xfrm_interface.c:514:55: error: incompatible type for argument 6 of 'ip6_update_pmtu'
514 | ip6_update_pmtu(skb, net, info, 0, 0, sock_net_uid(net, NULL));
| ^~~~~~~~~~~~~~~~~~~~~~~
| |
| kuid_t
In file included from net/xfrm/xfrm_interface.c:39:
include/net/ip6_route.h:186:38: note: expected 'u32' {aka 'unsigned int'} but argument is of type 'kuid_t'
186 | int l3mdev, u32 mark, kuid_t uid);
| ~~~~^~~~
>> net/xfrm/xfrm_interface.c:514:17: error: too few arguments to function 'ip6_update_pmtu'
514 | ip6_update_pmtu(skb, net, info, 0, 0, sock_net_uid(net, NULL));
| ^~~~~~~~~~~~~~~
In file included from net/xfrm/xfrm_interface.c:39:
include/net/ip6_route.h:185:6: note: declared here
185 | void ip6_update_pmtu(struct sk_buff *skb, struct net *net, __be32 mtu, int oif,
| ^~~~~~~~~~~~~~~


vim +/ip6_update_pmtu +514 net/xfrm/xfrm_interface.c

f203b76d78092f Steffen Klassert 2018-06-12 464
f203b76d78092f Steffen Klassert 2018-06-12 465 static int xfrmi6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
f203b76d78092f Steffen Klassert 2018-06-12 466 u8 type, u8 code, int offset, __be32 info)
f203b76d78092f Steffen Klassert 2018-06-12 467 {
f203b76d78092f Steffen Klassert 2018-06-12 468 const struct ipv6hdr *iph = (const struct ipv6hdr *)skb->data;
f203b76d78092f Steffen Klassert 2018-06-12 469 struct net *net = dev_net(skb->dev);
f203b76d78092f Steffen Klassert 2018-06-12 470 int protocol = iph->nexthdr;
f203b76d78092f Steffen Klassert 2018-06-12 471 struct ip_comp_hdr *ipch;
f203b76d78092f Steffen Klassert 2018-06-12 472 struct ip_esp_hdr *esph;
f203b76d78092f Steffen Klassert 2018-06-12 473 struct ip_auth_hdr *ah;
f203b76d78092f Steffen Klassert 2018-06-12 474 struct xfrm_state *x;
f203b76d78092f Steffen Klassert 2018-06-12 475 struct xfrm_if *xi;
f203b76d78092f Steffen Klassert 2018-06-12 476 __be32 spi;
f203b76d78092f Steffen Klassert 2018-06-12 477
f203b76d78092f Steffen Klassert 2018-06-12 478 switch (protocol) {
f203b76d78092f Steffen Klassert 2018-06-12 479 case IPPROTO_ESP:
f203b76d78092f Steffen Klassert 2018-06-12 480 esph = (struct ip_esp_hdr *)(skb->data + offset);
f203b76d78092f Steffen Klassert 2018-06-12 481 spi = esph->spi;
f203b76d78092f Steffen Klassert 2018-06-12 482 break;
f203b76d78092f Steffen Klassert 2018-06-12 483 case IPPROTO_AH:
f203b76d78092f Steffen Klassert 2018-06-12 484 ah = (struct ip_auth_hdr *)(skb->data + offset);
f203b76d78092f Steffen Klassert 2018-06-12 485 spi = ah->spi;
f203b76d78092f Steffen Klassert 2018-06-12 486 break;
f203b76d78092f Steffen Klassert 2018-06-12 487 case IPPROTO_COMP:
f203b76d78092f Steffen Klassert 2018-06-12 488 ipch = (struct ip_comp_hdr *)(skb->data + offset);
f203b76d78092f Steffen Klassert 2018-06-12 489 spi = htonl(ntohs(ipch->cpi));
f203b76d78092f Steffen Klassert 2018-06-12 490 break;
f203b76d78092f Steffen Klassert 2018-06-12 491 default:
f203b76d78092f Steffen Klassert 2018-06-12 492 return 0;
f203b76d78092f Steffen Klassert 2018-06-12 493 }
f203b76d78092f Steffen Klassert 2018-06-12 494
f203b76d78092f Steffen Klassert 2018-06-12 495 if (type != ICMPV6_PKT_TOOBIG &&
f203b76d78092f Steffen Klassert 2018-06-12 496 type != NDISC_REDIRECT)
f203b76d78092f Steffen Klassert 2018-06-12 497 return 0;
f203b76d78092f Steffen Klassert 2018-06-12 498
f203b76d78092f Steffen Klassert 2018-06-12 499 x = xfrm_state_lookup(net, skb->mark, (const xfrm_address_t *)&iph->daddr,
f203b76d78092f Steffen Klassert 2018-06-12 500 spi, protocol, AF_INET6);
f203b76d78092f Steffen Klassert 2018-06-12 501 if (!x)
f203b76d78092f Steffen Klassert 2018-06-12 502 return 0;
f203b76d78092f Steffen Klassert 2018-06-12 503
f203b76d78092f Steffen Klassert 2018-06-12 504 xi = xfrmi_lookup(net, x);
f203b76d78092f Steffen Klassert 2018-06-12 505 if (!xi) {
f203b76d78092f Steffen Klassert 2018-06-12 506 xfrm_state_put(x);
f203b76d78092f Steffen Klassert 2018-06-12 507 return -1;
f203b76d78092f Steffen Klassert 2018-06-12 508 }
f203b76d78092f Steffen Klassert 2018-06-12 509
f203b76d78092f Steffen Klassert 2018-06-12 510 if (type == NDISC_REDIRECT)
f203b76d78092f Steffen Klassert 2018-06-12 511 ip6_redirect(skb, net, skb->dev->ifindex, 0,
f203b76d78092f Steffen Klassert 2018-06-12 512 sock_net_uid(net, NULL));
f203b76d78092f Steffen Klassert 2018-06-12 513 else
f203b76d78092f Steffen Klassert 2018-06-12 @514 ip6_update_pmtu(skb, net, info, 0, 0, sock_net_uid(net, NULL));
f203b76d78092f Steffen Klassert 2018-06-12 515 xfrm_state_put(x);
f203b76d78092f Steffen Klassert 2018-06-12 516
f203b76d78092f Steffen Klassert 2018-06-12 517 return 0;
f203b76d78092f Steffen Klassert 2018-06-12 518 }
f203b76d78092f Steffen Klassert 2018-06-12 519

:::::: The code at line 514 was first introduced by commit
:::::: f203b76d78092faf248db3f851840fbecf80b40e xfrm: Add virtual xfrm interfaces

:::::: TO: Steffen Klassert <steffen.klassert@xxxxxxxxxxx>
:::::: CC: Steffen Klassert <steffen.klassert@xxxxxxxxxxx>

---
0-DAY CI Kernel Test Service
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx