From: kernel test robot <lkp@intel.com>
To: Eric Dumazet <edumazet@google.com>,
"David S . Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>
Cc: oe-kbuild-all@lists.linux.dev, Simon Horman <horms@kernel.org>,
Kuniyuki Iwashima <kuniyu@google.com>,
David Ahern <dsahern@kernel.org>,
netdev@vger.kernel.org, eric.dumazet@gmail.com,
Eric Dumazet <edumazet@google.com>
Subject: Re: [PATCH net-next 09/10] ipv6: adopt skb_dst_dev() and skb_dst_dev_net[_rcu]() helpers
Date: Sat, 28 Jun 2025 10:15:42 +0800 [thread overview]
Message-ID: <202506281042.86fCDDNl-lkp@intel.com> (raw)
In-Reply-To: <20250627112526.3615031-10-edumazet@google.com>
Hi Eric,
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/Eric-Dumazet/net-dst-annotate-data-races-around-dst-obsolete/20250627-192850
base: net-next/main
patch link: https://lore.kernel.org/r/20250627112526.3615031-10-edumazet%40google.com
patch subject: [PATCH net-next 09/10] ipv6: adopt skb_dst_dev() and skb_dst_dev_net[_rcu]() helpers
config: x86_64-buildonly-randconfig-006-20250628 (https://download.01.org/0day-ci/archive/20250628/202506281042.86fCDDNl-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14+deb12u1) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250628/202506281042.86fCDDNl-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202506281042.86fCDDNl-lkp@intel.com/
All errors (new ones prefixed by >>):
net/ipv6/exthdrs.c: In function 'ipv6_rthdr_rcv':
>> net/ipv6/exthdrs.c:786:41: error: too many arguments to function 'dev_net'
786 | if (!ipv6_chk_home_addr(dev_net(skb_dst_dev(skb), addr)) {
| ^~~~~~~
In file included from net/ipv6/exthdrs.c:25:
include/linux/netdevice.h:2711:13: note: declared here
2711 | struct net *dev_net(const struct net_device *dev)
| ^~~~~~~
>> net/ipv6/exthdrs.c:786:22: error: too few arguments to function 'ipv6_chk_home_addr'
786 | if (!ipv6_chk_home_addr(dev_net(skb_dst_dev(skb), addr)) {
| ^~~~~~~~~~~~~~~~~~
In file included from include/net/ip6_route.h:5,
from net/ipv6/exthdrs.c:40:
include/net/addrconf.h:122:5: note: declared here
122 | int ipv6_chk_home_addr(struct net *net, const struct in6_addr *addr);
| ^~~~~~~~~~~~~~~~~~
>> net/ipv6/exthdrs.c:786:73: error: expected ')' before '{' token
786 | if (!ipv6_chk_home_addr(dev_net(skb_dst_dev(skb), addr)) {
| ~ ^~
| )
>> net/ipv6/exthdrs.c:795:9: error: expected expression before '}' token
795 | }
| ^
vim +/dev_net +786 net/ipv6/exthdrs.c
642
643 /********************************
644 Routing header.
645 ********************************/
646
647 /* called with rcu_read_lock() */
648 static int ipv6_rthdr_rcv(struct sk_buff *skb)
649 {
650 struct inet6_dev *idev = __in6_dev_get(skb->dev);
651 struct inet6_skb_parm *opt = IP6CB(skb);
652 struct in6_addr *addr = NULL;
653 int n, i;
654 struct ipv6_rt_hdr *hdr;
655 struct rt0_hdr *rthdr;
656 struct net *net = dev_net(skb->dev);
657 int accept_source_route;
658
659 accept_source_route = READ_ONCE(net->ipv6.devconf_all->accept_source_route);
660
661 if (idev)
662 accept_source_route = min(accept_source_route,
663 READ_ONCE(idev->cnf.accept_source_route));
664
665 if (!pskb_may_pull(skb, skb_transport_offset(skb) + 8) ||
666 !pskb_may_pull(skb, (skb_transport_offset(skb) +
667 ((skb_transport_header(skb)[1] + 1) << 3)))) {
668 __IP6_INC_STATS(net, idev, IPSTATS_MIB_INHDRERRORS);
669 kfree_skb(skb);
670 return -1;
671 }
672
673 hdr = (struct ipv6_rt_hdr *)skb_transport_header(skb);
674
675 if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr) ||
676 skb->pkt_type != PACKET_HOST) {
677 __IP6_INC_STATS(net, idev, IPSTATS_MIB_INADDRERRORS);
678 kfree_skb(skb);
679 return -1;
680 }
681
682 switch (hdr->type) {
683 case IPV6_SRCRT_TYPE_4:
684 /* segment routing */
685 return ipv6_srh_rcv(skb);
686 case IPV6_SRCRT_TYPE_3:
687 /* rpl segment routing */
688 return ipv6_rpl_srh_rcv(skb);
689 default:
690 break;
691 }
692
693 looped_back:
694 if (hdr->segments_left == 0) {
695 switch (hdr->type) {
696 #if IS_ENABLED(CONFIG_IPV6_MIP6)
697 case IPV6_SRCRT_TYPE_2:
698 /* Silently discard type 2 header unless it was
699 * processed by own
700 */
701 if (!addr) {
702 __IP6_INC_STATS(net, idev,
703 IPSTATS_MIB_INADDRERRORS);
704 kfree_skb(skb);
705 return -1;
706 }
707 break;
708 #endif
709 default:
710 break;
711 }
712
713 opt->lastopt = opt->srcrt = skb_network_header_len(skb);
714 skb->transport_header += (hdr->hdrlen + 1) << 3;
715 opt->dst0 = opt->dst1;
716 opt->dst1 = 0;
717 opt->nhoff = (&hdr->nexthdr) - skb_network_header(skb);
718 return 1;
719 }
720
721 switch (hdr->type) {
722 #if IS_ENABLED(CONFIG_IPV6_MIP6)
723 case IPV6_SRCRT_TYPE_2:
724 if (accept_source_route < 0)
725 goto unknown_rh;
726 /* Silently discard invalid RTH type 2 */
727 if (hdr->hdrlen != 2 || hdr->segments_left != 1) {
728 __IP6_INC_STATS(net, idev, IPSTATS_MIB_INHDRERRORS);
729 kfree_skb(skb);
730 return -1;
731 }
732 break;
733 #endif
734 default:
735 goto unknown_rh;
736 }
737
738 /*
739 * This is the routing header forwarding algorithm from
740 * RFC 2460, page 16.
741 */
742
743 n = hdr->hdrlen >> 1;
744
745 if (hdr->segments_left > n) {
746 __IP6_INC_STATS(net, idev, IPSTATS_MIB_INHDRERRORS);
747 icmpv6_param_prob(skb, ICMPV6_HDR_FIELD,
748 ((&hdr->segments_left) -
749 skb_network_header(skb)));
750 return -1;
751 }
752
753 /* We are about to mangle packet header. Be careful!
754 Do not damage packets queued somewhere.
755 */
756 if (skb_cloned(skb)) {
757 /* the copy is a forwarded packet */
758 if (pskb_expand_head(skb, 0, 0, GFP_ATOMIC)) {
759 __IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)),
760 IPSTATS_MIB_OUTDISCARDS);
761 kfree_skb(skb);
762 return -1;
763 }
764 hdr = (struct ipv6_rt_hdr *)skb_transport_header(skb);
765 }
766
767 if (skb->ip_summed == CHECKSUM_COMPLETE)
768 skb->ip_summed = CHECKSUM_NONE;
769
770 i = n - --hdr->segments_left;
771
772 rthdr = (struct rt0_hdr *) hdr;
773 addr = rthdr->addr;
774 addr += i - 1;
775
776 switch (hdr->type) {
777 #if IS_ENABLED(CONFIG_IPV6_MIP6)
778 case IPV6_SRCRT_TYPE_2:
779 if (xfrm6_input_addr(skb, (xfrm_address_t *)addr,
780 (xfrm_address_t *)&ipv6_hdr(skb)->saddr,
781 IPPROTO_ROUTING) < 0) {
782 __IP6_INC_STATS(net, idev, IPSTATS_MIB_INADDRERRORS);
783 kfree_skb(skb);
784 return -1;
785 }
> 786 if (!ipv6_chk_home_addr(dev_net(skb_dst_dev(skb), addr)) {
787 __IP6_INC_STATS(net, idev, IPSTATS_MIB_INADDRERRORS);
788 kfree_skb(skb);
789 return -1;
790 }
791 break;
792 #endif
793 default:
794 break;
> 795 }
796
797 if (ipv6_addr_is_multicast(addr)) {
798 __IP6_INC_STATS(net, idev, IPSTATS_MIB_INADDRERRORS);
799 kfree_skb(skb);
800 return -1;
801 }
802
803 swap(*addr, ipv6_hdr(skb)->daddr);
804
805 ip6_route_input(skb);
806 if (skb_dst(skb)->error) {
807 skb_push(skb, -skb_network_offset(skb));
808 dst_input(skb);
809 return -1;
810 }
811
812 if (skb_dst_dev(skb)->flags & IFF_LOOPBACK) {
813 if (ipv6_hdr(skb)->hop_limit <= 1) {
814 __IP6_INC_STATS(net, idev, IPSTATS_MIB_INHDRERRORS);
815 icmpv6_send(skb, ICMPV6_TIME_EXCEED, ICMPV6_EXC_HOPLIMIT,
816 0);
817 kfree_skb(skb);
818 return -1;
819 }
820 ipv6_hdr(skb)->hop_limit--;
821 goto looped_back;
822 }
823
824 skb_push(skb, -skb_network_offset(skb));
825 dst_input(skb);
826 return -1;
827
828 unknown_rh:
829 __IP6_INC_STATS(net, idev, IPSTATS_MIB_INHDRERRORS);
830 icmpv6_param_prob(skb, ICMPV6_HDR_FIELD,
831 (&hdr->type) - skb_network_header(skb));
832 return -1;
833 }
834
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2025-06-28 2:16 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-27 11:25 [PATCH net-next 00/10] net: add data-race annotations around dst fields Eric Dumazet
2025-06-27 11:25 ` [PATCH net-next 01/10] net: dst: annotate data-races around dst->obsolete Eric Dumazet
2025-06-27 17:36 ` Kuniyuki Iwashima
2025-06-27 11:25 ` [PATCH net-next 02/10] net: dst: annotate data-races around dst->expires Eric Dumazet
2025-06-27 17:41 ` Kuniyuki Iwashima
2025-06-27 11:25 ` [PATCH net-next 03/10] net: dst: annotate data-races around dst->lastuse Eric Dumazet
2025-06-27 17:44 ` Kuniyuki Iwashima
2025-06-27 11:25 ` [PATCH net-next 04/10] net: dst: annotate data-races around dst->input Eric Dumazet
2025-06-27 17:51 ` Kuniyuki Iwashima
2025-06-27 11:25 ` [PATCH net-next 05/10] net: dst: annotate data-races around dst->output Eric Dumazet
2025-06-27 17:54 ` Kuniyuki Iwashima
2025-06-27 11:25 ` [PATCH net-next 06/10] net: dst: add four helpers to annotate data-races around dst->dev Eric Dumazet
2025-06-27 17:57 ` Kuniyuki Iwashima
2025-06-27 11:25 ` [PATCH net-next 07/10] ipv4: adopt dst_dev, skb_dst_dev and skb_dst_dev_net[_rcu] Eric Dumazet
2025-06-27 21:01 ` Kuniyuki Iwashima
2025-06-27 11:25 ` [PATCH net-next 08/10] ipv6: adopt dst_dev() helper Eric Dumazet
2025-06-27 21:04 ` Kuniyuki Iwashima
2025-06-27 11:25 ` [PATCH net-next 09/10] ipv6: adopt skb_dst_dev() and skb_dst_dev_net[_rcu]() helpers Eric Dumazet
2025-06-27 21:07 ` Kuniyuki Iwashima
2025-06-28 2:15 ` kernel test robot [this message]
2025-06-27 11:25 ` [PATCH net-next 10/10] ipv6: ip6_mc_input() and ip6_mr_input() cleanups Eric Dumazet
2025-06-27 21:09 ` Kuniyuki Iwashima
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=202506281042.86fCDDNl-lkp@intel.com \
--to=lkp@intel.com \
--cc=davem@davemloft.net \
--cc=dsahern@kernel.org \
--cc=edumazet@google.com \
--cc=eric.dumazet@gmail.com \
--cc=horms@kernel.org \
--cc=kuba@kernel.org \
--cc=kuniyu@google.com \
--cc=netdev@vger.kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=pabeni@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).