[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202502081713.QmBbIMec-lkp@intel.com>
Date: Sat, 8 Feb 2025 17:24:41 +0800
From: kernel test robot <lkp@...el.com>
To: Willem de Bruijn <willemdebruijn.kernel@...il.com>,
netdev@...r.kernel.org
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
davem@...emloft.net, kuba@...nel.org, edumazet@...gle.com,
pabeni@...hat.com, Willem de Bruijn <willemb@...gle.com>
Subject: Re: [PATCH net-next 4/7] ipv4: remove get_rttos
Hi Willem,
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/Willem-de-Bruijn/tcp-only-initialize-sockcm-tsflags-field/20250207-033912
base: net-next/main
patch link: https://lore.kernel.org/r/20250206193521.2285488-5-willemdebruijn.kernel%40gmail.com
patch subject: [PATCH net-next 4/7] ipv4: remove get_rttos
config: x86_64-buildonly-randconfig-002-20250207 (https://download.01.org/0day-ci/archive/20250208/202502081713.QmBbIMec-lkp@intel.com/config)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250208/202502081713.QmBbIMec-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/202502081713.QmBbIMec-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> net/ipv4/raw.c:608:52: warning: variable 'tos' is uninitialized when used here [-Wuninitialized]
608 | flowi4_init_output(&fl4, ipc.oif, ipc.sockc.mark, tos, scope,
| ^~~
net/ipv4/raw.c:489:8: note: initialize the variable 'tos' to silence this warning
489 | u8 tos, scope;
| ^
| = '\0'
1 warning generated.
--
>> net/ipv4/udp.c:1444:52: warning: variable 'tos' is uninitialized when used here [-Wuninitialized]
1444 | flowi4_init_output(fl4, ipc.oif, ipc.sockc.mark, tos, scope,
| ^~~
net/ipv4/udp.c:1284:8: note: initialize the variable 'tos' to silence this warning
1284 | u8 tos, scope;
| ^
| = '\0'
net/ipv4/udp.c:3883:27: warning: bitwise operation between different enumeration types ('enum bpf_reg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
3883 | PTR_TO_BTF_ID_OR_NULL | PTR_TRUSTED },
| ~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~
2 warnings generated.
--
>> net/ipv4/ping.c:781:52: warning: variable 'tos' is uninitialized when used here [-Wuninitialized]
781 | flowi4_init_output(&fl4, ipc.oif, ipc.sockc.mark, tos, scope,
| ^~~
net/ipv4/ping.c:708:8: note: initialize the variable 'tos' to silence this warning
708 | u8 tos, scope;
| ^
| = '\0'
1 warning generated.
vim +/tos +608 net/ipv4/raw.c
c008ba5bdc9fa8 Herbert Xu 2014-11-07 481
1b784140474e4f Ying Xue 2015-03-02 482 static int raw_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
^1da177e4c3f41 Linus Torvalds 2005-04-16 483 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 484 struct inet_sock *inet = inet_sk(sk);
bb191c3e874650 David Ahern 2015-10-05 485 struct net *net = sock_net(sk);
^1da177e4c3f41 Linus Torvalds 2005-04-16 486 struct ipcm_cookie ipc;
^1da177e4c3f41 Linus Torvalds 2005-04-16 487 struct rtable *rt = NULL;
77968b78242ee2 David S. Miller 2011-05-08 488 struct flowi4 fl4;
c85be08fc4fa44 Guillaume Nault 2023-05-22 489 u8 tos, scope;
^1da177e4c3f41 Linus Torvalds 2005-04-16 490 int free = 0;
3ca3c68e76686b Al Viro 2006-09-27 491 __be32 daddr;
c1d18f9fa09489 Al Viro 2006-09-27 492 __be32 saddr;
959d5c11601b2b Eric Dumazet 2023-09-22 493 int uc_index, err;
f6d8bd051c391c Eric Dumazet 2011-04-21 494 struct ip_options_data opt_copy;
c008ba5bdc9fa8 Herbert Xu 2014-11-07 495 struct raw_frag_vec rfv;
8f659a03a0ba92 Mohamed Ghannam 2017-12-10 496 int hdrincl;
^1da177e4c3f41 Linus Torvalds 2005-04-16 497
^1da177e4c3f41 Linus Torvalds 2005-04-16 498 err = -EMSGSIZE;
926d4b8122fb32 Jesper Juhl 2005-06-18 499 if (len > 0xFFFF)
^1da177e4c3f41 Linus Torvalds 2005-04-16 500 goto out;
^1da177e4c3f41 Linus Torvalds 2005-04-16 501
cafbe182a467bf Eric Dumazet 2023-08-16 502 hdrincl = inet_test_bit(HDRINCL, sk);
cafbe182a467bf Eric Dumazet 2023-08-16 503
^1da177e4c3f41 Linus Torvalds 2005-04-16 504 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 505 * Check the flags.
^1da177e4c3f41 Linus Torvalds 2005-04-16 506 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 507
^1da177e4c3f41 Linus Torvalds 2005-04-16 508 err = -EOPNOTSUPP;
^1da177e4c3f41 Linus Torvalds 2005-04-16 509 if (msg->msg_flags & MSG_OOB) /* Mirror BSD error message */
^1da177e4c3f41 Linus Torvalds 2005-04-16 510 goto out; /* compatibility */
^1da177e4c3f41 Linus Torvalds 2005-04-16 511
^1da177e4c3f41 Linus Torvalds 2005-04-16 512 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 513 * Get and verify the address.
^1da177e4c3f41 Linus Torvalds 2005-04-16 514 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 515
^1da177e4c3f41 Linus Torvalds 2005-04-16 516 if (msg->msg_namelen) {
342dfc306fb321 Steffen Hurrle 2014-01-17 517 DECLARE_SOCKADDR(struct sockaddr_in *, usin, msg->msg_name);
^1da177e4c3f41 Linus Torvalds 2005-04-16 518 err = -EINVAL;
^1da177e4c3f41 Linus Torvalds 2005-04-16 519 if (msg->msg_namelen < sizeof(*usin))
^1da177e4c3f41 Linus Torvalds 2005-04-16 520 goto out;
^1da177e4c3f41 Linus Torvalds 2005-04-16 521 if (usin->sin_family != AF_INET) {
058bd4d2a4ff0a Joe Perches 2012-03-11 522 pr_info_once("%s: %s forgot to set AF_INET. Fix it!\n",
058bd4d2a4ff0a Joe Perches 2012-03-11 523 __func__, current->comm);
^1da177e4c3f41 Linus Torvalds 2005-04-16 524 err = -EAFNOSUPPORT;
^1da177e4c3f41 Linus Torvalds 2005-04-16 525 if (usin->sin_family)
^1da177e4c3f41 Linus Torvalds 2005-04-16 526 goto out;
^1da177e4c3f41 Linus Torvalds 2005-04-16 527 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 528 daddr = usin->sin_addr.s_addr;
^1da177e4c3f41 Linus Torvalds 2005-04-16 529 /* ANK: I did not forget to get protocol from port field.
^1da177e4c3f41 Linus Torvalds 2005-04-16 530 * I just do not know, who uses this weirdness.
^1da177e4c3f41 Linus Torvalds 2005-04-16 531 * IP_HDRINCL is much more convenient.
^1da177e4c3f41 Linus Torvalds 2005-04-16 532 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 533 } else {
^1da177e4c3f41 Linus Torvalds 2005-04-16 534 err = -EDESTADDRREQ;
^1da177e4c3f41 Linus Torvalds 2005-04-16 535 if (sk->sk_state != TCP_ESTABLISHED)
^1da177e4c3f41 Linus Torvalds 2005-04-16 536 goto out;
c720c7e8383aff Eric Dumazet 2009-10-15 537 daddr = inet->inet_daddr;
^1da177e4c3f41 Linus Torvalds 2005-04-16 538 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 539
351782067b6be8 Willem de Bruijn 2018-07-06 540 ipcm_init_sk(&ipc, inet);
3632679d9e4f87 Nicolas Dichtel 2023-05-22 541 /* Keep backward compat */
3632679d9e4f87 Nicolas Dichtel 2023-05-22 542 if (hdrincl)
3632679d9e4f87 Nicolas Dichtel 2023-05-22 543 ipc.protocol = IPPROTO_RAW;
^1da177e4c3f41 Linus Torvalds 2005-04-16 544
^1da177e4c3f41 Linus Torvalds 2005-04-16 545 if (msg->msg_controllen) {
24025c465f77c3 Soheil Hassas Yeganeh 2016-04-02 546 err = ip_cmsg_send(sk, msg, &ipc, false);
919483096bfe75 Eric Dumazet 2016-02-04 547 if (unlikely(err)) {
919483096bfe75 Eric Dumazet 2016-02-04 548 kfree(ipc.opt);
^1da177e4c3f41 Linus Torvalds 2005-04-16 549 goto out;
919483096bfe75 Eric Dumazet 2016-02-04 550 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 551 if (ipc.opt)
^1da177e4c3f41 Linus Torvalds 2005-04-16 552 free = 1;
^1da177e4c3f41 Linus Torvalds 2005-04-16 553 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 554
^1da177e4c3f41 Linus Torvalds 2005-04-16 555 saddr = ipc.addr;
^1da177e4c3f41 Linus Torvalds 2005-04-16 556 ipc.addr = daddr;
^1da177e4c3f41 Linus Torvalds 2005-04-16 557
f6d8bd051c391c Eric Dumazet 2011-04-21 558 if (!ipc.opt) {
f6d8bd051c391c Eric Dumazet 2011-04-21 559 struct ip_options_rcu *inet_opt;
f6d8bd051c391c Eric Dumazet 2011-04-21 560
f6d8bd051c391c Eric Dumazet 2011-04-21 561 rcu_read_lock();
f6d8bd051c391c Eric Dumazet 2011-04-21 562 inet_opt = rcu_dereference(inet->inet_opt);
f6d8bd051c391c Eric Dumazet 2011-04-21 563 if (inet_opt) {
f6d8bd051c391c Eric Dumazet 2011-04-21 564 memcpy(&opt_copy, inet_opt,
f6d8bd051c391c Eric Dumazet 2011-04-21 565 sizeof(*inet_opt) + inet_opt->opt.optlen);
f6d8bd051c391c Eric Dumazet 2011-04-21 566 ipc.opt = &opt_copy.opt;
f6d8bd051c391c Eric Dumazet 2011-04-21 567 }
f6d8bd051c391c Eric Dumazet 2011-04-21 568 rcu_read_unlock();
f6d8bd051c391c Eric Dumazet 2011-04-21 569 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 570
^1da177e4c3f41 Linus Torvalds 2005-04-16 571 if (ipc.opt) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 572 err = -EINVAL;
^1da177e4c3f41 Linus Torvalds 2005-04-16 573 /* Linux does not mangle headers on raw sockets,
^1da177e4c3f41 Linus Torvalds 2005-04-16 574 * so that IP options + IP_HDRINCL is non-sense.
^1da177e4c3f41 Linus Torvalds 2005-04-16 575 */
8f659a03a0ba92 Mohamed Ghannam 2017-12-10 576 if (hdrincl)
^1da177e4c3f41 Linus Torvalds 2005-04-16 577 goto done;
f6d8bd051c391c Eric Dumazet 2011-04-21 578 if (ipc.opt->opt.srr) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 579 if (!daddr)
^1da177e4c3f41 Linus Torvalds 2005-04-16 580 goto done;
f6d8bd051c391c Eric Dumazet 2011-04-21 581 daddr = ipc.opt->opt.faddr;
^1da177e4c3f41 Linus Torvalds 2005-04-16 582 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 583 }
c85be08fc4fa44 Guillaume Nault 2023-05-22 584 scope = ip_sendmsg_scope(inet, &ipc, msg);
^1da177e4c3f41 Linus Torvalds 2005-04-16 585
959d5c11601b2b Eric Dumazet 2023-09-22 586 uc_index = READ_ONCE(inet->uc_index);
f97c1e0c6ebdb6 Joe Perches 2007-12-16 587 if (ipv4_is_multicast(daddr)) {
854da991733d1b Robert Shearman 2018-10-01 588 if (!ipc.oif || netif_index_is_l3_master(sock_net(sk), ipc.oif))
02715925222c13 Eric Dumazet 2023-09-22 589 ipc.oif = READ_ONCE(inet->mc_index);
^1da177e4c3f41 Linus Torvalds 2005-04-16 590 if (!saddr)
02715925222c13 Eric Dumazet 2023-09-22 591 saddr = READ_ONCE(inet->mc_addr);
9515a2e082f914 David Ahern 2018-01-24 592 } else if (!ipc.oif) {
959d5c11601b2b Eric Dumazet 2023-09-22 593 ipc.oif = uc_index;
959d5c11601b2b Eric Dumazet 2023-09-22 594 } else if (ipv4_is_lbcast(daddr) && uc_index) {
645f08975f4944 Miaohe Lin 2020-08-27 595 /* oif is set, packet is to local broadcast
9515a2e082f914 David Ahern 2018-01-24 596 * and uc_index is set. oif is most likely set
9515a2e082f914 David Ahern 2018-01-24 597 * by sk_bound_dev_if. If uc_index != oif check if the
9515a2e082f914 David Ahern 2018-01-24 598 * oif is an L3 master and uc_index is an L3 slave.
9515a2e082f914 David Ahern 2018-01-24 599 * If so, we want to allow the send using the uc_index.
9515a2e082f914 David Ahern 2018-01-24 600 */
959d5c11601b2b Eric Dumazet 2023-09-22 601 if (ipc.oif != uc_index &&
9515a2e082f914 David Ahern 2018-01-24 602 ipc.oif == l3mdev_master_ifindex_by_index(sock_net(sk),
959d5c11601b2b Eric Dumazet 2023-09-22 603 uc_index)) {
959d5c11601b2b Eric Dumazet 2023-09-22 604 ipc.oif = uc_index;
9515a2e082f914 David Ahern 2018-01-24 605 }
9515a2e082f914 David Ahern 2018-01-24 606 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 607
c85be08fc4fa44 Guillaume Nault 2023-05-22 @608 flowi4_init_output(&fl4, ipc.oif, ipc.sockc.mark, tos, scope,
3632679d9e4f87 Nicolas Dichtel 2023-05-22 609 hdrincl ? ipc.protocol : sk->sk_protocol,
0e0d44ab427554 Steffen Klassert 2013-08-28 610 inet_sk_flowi_flags(sk) |
8f659a03a0ba92 Mohamed Ghannam 2017-12-10 611 (hdrincl ? FLOWI_FLAG_KNOWN_NH : 0),
e2d118a1cb5e60 Lorenzo Colitti 2016-11-04 612 daddr, saddr, 0, 0, sk->sk_uid);
ef164ae3563bf4 David S. Miller 2011-03-31 613
fc1092f5156727 Shigeru Yoshida 2024-04-30 614 fl4.fl4_icmp_type = 0;
fc1092f5156727 Shigeru Yoshida 2024-04-30 615 fl4.fl4_icmp_code = 0;
fc1092f5156727 Shigeru Yoshida 2024-04-30 616
8f659a03a0ba92 Mohamed Ghannam 2017-12-10 617 if (!hdrincl) {
b61e9dcc5e77d5 Al Viro 2014-11-24 618 rfv.msg = msg;
c008ba5bdc9fa8 Herbert Xu 2014-11-07 619 rfv.hlen = 0;
c008ba5bdc9fa8 Herbert Xu 2014-11-07 620
c008ba5bdc9fa8 Herbert Xu 2014-11-07 621 err = raw_probe_proto_opt(&rfv, &fl4);
a27b58fed90cc5 Heiko Carstens 2006-10-30 622 if (err)
a27b58fed90cc5 Heiko Carstens 2006-10-30 623 goto done;
a27b58fed90cc5 Heiko Carstens 2006-10-30 624 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 625
3df98d79215ace Paul Moore 2020-09-27 626 security_sk_classify_flow(sk, flowi4_to_flowi_common(&fl4));
bb191c3e874650 David Ahern 2015-10-05 627 rt = ip_route_output_flow(net, &fl4, sk);
b23dd4fe42b455 David S. Miller 2011-03-02 628 if (IS_ERR(rt)) {
b23dd4fe42b455 David S. Miller 2011-03-02 629 err = PTR_ERR(rt);
4910ac6c526d28 David S. Miller 2011-03-28 630 rt = NULL;
^1da177e4c3f41 Linus Torvalds 2005-04-16 631 goto done;
b23dd4fe42b455 David S. Miller 2011-03-02 632 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 633
^1da177e4c3f41 Linus Torvalds 2005-04-16 634 err = -EACCES;
^1da177e4c3f41 Linus Torvalds 2005-04-16 635 if (rt->rt_flags & RTCF_BROADCAST && !sock_flag(sk, SOCK_BROADCAST))
^1da177e4c3f41 Linus Torvalds 2005-04-16 636 goto done;
^1da177e4c3f41 Linus Torvalds 2005-04-16 637
^1da177e4c3f41 Linus Torvalds 2005-04-16 638 if (msg->msg_flags & MSG_CONFIRM)
^1da177e4c3f41 Linus Torvalds 2005-04-16 639 goto do_confirm;
^1da177e4c3f41 Linus Torvalds 2005-04-16 640 back_from_confirm:
^1da177e4c3f41 Linus Torvalds 2005-04-16 641
8f659a03a0ba92 Mohamed Ghannam 2017-12-10 642 if (hdrincl)
7ae9abfd9d6f32 Al Viro 2014-11-27 643 err = raw_send_hdrinc(sk, &fl4, msg, len,
c14ac9451c3483 Soheil Hassas Yeganeh 2016-04-02 644 &rt, msg->msg_flags, &ipc.sockc);
^1da177e4c3f41 Linus Torvalds 2005-04-16 645
^1da177e4c3f41 Linus Torvalds 2005-04-16 646 else {
^1da177e4c3f41 Linus Torvalds 2005-04-16 647 if (!ipc.addr)
77968b78242ee2 David S. Miller 2011-05-08 648 ipc.addr = fl4.daddr;
^1da177e4c3f41 Linus Torvalds 2005-04-16 649 lock_sock(sk);
c008ba5bdc9fa8 Herbert Xu 2014-11-07 650 err = ip_append_data(sk, &fl4, raw_getfrag,
c008ba5bdc9fa8 Herbert Xu 2014-11-07 651 &rfv, len, 0,
2e77d89b2fa8e3 Eric Dumazet 2008-11-24 652 &ipc, &rt, msg->msg_flags);
^1da177e4c3f41 Linus Torvalds 2005-04-16 653 if (err)
^1da177e4c3f41 Linus Torvalds 2005-04-16 654 ip_flush_pending_frames(sk);
6ce9e7b5fe3195 Eric Dumazet 2009-09-02 655 else if (!(msg->msg_flags & MSG_MORE)) {
77968b78242ee2 David S. Miller 2011-05-08 656 err = ip_push_pending_frames(sk, &fl4);
6b5f43ea08150e Eric Dumazet 2023-08-16 657 if (err == -ENOBUFS && !inet_test_bit(RECVERR, sk))
6ce9e7b5fe3195 Eric Dumazet 2009-09-02 658 err = 0;
6ce9e7b5fe3195 Eric Dumazet 2009-09-02 659 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 660 release_sock(sk);
^1da177e4c3f41 Linus Torvalds 2005-04-16 661 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 662 done:
^1da177e4c3f41 Linus Torvalds 2005-04-16 663 if (free)
^1da177e4c3f41 Linus Torvalds 2005-04-16 664 kfree(ipc.opt);
^1da177e4c3f41 Linus Torvalds 2005-04-16 665 ip_rt_put(rt);
^1da177e4c3f41 Linus Torvalds 2005-04-16 666
5418c6926fcb0e Jesper Juhl 2005-06-18 667 out:
5418c6926fcb0e Jesper Juhl 2005-06-18 668 if (err < 0)
5418c6926fcb0e Jesper Juhl 2005-06-18 669 return err;
5418c6926fcb0e Jesper Juhl 2005-06-18 670 return len;
^1da177e4c3f41 Linus Torvalds 2005-04-16 671
^1da177e4c3f41 Linus Torvalds 2005-04-16 672 do_confirm:
0dec879f636f11 Julian Anastasov 2017-02-06 673 if (msg->msg_flags & MSG_PROBE)
0dec879f636f11 Julian Anastasov 2017-02-06 674 dst_confirm_neigh(&rt->dst, &fl4.daddr);
^1da177e4c3f41 Linus Torvalds 2005-04-16 675 if (!(msg->msg_flags & MSG_PROBE) || len)
^1da177e4c3f41 Linus Torvalds 2005-04-16 676 goto back_from_confirm;
^1da177e4c3f41 Linus Torvalds 2005-04-16 677 err = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 678 goto done;
^1da177e4c3f41 Linus Torvalds 2005-04-16 679 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 680
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists