From: kernel test robot <lkp@intel.com>
To: Justin Iurman <justin.iurman@uliege.be>
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org
Subject: Re: [RFC net] Discuss seg6 potential wrong behavior
Date: Sat, 19 Mar 2022 06:01:05 +0800 [thread overview]
Message-ID: <202203190555.sLM83GRv-lkp@intel.com> (raw)
In-Reply-To: <20220318202138.37161-1-justin.iurman@uliege.be>
Hi Justin,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on net/master]
url: https://github.com/0day-ci/linux/commits/Justin-Iurman/Discuss-seg6-potential-wrong-behavior/20220319-042938
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git 6bd0c76bd70447aedfeafa9e1fcc249991d6c678
config: x86_64-randconfig-a012 (https://download.01.org/0day-ci/archive/20220319/202203190555.sLM83GRv-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project a6e70e4056dff962ec634c5bd4f2f4105a0bef71)
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/0day-ci/linux/commit/92248dc32f87d0aae6c02a08f29376a32f57b669
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Justin-Iurman/Discuss-seg6-potential-wrong-behavior/20220319-042938
git checkout 92248dc32f87d0aae6c02a08f29376a32f57b669
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash net/ipv6/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> net/ipv6/exthdrs.c:394:8: warning: mixing declarations and code is a C99 extension [-Wdeclaration-after-statement]
int offset = (hdr->hdrlen + 1) << 3;
^
1 warning generated.
vim +394 net/ipv6/exthdrs.c
9baee83406d6a4b David Lebrun 2016-11-08 385
1ababeba4a21f3d David Lebrun 2016-11-08 386 looped_back:
013e8167899d389 David Lebrun 2017-02-02 387 if (hdr->segments_left == 0) {
ee90c6ba341f7f7 Julien Massonneau 2021-03-11 388 if (hdr->nexthdr == NEXTHDR_IPV6 || hdr->nexthdr == NEXTHDR_IPV4) {
92248dc32f87d0a Justin Iurman 2022-03-18 389 if (!accept_seg6) {
92248dc32f87d0a Justin Iurman 2022-03-18 390 kfree_skb(skb);
92248dc32f87d0a Justin Iurman 2022-03-18 391 return -1;
92248dc32f87d0a Justin Iurman 2022-03-18 392 }
92248dc32f87d0a Justin Iurman 2022-03-18 393
1ababeba4a21f3d David Lebrun 2016-11-08 @394 int offset = (hdr->hdrlen + 1) << 3;
1ababeba4a21f3d David Lebrun 2016-11-08 395
1ababeba4a21f3d David Lebrun 2016-11-08 396 skb_postpull_rcsum(skb, skb_network_header(skb),
1ababeba4a21f3d David Lebrun 2016-11-08 397 skb_network_header_len(skb));
1ababeba4a21f3d David Lebrun 2016-11-08 398
1ababeba4a21f3d David Lebrun 2016-11-08 399 if (!pskb_pull(skb, offset)) {
1ababeba4a21f3d David Lebrun 2016-11-08 400 kfree_skb(skb);
1ababeba4a21f3d David Lebrun 2016-11-08 401 return -1;
1ababeba4a21f3d David Lebrun 2016-11-08 402 }
1ababeba4a21f3d David Lebrun 2016-11-08 403 skb_postpull_rcsum(skb, skb_transport_header(skb),
1ababeba4a21f3d David Lebrun 2016-11-08 404 offset);
1ababeba4a21f3d David Lebrun 2016-11-08 405
1ababeba4a21f3d David Lebrun 2016-11-08 406 skb_reset_network_header(skb);
1ababeba4a21f3d David Lebrun 2016-11-08 407 skb_reset_transport_header(skb);
1ababeba4a21f3d David Lebrun 2016-11-08 408 skb->encapsulation = 0;
ee90c6ba341f7f7 Julien Massonneau 2021-03-11 409 if (hdr->nexthdr == NEXTHDR_IPV4)
ee90c6ba341f7f7 Julien Massonneau 2021-03-11 410 skb->protocol = htons(ETH_P_IP);
1ababeba4a21f3d David Lebrun 2016-11-08 411 __skb_tunnel_rx(skb, skb->dev, net);
1ababeba4a21f3d David Lebrun 2016-11-08 412
1ababeba4a21f3d David Lebrun 2016-11-08 413 netif_rx(skb);
1ababeba4a21f3d David Lebrun 2016-11-08 414 return -1;
1ababeba4a21f3d David Lebrun 2016-11-08 415 }
1ababeba4a21f3d David Lebrun 2016-11-08 416
1ababeba4a21f3d David Lebrun 2016-11-08 417 opt->srcrt = skb_network_header_len(skb);
1ababeba4a21f3d David Lebrun 2016-11-08 418 opt->lastopt = opt->srcrt;
1ababeba4a21f3d David Lebrun 2016-11-08 419 skb->transport_header += (hdr->hdrlen + 1) << 3;
1ababeba4a21f3d David Lebrun 2016-11-08 420 opt->nhoff = (&hdr->nexthdr) - skb_network_header(skb);
1ababeba4a21f3d David Lebrun 2016-11-08 421
1ababeba4a21f3d David Lebrun 2016-11-08 422 return 1;
1ababeba4a21f3d David Lebrun 2016-11-08 423 }
1ababeba4a21f3d David Lebrun 2016-11-08 424
1ababeba4a21f3d David Lebrun 2016-11-08 425 if (hdr->segments_left >= (hdr->hdrlen >> 1)) {
bdb7cc643fc9db8 Stephen Suryaputra 2018-04-16 426 __IP6_INC_STATS(net, idev, IPSTATS_MIB_INHDRERRORS);
1ababeba4a21f3d David Lebrun 2016-11-08 427 icmpv6_param_prob(skb, ICMPV6_HDR_FIELD,
1ababeba4a21f3d David Lebrun 2016-11-08 428 ((&hdr->segments_left) -
1ababeba4a21f3d David Lebrun 2016-11-08 429 skb_network_header(skb)));
92248dc32f87d0a Justin Iurman 2022-03-18 430 return -1;
92248dc32f87d0a Justin Iurman 2022-03-18 431 }
92248dc32f87d0a Justin Iurman 2022-03-18 432
92248dc32f87d0a Justin Iurman 2022-03-18 433 if (!accept_seg6) {
92248dc32f87d0a Justin Iurman 2022-03-18 434 kfree_skb(skb);
1ababeba4a21f3d David Lebrun 2016-11-08 435 return -1;
1ababeba4a21f3d David Lebrun 2016-11-08 436 }
1ababeba4a21f3d David Lebrun 2016-11-08 437
1ababeba4a21f3d David Lebrun 2016-11-08 438 if (skb_cloned(skb)) {
1ababeba4a21f3d David Lebrun 2016-11-08 439 if (pskb_expand_head(skb, 0, 0, GFP_ATOMIC)) {
1ababeba4a21f3d David Lebrun 2016-11-08 440 __IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)),
1ababeba4a21f3d David Lebrun 2016-11-08 441 IPSTATS_MIB_OUTDISCARDS);
1ababeba4a21f3d David Lebrun 2016-11-08 442 kfree_skb(skb);
1ababeba4a21f3d David Lebrun 2016-11-08 443 return -1;
1ababeba4a21f3d David Lebrun 2016-11-08 444 }
1ababeba4a21f3d David Lebrun 2016-11-08 445 }
1ababeba4a21f3d David Lebrun 2016-11-08 446
1ababeba4a21f3d David Lebrun 2016-11-08 447 hdr = (struct ipv6_sr_hdr *)skb_transport_header(skb);
1ababeba4a21f3d David Lebrun 2016-11-08 448
1ababeba4a21f3d David Lebrun 2016-11-08 449 hdr->segments_left--;
1ababeba4a21f3d David Lebrun 2016-11-08 450 addr = hdr->segments + hdr->segments_left;
1ababeba4a21f3d David Lebrun 2016-11-08 451
1ababeba4a21f3d David Lebrun 2016-11-08 452 skb_push(skb, sizeof(struct ipv6hdr));
1ababeba4a21f3d David Lebrun 2016-11-08 453
1ababeba4a21f3d David Lebrun 2016-11-08 454 if (skb->ip_summed == CHECKSUM_COMPLETE)
1ababeba4a21f3d David Lebrun 2016-11-08 455 seg6_update_csum(skb);
1ababeba4a21f3d David Lebrun 2016-11-08 456
1ababeba4a21f3d David Lebrun 2016-11-08 457 ipv6_hdr(skb)->daddr = *addr;
1ababeba4a21f3d David Lebrun 2016-11-08 458
1ababeba4a21f3d David Lebrun 2016-11-08 459 skb_dst_drop(skb);
1ababeba4a21f3d David Lebrun 2016-11-08 460
1ababeba4a21f3d David Lebrun 2016-11-08 461 ip6_route_input(skb);
1ababeba4a21f3d David Lebrun 2016-11-08 462
1ababeba4a21f3d David Lebrun 2016-11-08 463 if (skb_dst(skb)->error) {
1ababeba4a21f3d David Lebrun 2016-11-08 464 dst_input(skb);
1ababeba4a21f3d David Lebrun 2016-11-08 465 return -1;
1ababeba4a21f3d David Lebrun 2016-11-08 466 }
1ababeba4a21f3d David Lebrun 2016-11-08 467
1ababeba4a21f3d David Lebrun 2016-11-08 468 if (skb_dst(skb)->dev->flags & IFF_LOOPBACK) {
1ababeba4a21f3d David Lebrun 2016-11-08 469 if (ipv6_hdr(skb)->hop_limit <= 1) {
bdb7cc643fc9db8 Stephen Suryaputra 2018-04-16 470 __IP6_INC_STATS(net, idev, IPSTATS_MIB_INHDRERRORS);
1ababeba4a21f3d David Lebrun 2016-11-08 471 icmpv6_send(skb, ICMPV6_TIME_EXCEED,
1ababeba4a21f3d David Lebrun 2016-11-08 472 ICMPV6_EXC_HOPLIMIT, 0);
1ababeba4a21f3d David Lebrun 2016-11-08 473 kfree_skb(skb);
1ababeba4a21f3d David Lebrun 2016-11-08 474 return -1;
1ababeba4a21f3d David Lebrun 2016-11-08 475 }
1ababeba4a21f3d David Lebrun 2016-11-08 476 ipv6_hdr(skb)->hop_limit--;
1ababeba4a21f3d David Lebrun 2016-11-08 477
1ababeba4a21f3d David Lebrun 2016-11-08 478 skb_pull(skb, sizeof(struct ipv6hdr));
1ababeba4a21f3d David Lebrun 2016-11-08 479 goto looped_back;
1ababeba4a21f3d David Lebrun 2016-11-08 480 }
1ababeba4a21f3d David Lebrun 2016-11-08 481
1ababeba4a21f3d David Lebrun 2016-11-08 482 dst_input(skb);
1ababeba4a21f3d David Lebrun 2016-11-08 483
1ababeba4a21f3d David Lebrun 2016-11-08 484 return -1;
1ababeba4a21f3d David Lebrun 2016-11-08 485 }
1ababeba4a21f3d David Lebrun 2016-11-08 486
---
0-DAY CI Kernel Test Service
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
next prev parent reply other threads:[~2022-03-18 22:02 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-18 20:21 [RFC net] Discuss seg6 potential wrong behavior Justin Iurman
2022-03-18 22:01 ` kernel test robot [this message]
2022-03-23 2:10 ` David Ahern
2022-03-30 9:53 ` Justin Iurman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202203190555.sLM83GRv-lkp@intel.com \
--to=lkp@intel.com \
--cc=justin.iurman@uliege.be \
--cc=kbuild-all@lists.01.org \
--cc=llvm@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.