From: kernel test robot <lkp@intel.com>
To: Dmitry Skorodumov <skorodumov.dmitry@huawei.com>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: oe-kbuild-all@lists.linux.dev, andrey.bokhanko@huawei.com,
Dmitry Skorodumov <skorodumov.dmitry@huawei.com>,
Andrew Lunn <andrew+netdev@lunn.ch>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>
Subject: Re: [PATCH net-next 7/8] ipvlan: Support IPv6 for learnable l2-bridge
Date: Fri, 24 Oct 2025 10:21:41 +0800 [thread overview]
Message-ID: <202510241011.2cTY5v7o-lkp@intel.com> (raw)
In-Reply-To: <20251021144410.257905-8-skorodumov.dmitry@huawei.com>
Hi Dmitry,
kernel test robot noticed the following build warnings:
[auto build test WARNING on net-next/main]
url: https://github.com/intel-lab-lkp/linux/commits/Dmitry-Skorodumov/ipvlan-Implement-learnable-L2-bridge/20251021-224923
base: net-next/main
patch link: https://lore.kernel.org/r/20251021144410.257905-8-skorodumov.dmitry%40huawei.com
patch subject: [PATCH net-next 7/8] ipvlan: Support IPv6 for learnable l2-bridge
config: sparc-randconfig-r132-20251023 (https://download.01.org/0day-ci/archive/20251024/202510241011.2cTY5v7o-lkp@intel.com/config)
compiler: sparc-linux-gcc (GCC) 12.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251024/202510241011.2cTY5v7o-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/202510241011.2cTY5v7o-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
drivers/net/ipvlan/ipvlan_core.c:55:36: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] a @@ got restricted __be32 const [usertype] s_addr @@
drivers/net/ipvlan/ipvlan_core.c:55:36: sparse: expected unsigned int [usertype] a
drivers/net/ipvlan/ipvlan_core.c:55:36: sparse: got restricted __be32 const [usertype] s_addr
>> drivers/net/ipvlan/ipvlan_core.c:760:22: sparse: sparse: cast from restricted __be16
>> drivers/net/ipvlan/ipvlan_core.c:760:22: sparse: sparse: incorrect type in initializer (different base types) @@ expected int ndsize @@ got restricted __be16 [usertype] @@
drivers/net/ipvlan/ipvlan_core.c:760:22: sparse: expected int ndsize
drivers/net/ipvlan/ipvlan_core.c:760:22: sparse: got restricted __be16 [usertype]
drivers/net/ipvlan/ipvlan_core.c:819:18: sparse: sparse: cast from restricted __be16
>> drivers/net/ipvlan/ipvlan_core.c:819:16: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] ndsize @@ got restricted __be16 [usertype] @@
drivers/net/ipvlan/ipvlan_core.c:819:16: sparse: expected unsigned short [usertype] ndsize
drivers/net/ipvlan/ipvlan_core.c:819:16: sparse: got restricted __be16 [usertype]
vim +760 drivers/net/ipvlan/ipvlan_core.c
753
754 static u8 *ipvlan_search_icmp6_ll_addr(struct sk_buff *skb, u8 icmp_option)
755 {
756 /* skb is ensured to pullable for all ipv6 payload_len by caller */
757 struct ipv6hdr *ip6h = ipv6_hdr(skb);
758 struct icmp6hdr *icmph = (struct icmp6hdr *)(ip6h + 1);
759 int curr_off = sizeof(*icmph);
> 760 int ndsize = htons(ip6h->payload_len);
761
762 if (icmph->icmp6_type != NDISC_ROUTER_SOLICITATION)
763 curr_off += sizeof(struct in6_addr);
764
765 while ((curr_off + 2) < ndsize) {
766 u8 *data = (u8 *)icmph + curr_off;
767 u32 opt_len = data[1] << 3;
768
769 if (unlikely(opt_len == 0))
770 return NULL;
771
772 if (data[0] != icmp_option) {
773 curr_off += opt_len;
774 continue;
775 }
776
777 if (unlikely(opt_len < ETH_ALEN + 2))
778 return NULL;
779
780 if (unlikely(curr_off + opt_len > ndsize))
781 return NULL;
782
783 return data + 2;
784 }
785
786 return NULL;
787 }
788
789 static void ipvlan_snat_patch_tx_ipv6(struct ipvl_dev *ipvlan,
790 struct sk_buff *skb)
791 {
792 struct ipv6hdr *ip6h;
793 struct icmp6hdr *icmph;
794 u8 icmp_option;
795 u8 *lladdr;
796 u16 ndsize;
797
798 if (unlikely(!pskb_may_pull(skb, sizeof(*ip6h))))
799 return;
800
801 if (ipv6_hdr(skb)->nexthdr != NEXTHDR_ICMP)
802 return;
803
804 if (unlikely(!pskb_may_pull(skb, sizeof(*ip6h) + sizeof(*icmph))))
805 return;
806
807 ip6h = ipv6_hdr(skb);
808 icmph = (struct icmp6hdr *)(ip6h + 1);
809
810 /* Patch Source-LL for solicitation, Target-LL for advertisement */
811 if (icmph->icmp6_type == NDISC_NEIGHBOUR_SOLICITATION ||
812 icmph->icmp6_type == NDISC_ROUTER_SOLICITATION)
813 icmp_option = ND_OPT_SOURCE_LL_ADDR;
814 else if (icmph->icmp6_type == NDISC_NEIGHBOUR_ADVERTISEMENT)
815 icmp_option = ND_OPT_TARGET_LL_ADDR;
816 else
817 return;
818
> 819 ndsize = htons(ip6h->payload_len);
820 if (unlikely(!pskb_may_pull(skb, sizeof(*ip6h) + ndsize)))
821 return;
822
823 lladdr = ipvlan_search_icmp6_ll_addr(skb, icmp_option);
824 if (!lladdr)
825 return;
826
827 ether_addr_copy(lladdr, ipvlan->phy_dev->dev_addr);
828
829 ip6h = ipv6_hdr(skb);
830 icmph = (struct icmp6hdr *)(ip6h + 1);
831 icmph->icmp6_cksum = 0;
832 icmph->icmp6_cksum = csum_ipv6_magic(&ip6h->saddr, &ip6h->daddr,
833 ndsize,
834 IPPROTO_ICMPV6,
835 csum_partial(icmph,
836 ndsize,
837 0));
838 skb->ip_summed = CHECKSUM_COMPLETE;
839 }
840 #else
841 static void ipvlan_snat_patch_tx_ipv6(struct ipvl_dev *ipvlan,
842 struct sk_buff *skb)
843 {
844 }
845 #endif
846
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2025-10-24 2:22 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-21 14:44 [PATCH net-next 0/8] ipvlan: Implement learnable L2-bridge Dmitry Skorodumov
2025-10-21 14:44 ` [PATCH net-next 1/8] " Dmitry Skorodumov
2025-10-22 14:23 ` Simon Horman
2025-10-23 10:21 ` Dmitry Skorodumov
2025-10-23 11:31 ` Simon Horman
2025-10-21 14:44 ` [PATCH net-next 2/8] ipvlan: Send mcasts out directly in ipvlan_xmit_mode_l2() Dmitry Skorodumov
2025-10-21 14:44 ` [PATCH net-next 3/8] ipvlan: Handle rx mcast-ip and unicast eth Dmitry Skorodumov
2025-10-21 14:44 ` [PATCH net-next 4/8] ipvlan: Added some kind of MAC SNAT Dmitry Skorodumov
2025-10-21 14:44 ` [PATCH net-next 5/8] ipvlan: Forget all IP when device goes down Dmitry Skorodumov
2025-10-21 14:44 ` [PATCH net-next 6/8] ipvlan: Support GSO for port -> ipvlan Dmitry Skorodumov
2025-10-22 20:55 ` kernel test robot
2025-10-21 14:44 ` [PATCH net-next 7/8] ipvlan: Support IPv6 for learnable l2-bridge Dmitry Skorodumov
2025-10-23 0:03 ` kernel test robot
2025-10-23 0:24 ` kernel test robot
2025-10-24 2:21 ` kernel test robot [this message]
2025-10-21 14:44 ` [PATCH net-next 8/8] ipvlan: Don't learn child with host-ip Dmitry Skorodumov
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=202510241011.2cTY5v7o-lkp@intel.com \
--to=lkp@intel.com \
--cc=andrew+netdev@lunn.ch \
--cc=andrey.bokhanko@huawei.com \
--cc=edumazet@google.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=pabeni@redhat.com \
--cc=skorodumov.dmitry@huawei.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).