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: 22+ 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-06 20:09 ` kernel test robot
2020-10-07 0:26 ` 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
-- strict thread matches above, loose matches on Subject: below --
2020-10-06 21:20 [PATCH bpf-next V1 2/6] bpf: bpf_fib_lookup return MTU value as output when looked up kernel test robot
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 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.