From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org, Jesper Dangaard Brouer <brouer@redhat.com>,
bpf@vger.kernel.org
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>,
kbuild-all@lists.01.org,
Jesper Dangaard Brouer <brouer@redhat.com>,
netdev@vger.kernel.org, Daniel Borkmann <borkmann@iogearbox.net>,
Alexei Starovoitov <alexei.starovoitov@gmail.com>,
maze@google.com, lmb@cloudflare.com, shaun@tigera.io,
Lorenzo Bianconi <lorenzo@kernel.org>,
marek@cloudflare.com
Subject: Re: [PATCH bpf-next V1 2/6] bpf: bpf_fib_lookup return MTU value as output when looked up
Date: Wed, 7 Oct 2020 10:28:26 +0300 [thread overview]
Message-ID: <20201007072826.GL4282@kadam> (raw)
In-Reply-To: <160200017655.719143.17344942455389603664.stgit@firesoul>
[-- Attachment #1: Type: text/plain, Size: 10264 bytes --]
Hi Jesper,
url: https://github.com/0day-ci/linux/commits/Jesper-Dangaard-Brouer/bpf-New-approach-for-BPF-MTU-handling-and-enforcement/20201007-000903
base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
config: s390-randconfig-m031-20201002 (attached as .config)
compiler: s390-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
net/core/filter.c:5315 bpf_ipv4_fib_lookup() error: uninitialized symbol 'mtu'.
vim +/mtu +5315 net/core/filter.c
87f5fc7e48dd31 David Ahern 2018-05-09 5202 static int bpf_ipv4_fib_lookup(struct net *net, struct bpf_fib_lookup *params,
4f74fede40df8d David Ahern 2018-05-21 5203 u32 flags, bool check_mtu)
87f5fc7e48dd31 David Ahern 2018-05-09 5204 {
eba618abacade7 David Ahern 2019-04-02 5205 struct fib_nh_common *nhc;
87f5fc7e48dd31 David Ahern 2018-05-09 5206 struct in_device *in_dev;
87f5fc7e48dd31 David Ahern 2018-05-09 5207 struct neighbour *neigh;
87f5fc7e48dd31 David Ahern 2018-05-09 5208 struct net_device *dev;
87f5fc7e48dd31 David Ahern 2018-05-09 5209 struct fib_result res;
87f5fc7e48dd31 David Ahern 2018-05-09 5210 struct flowi4 fl4;
87f5fc7e48dd31 David Ahern 2018-05-09 5211 int err;
4f74fede40df8d David Ahern 2018-05-21 5212 u32 mtu;
87f5fc7e48dd31 David Ahern 2018-05-09 5213
87f5fc7e48dd31 David Ahern 2018-05-09 5214 dev = dev_get_by_index_rcu(net, params->ifindex);
87f5fc7e48dd31 David Ahern 2018-05-09 5215 if (unlikely(!dev))
87f5fc7e48dd31 David Ahern 2018-05-09 5216 return -ENODEV;
87f5fc7e48dd31 David Ahern 2018-05-09 5217
87f5fc7e48dd31 David Ahern 2018-05-09 5218 /* verify forwarding is enabled on this interface */
87f5fc7e48dd31 David Ahern 2018-05-09 5219 in_dev = __in_dev_get_rcu(dev);
87f5fc7e48dd31 David Ahern 2018-05-09 5220 if (unlikely(!in_dev || !IN_DEV_FORWARD(in_dev)))
4c79579b44b187 David Ahern 2018-06-26 5221 return BPF_FIB_LKUP_RET_FWD_DISABLED;
87f5fc7e48dd31 David Ahern 2018-05-09 5222
87f5fc7e48dd31 David Ahern 2018-05-09 5223 if (flags & BPF_FIB_LOOKUP_OUTPUT) {
87f5fc7e48dd31 David Ahern 2018-05-09 5224 fl4.flowi4_iif = 1;
87f5fc7e48dd31 David Ahern 2018-05-09 5225 fl4.flowi4_oif = params->ifindex;
87f5fc7e48dd31 David Ahern 2018-05-09 5226 } else {
87f5fc7e48dd31 David Ahern 2018-05-09 5227 fl4.flowi4_iif = params->ifindex;
87f5fc7e48dd31 David Ahern 2018-05-09 5228 fl4.flowi4_oif = 0;
87f5fc7e48dd31 David Ahern 2018-05-09 5229 }
87f5fc7e48dd31 David Ahern 2018-05-09 5230 fl4.flowi4_tos = params->tos & IPTOS_RT_MASK;
87f5fc7e48dd31 David Ahern 2018-05-09 5231 fl4.flowi4_scope = RT_SCOPE_UNIVERSE;
87f5fc7e48dd31 David Ahern 2018-05-09 5232 fl4.flowi4_flags = 0;
87f5fc7e48dd31 David Ahern 2018-05-09 5233
87f5fc7e48dd31 David Ahern 2018-05-09 5234 fl4.flowi4_proto = params->l4_protocol;
87f5fc7e48dd31 David Ahern 2018-05-09 5235 fl4.daddr = params->ipv4_dst;
87f5fc7e48dd31 David Ahern 2018-05-09 5236 fl4.saddr = params->ipv4_src;
87f5fc7e48dd31 David Ahern 2018-05-09 5237 fl4.fl4_sport = params->sport;
87f5fc7e48dd31 David Ahern 2018-05-09 5238 fl4.fl4_dport = params->dport;
1869e226a7b3ef David Ahern 2020-09-13 5239 fl4.flowi4_multipath_hash = 0;
87f5fc7e48dd31 David Ahern 2018-05-09 5240
87f5fc7e48dd31 David Ahern 2018-05-09 5241 if (flags & BPF_FIB_LOOKUP_DIRECT) {
87f5fc7e48dd31 David Ahern 2018-05-09 5242 u32 tbid = l3mdev_fib_table_rcu(dev) ? : RT_TABLE_MAIN;
87f5fc7e48dd31 David Ahern 2018-05-09 5243 struct fib_table *tb;
87f5fc7e48dd31 David Ahern 2018-05-09 5244
87f5fc7e48dd31 David Ahern 2018-05-09 5245 tb = fib_get_table(net, tbid);
87f5fc7e48dd31 David Ahern 2018-05-09 5246 if (unlikely(!tb))
4c79579b44b187 David Ahern 2018-06-26 5247 return BPF_FIB_LKUP_RET_NOT_FWDED;
87f5fc7e48dd31 David Ahern 2018-05-09 5248
87f5fc7e48dd31 David Ahern 2018-05-09 5249 err = fib_table_lookup(tb, &fl4, &res, FIB_LOOKUP_NOREF);
87f5fc7e48dd31 David Ahern 2018-05-09 5250 } else {
87f5fc7e48dd31 David Ahern 2018-05-09 5251 fl4.flowi4_mark = 0;
87f5fc7e48dd31 David Ahern 2018-05-09 5252 fl4.flowi4_secid = 0;
87f5fc7e48dd31 David Ahern 2018-05-09 5253 fl4.flowi4_tun_key.tun_id = 0;
87f5fc7e48dd31 David Ahern 2018-05-09 5254 fl4.flowi4_uid = sock_net_uid(net, NULL);
87f5fc7e48dd31 David Ahern 2018-05-09 5255
87f5fc7e48dd31 David Ahern 2018-05-09 5256 err = fib_lookup(net, &fl4, &res, FIB_LOOKUP_NOREF);
87f5fc7e48dd31 David Ahern 2018-05-09 5257 }
87f5fc7e48dd31 David Ahern 2018-05-09 5258
4c79579b44b187 David Ahern 2018-06-26 5259 if (err) {
4c79579b44b187 David Ahern 2018-06-26 5260 /* map fib lookup errors to RTN_ type */
4c79579b44b187 David Ahern 2018-06-26 5261 if (err == -EINVAL)
4c79579b44b187 David Ahern 2018-06-26 5262 return BPF_FIB_LKUP_RET_BLACKHOLE;
4c79579b44b187 David Ahern 2018-06-26 5263 if (err == -EHOSTUNREACH)
4c79579b44b187 David Ahern 2018-06-26 5264 return BPF_FIB_LKUP_RET_UNREACHABLE;
4c79579b44b187 David Ahern 2018-06-26 5265 if (err == -EACCES)
4c79579b44b187 David Ahern 2018-06-26 5266 return BPF_FIB_LKUP_RET_PROHIBIT;
4c79579b44b187 David Ahern 2018-06-26 5267
4c79579b44b187 David Ahern 2018-06-26 5268 return BPF_FIB_LKUP_RET_NOT_FWDED;
4c79579b44b187 David Ahern 2018-06-26 5269 }
4c79579b44b187 David Ahern 2018-06-26 5270
4c79579b44b187 David Ahern 2018-06-26 5271 if (res.type != RTN_UNICAST)
4c79579b44b187 David Ahern 2018-06-26 5272 return BPF_FIB_LKUP_RET_NOT_FWDED;
87f5fc7e48dd31 David Ahern 2018-05-09 5273
5481d73f81549e David Ahern 2019-06-03 5274 if (fib_info_num_path(res.fi) > 1)
87f5fc7e48dd31 David Ahern 2018-05-09 5275 fib_select_path(net, &res, &fl4, NULL);
87f5fc7e48dd31 David Ahern 2018-05-09 5276
4f74fede40df8d David Ahern 2018-05-21 5277 if (check_mtu) {
4f74fede40df8d David Ahern 2018-05-21 5278 mtu = ip_mtu_from_fib_result(&res, params->ipv4_dst);
ab61fc7ee5c482 Jesper Dangaard Brouer 2020-10-06 5279 if (params->tot_len > mtu) {
ab61fc7ee5c482 Jesper Dangaard Brouer 2020-10-06 5280 params->mtu = mtu; /* union with tot_len */
4c79579b44b187 David Ahern 2018-06-26 5281 return BPF_FIB_LKUP_RET_FRAG_NEEDED;
4f74fede40df8d David Ahern 2018-05-21 5282 }
ab61fc7ee5c482 Jesper Dangaard Brouer 2020-10-06 5283 }
"mtu" is not initialized on else path.
4f74fede40df8d David Ahern 2018-05-21 5284
eba618abacade7 David Ahern 2019-04-02 5285 nhc = res.nhc;
87f5fc7e48dd31 David Ahern 2018-05-09 5286
87f5fc7e48dd31 David Ahern 2018-05-09 5287 /* do not handle lwt encaps right now */
eba618abacade7 David Ahern 2019-04-02 5288 if (nhc->nhc_lwtstate)
4c79579b44b187 David Ahern 2018-06-26 5289 return BPF_FIB_LKUP_RET_UNSUPP_LWT;
87f5fc7e48dd31 David Ahern 2018-05-09 5290
eba618abacade7 David Ahern 2019-04-02 5291 dev = nhc->nhc_dev;
87f5fc7e48dd31 David Ahern 2018-05-09 5292
87f5fc7e48dd31 David Ahern 2018-05-09 5293 params->rt_metric = res.fi->fib_priority;
87f5fc7e48dd31 David Ahern 2018-05-09 5294
87f5fc7e48dd31 David Ahern 2018-05-09 5295 /* xdp and cls_bpf programs are run in RCU-bh so
87f5fc7e48dd31 David Ahern 2018-05-09 5296 * rcu_read_lock_bh is not needed here
87f5fc7e48dd31 David Ahern 2018-05-09 5297 */
6f5f68d05ec0f6 David Ahern 2019-04-05 5298 if (likely(nhc->nhc_gw_family != AF_INET6)) {
6f5f68d05ec0f6 David Ahern 2019-04-05 5299 if (nhc->nhc_gw_family)
6f5f68d05ec0f6 David Ahern 2019-04-05 5300 params->ipv4_dst = nhc->nhc_gw.ipv4;
6f5f68d05ec0f6 David Ahern 2019-04-05 5301
6f5f68d05ec0f6 David Ahern 2019-04-05 5302 neigh = __ipv4_neigh_lookup_noref(dev,
6f5f68d05ec0f6 David Ahern 2019-04-05 5303 (__force u32)params->ipv4_dst);
6f5f68d05ec0f6 David Ahern 2019-04-05 5304 } else {
6f5f68d05ec0f6 David Ahern 2019-04-05 5305 struct in6_addr *dst = (struct in6_addr *)params->ipv6_dst;
6f5f68d05ec0f6 David Ahern 2019-04-05 5306
6f5f68d05ec0f6 David Ahern 2019-04-05 5307 params->family = AF_INET6;
6f5f68d05ec0f6 David Ahern 2019-04-05 5308 *dst = nhc->nhc_gw.ipv6;
6f5f68d05ec0f6 David Ahern 2019-04-05 5309 neigh = __ipv6_neigh_lookup_noref_stub(dev, dst);
6f5f68d05ec0f6 David Ahern 2019-04-05 5310 }
6f5f68d05ec0f6 David Ahern 2019-04-05 5311
4c79579b44b187 David Ahern 2018-06-26 5312 if (!neigh)
4c79579b44b187 David Ahern 2018-06-26 5313 return BPF_FIB_LKUP_RET_NO_NEIGH;
87f5fc7e48dd31 David Ahern 2018-05-09 5314
ab61fc7ee5c482 Jesper Dangaard Brouer 2020-10-06 @5315 return bpf_fib_set_fwd_params(params, neigh, dev, mtu);
^^^
Uninitialized.
87f5fc7e48dd31 David Ahern 2018-05-09 5316 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 20726 bytes --]
next prev parent reply other threads:[~2020-10-07 7:31 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-06 16:02 [PATCH bpf-next V1 0/6] bpf: New approach for BPF MTU handling and enforcement Jesper Dangaard Brouer
2020-10-06 16:02 ` [PATCH bpf-next V1 1/6] bpf: Remove MTU check in __bpf_skb_max_len Jesper Dangaard Brouer
2020-10-06 16:02 ` [PATCH bpf-next V1 2/6] bpf: bpf_fib_lookup return MTU value as output when looked up Jesper Dangaard Brouer
2020-10-07 1:34 ` Maciej Żenczykowski
2020-10-07 7:42 ` Jesper Dangaard Brouer
2020-10-07 16:38 ` David Ahern
2020-10-07 7:28 ` kernel test robot [this message]
2020-10-06 16:03 ` [PATCH bpf-next V1 3/6] bpf: add BPF-helper for reading MTU from net_device via ifindex Jesper Dangaard Brouer
2020-10-06 16:33 ` Jesper Dangaard Brouer
2020-10-07 1:18 ` Jakub Kicinski
2020-10-07 1:24 ` Maciej Żenczykowski
2020-10-07 7:53 ` Jesper Dangaard Brouer
2020-10-07 16:35 ` David Ahern
2020-10-07 17:44 ` Maciej Żenczykowski
2020-10-06 16:03 ` [PATCH bpf-next V1 4/6] bpf: make it possible to identify BPF redirected SKBs Jesper Dangaard Brouer
2020-10-06 16:03 ` [PATCH bpf-next V1 5/6] bpf: Add MTU check for TC-BPF packets after egress hook Jesper Dangaard Brouer
2020-10-06 20:09 ` kernel test robot
2020-10-07 0:26 ` kernel test robot
2020-10-06 16:03 ` [PATCH bpf-next V1 6/6] bpf: drop MTU check when doing TC-BPF redirect to ingress Jesper Dangaard Brouer
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=20201007072826.GL4282@kadam \
--to=lkp@intel.com \
--cc=alexei.starovoitov@gmail.com \
--cc=borkmann@iogearbox.net \
--cc=bpf@vger.kernel.org \
--cc=brouer@redhat.com \
--cc=error27@gmail.com \
--cc=kbuild-all@lists.01.org \
--cc=kbuild@lists.01.org \
--cc=lmb@cloudflare.com \
--cc=lorenzo@kernel.org \
--cc=marek@cloudflare.com \
--cc=maze@google.com \
--cc=netdev@vger.kernel.org \
--cc=shaun@tigera.io \
/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).