[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202410261651.MiKpheOT-lkp@intel.com>
Date: Sat, 26 Oct 2024 16:38:04 +0800
From: kernel test robot <lkp@...el.com>
To: Justin Iurman <justin.iurman@...ege.be>, netdev@...r.kernel.org
Cc: oe-kbuild-all@...ts.linux.dev, davem@...emloft.net, dsahern@...nel.org,
edumazet@...gle.com, kuba@...nel.org, pabeni@...hat.com,
horms@...nel.org, linux-kernel@...r.kernel.org,
justin.iurman@...ege.be
Subject: Re: [PATCH net-next 2/3] net: ipv6: seg6_iptunnel: mitigate
2-realloc issue
Hi Justin,
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/Justin-Iurman/net-ipv6-ioam6_iptunnel-mitigate-2-realloc-issue/20241025-214849
base: net-next/main
patch link: https://lore.kernel.org/r/20241025133727.27742-3-justin.iurman%40uliege.be
patch subject: [PATCH net-next 2/3] net: ipv6: seg6_iptunnel: mitigate 2-realloc issue
config: arc-randconfig-001-20241026 (https://download.01.org/0day-ci/archive/20241026/202410261651.MiKpheOT-lkp@intel.com/config)
compiler: arc-elf-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241026/202410261651.MiKpheOT-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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410261651.MiKpheOT-lkp@intel.com/
All error/warnings (new ones prefixed by >>):
net/ipv6/seg6_iptunnel.c: In function 'seg6_do_srh_encap':
>> net/ipv6/seg6_iptunnel.c:130:16: error: implicit declaration of function '__seg6_do_srh_encap'; did you mean 'seg6_do_srh_encap'? [-Werror=implicit-function-declaration]
130 | return __seg6_do_srh_encap(skb, osrh, proto, NULL);
| ^~~~~~~~~~~~~~~~~~~
| seg6_do_srh_encap
net/ipv6/seg6_iptunnel.c: At top level:
>> net/ipv6/seg6_iptunnel.c:134:5: warning: no previous prototype for '__seg6_do_srh_encap' [-Wmissing-prototypes]
134 | int __seg6_do_srh_encap(struct sk_buff *skb, struct ipv6_sr_hdr *osrh,
| ^~~~~~~~~~~~~~~~~~~
net/ipv6/seg6_iptunnel.c: In function 'seg6_do_srh_inline':
>> net/ipv6/seg6_iptunnel.c:330:16: error: implicit declaration of function '__seg6_do_srh_inline'; did you mean 'seg6_do_srh_inline'? [-Werror=implicit-function-declaration]
330 | return __seg6_do_srh_inline(skb, osrh, NULL);
| ^~~~~~~~~~~~~~~~~~~~
| seg6_do_srh_inline
net/ipv6/seg6_iptunnel.c: At top level:
>> net/ipv6/seg6_iptunnel.c:334:5: warning: no previous prototype for '__seg6_do_srh_inline' [-Wmissing-prototypes]
334 | int __seg6_do_srh_inline(struct sk_buff *skb, struct ipv6_sr_hdr *osrh,
| ^~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +130 net/ipv6/seg6_iptunnel.c
126
127 /* encapsulate an IPv6 packet within an outer IPv6 header with a given SRH */
128 int seg6_do_srh_encap(struct sk_buff *skb, struct ipv6_sr_hdr *osrh, int proto)
129 {
> 130 return __seg6_do_srh_encap(skb, osrh, proto, NULL);
131 }
132 EXPORT_SYMBOL_GPL(seg6_do_srh_encap);
133
> 134 int __seg6_do_srh_encap(struct sk_buff *skb, struct ipv6_sr_hdr *osrh,
135 int proto, struct dst_entry *dst)
136 {
137 struct net *net = dev_net(skb_dst(skb)->dev);
138 struct ipv6hdr *hdr, *inner_hdr;
139 struct ipv6_sr_hdr *isrh;
140 int hdrlen, tot_len, err;
141 __be32 flowlabel;
142
143 hdrlen = (osrh->hdrlen + 1) << 3;
144 tot_len = hdrlen + sizeof(*hdr);
145
146 err = skb_cow_head(skb, tot_len + (!dst ? skb->mac_len
147 : LL_RESERVED_SPACE(dst->dev)));
148 if (unlikely(err))
149 return err;
150
151 inner_hdr = ipv6_hdr(skb);
152 flowlabel = seg6_make_flowlabel(net, skb, inner_hdr);
153
154 skb_push(skb, tot_len);
155 skb_reset_network_header(skb);
156 skb_mac_header_rebuild(skb);
157 hdr = ipv6_hdr(skb);
158
159 /* inherit tc, flowlabel and hlim
160 * hlim will be decremented in ip6_forward() afterwards and
161 * decapsulation will overwrite inner hlim with outer hlim
162 */
163
164 if (skb->protocol == htons(ETH_P_IPV6)) {
165 ip6_flow_hdr(hdr, ip6_tclass(ip6_flowinfo(inner_hdr)),
166 flowlabel);
167 hdr->hop_limit = inner_hdr->hop_limit;
168 } else {
169 ip6_flow_hdr(hdr, 0, flowlabel);
170 hdr->hop_limit = ip6_dst_hoplimit(skb_dst(skb));
171
172 memset(IP6CB(skb), 0, sizeof(*IP6CB(skb)));
173
174 /* the control block has been erased, so we have to set the
175 * iif once again.
176 * We read the receiving interface index directly from the
177 * skb->skb_iif as it is done in the IPv4 receiving path (i.e.:
178 * ip_rcv_core(...)).
179 */
180 IP6CB(skb)->iif = skb->skb_iif;
181 }
182
183 hdr->nexthdr = NEXTHDR_ROUTING;
184
185 isrh = (void *)hdr + sizeof(*hdr);
186 memcpy(isrh, osrh, hdrlen);
187
188 isrh->nexthdr = proto;
189
190 hdr->daddr = isrh->segments[isrh->first_segment];
191 set_tun_src(net, skb_dst(skb)->dev, &hdr->daddr, &hdr->saddr);
192
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists