tree:
https://github.com/congwang/linux.git sockmap1-v2
head: dbcb8c1d39a99e8cc66bd7ced359d4b986776f78
commit: 847353ec78c927b3a10beb39e7786d6e3b76fb43 [1/5] bpf: clean up
CONFIG_BPF_STREAM_PARSER
config: i386-randconfig-c001-20210209 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
#
https://github.com/congwang/linux/commit/847353ec78c927b3a10beb39e7786d6e...
git remote add congwang
https://github.com/congwang/linux.git
git fetch --no-tags congwang sockmap1-v2
git checkout 847353ec78c927b3a10beb39e7786d6e3b76fb43
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
ld: net/ipv4/tcp_minisocks.o: in function `tcp_create_openreq_child':
> net/ipv4/tcp_minisocks.c:551: undefined reference to
`tcp_bpf_clone'
vim +551 net/ipv4/tcp_minisocks.c
60e2a7780793ba Ursula Braun 2017-10-25 449
^1da177e4c3f41 Linus Torvalds 2005-04-16 450 /* This is not only more
efficient than what we used to do, it eliminates
^1da177e4c3f41 Linus Torvalds 2005-04-16 451 * a lot of code duplication
between IPv4/IPv6 SYN recv processing. -DaveM
^1da177e4c3f41 Linus Torvalds 2005-04-16 452 *
^1da177e4c3f41 Linus Torvalds 2005-04-16 453 * Actually, we could lots of
memory writes here. tp of listening
^1da177e4c3f41 Linus Torvalds 2005-04-16 454 * socket contains all necessary
default parameters.
^1da177e4c3f41 Linus Torvalds 2005-04-16 455 */
c28c6f045945f5 Eric Dumazet 2015-09-29 456 struct sock
*tcp_create_openreq_child(const struct sock *sk,
c28c6f045945f5 Eric Dumazet 2015-09-29 457 struct request_sock
*req,
c28c6f045945f5 Eric Dumazet 2015-09-29 458 struct sk_buff *skb)
^1da177e4c3f41 Linus Torvalds 2005-04-16 459 {
e56c57d0d3fdbb Eric Dumazet 2011-11-08 460 struct sock *newsk =
inet_csk_clone_lock(sk, req, GFP_ATOMIC);
9f1d2604c71498 Arnaldo Carvalho de Melo 2005-08-09 461 const struct inet_request_sock
*ireq = inet_rsk(req);
2e6599cb899ba4 Arnaldo Carvalho de Melo 2005-06-18 462 struct tcp_request_sock *treq =
tcp_rsk(req);
242b1bbe5144de Eric Dumazet 2018-06-26 463 struct inet_connection_sock
*newicsk;
242b1bbe5144de Eric Dumazet 2018-06-26 464 struct tcp_sock *oldtp, *newtp;
dba7d9b8c739df Eric Dumazet 2019-10-10 465 u32 seq;
242b1bbe5144de Eric Dumazet 2018-06-26 466
242b1bbe5144de Eric Dumazet 2018-06-26 467 if (!newsk)
242b1bbe5144de Eric Dumazet 2018-06-26 468 return NULL;
242b1bbe5144de Eric Dumazet 2018-06-26 469
242b1bbe5144de Eric Dumazet 2018-06-26 470 newicsk = inet_csk(newsk);
242b1bbe5144de Eric Dumazet 2018-06-26 471 newtp = tcp_sk(newsk);
242b1bbe5144de Eric Dumazet 2018-06-26 472 oldtp = tcp_sk(sk);
60e2a7780793ba Ursula Braun 2017-10-25 473
60e2a7780793ba Ursula Braun 2017-10-25 474 smc_check_reset_syn_req(oldtp,
req, newtp);
^1da177e4c3f41 Linus Torvalds 2005-04-16 475
^1da177e4c3f41 Linus Torvalds 2005-04-16 476 /* Now setup tcp_sock */
31770e34e43d6c Florian Westphal 2017-08-30 477 newtp->pred_flags = 0;
31770e34e43d6c Florian Westphal 2017-08-30 478
dba7d9b8c739df Eric Dumazet 2019-10-10 479 seq = treq->rcv_isn + 1;
dba7d9b8c739df Eric Dumazet 2019-10-10 480 newtp->rcv_wup = seq;
7db48e98393028 Eric Dumazet 2019-10-10 481 WRITE_ONCE(newtp->copied_seq,
seq);
dba7d9b8c739df Eric Dumazet 2019-10-10 482 WRITE_ONCE(newtp->rcv_nxt,
seq);
a9d99ce28ed359 Eric Dumazet 2016-03-06 483 newtp->segs_in = 1;
435cf559f02ea3 William Allen Simpson 2009-12-02 484
e0d694d638dba7 Eric Dumazet 2019-10-10 485 seq = treq->snt_isn + 1;
e0d694d638dba7 Eric Dumazet 2019-10-10 486 newtp->snd_sml =
newtp->snd_una = seq;
e0d694d638dba7 Eric Dumazet 2019-10-10 487 WRITE_ONCE(newtp->snd_nxt,
seq);
e0d694d638dba7 Eric Dumazet 2019-10-10 488 newtp->snd_up = seq;
^1da177e4c3f41 Linus Torvalds 2005-04-16 489
46d3ceabd8d98e Eric Dumazet 2012-07-11 490
INIT_LIST_HEAD(&newtp->tsq_node);
e2080072ed2d98 Eric Dumazet 2017-10-04 491
INIT_LIST_HEAD(&newtp->tsorted_sent_queue);
^1da177e4c3f41 Linus Torvalds 2005-04-16 492
ee7537b63a28b4 Hantzis Fotis 2009-03-02 493 tcp_init_wl(newtp,
treq->rcv_isn);
^1da177e4c3f41 Linus Torvalds 2005-04-16 494
ac9517fcf31032 Eric Dumazet 2017-05-16 495
minmax_reset(&newtp->rtt_min, tcp_jiffies32, ~0U);
70eabf0e1b8fe1 Eric Dumazet 2017-05-16 496 newicsk->icsk_ack.lrcvtime =
tcp_jiffies32;
^1da177e4c3f41 Linus Torvalds 2005-04-16 497
9a568de4818dea Eric Dumazet 2017-05-16 498 newtp->lsndtime =
tcp_jiffies32;
d8ed625044cded Eric Dumazet 2015-09-22 499 newsk->sk_txhash =
treq->txhash;
375fe02c917929 Yuchung Cheng 2013-07-22 500 newtp->total_retrans =
req->num_retrans;
^1da177e4c3f41 Linus Torvalds 2005-04-16 501
^1da177e4c3f41 Linus Torvalds 2005-04-16 502 tcp_init_xmit_timers(newsk);
0f31746452e679 Eric Dumazet 2019-10-10 503 WRITE_ONCE(newtp->write_seq,
newtp->pushed_seq = treq->snt_isn + 1);
^1da177e4c3f41 Linus Torvalds 2005-04-16 504
^1da177e4c3f41 Linus Torvalds 2005-04-16 505 if (sock_flag(newsk,
SOCK_KEEPOPEN))
463c84b97f2401 Arnaldo Carvalho de Melo 2005-08-09 506
inet_csk_reset_keepalive_timer(newsk,
^1da177e4c3f41 Linus Torvalds 2005-04-16 507
keepalive_time_when(newtp));
^1da177e4c3f41 Linus Torvalds 2005-04-16 508
2e6599cb899ba4 Arnaldo Carvalho de Melo 2005-06-18 509 newtp->rx_opt.tstamp_ok =
ireq->tstamp_ok;
713bafea929201 Yuchung Cheng 2017-11-08 510 newtp->rx_opt.sack_ok =
ireq->sack_ok;
ed53d0ab761f5c Eric Dumazet 2015-10-08 511 newtp->window_clamp =
req->rsk_window_clamp;
ed53d0ab761f5c Eric Dumazet 2015-10-08 512 newtp->rcv_ssthresh =
req->rsk_rcv_wnd;
ed53d0ab761f5c Eric Dumazet 2015-10-08 513 newtp->rcv_wnd =
req->rsk_rcv_wnd;
2e6599cb899ba4 Arnaldo Carvalho de Melo 2005-06-18 514 newtp->rx_opt.wscale_ok =
ireq->wscale_ok;
^1da177e4c3f41 Linus Torvalds 2005-04-16 515 if (newtp->rx_opt.wscale_ok)
{
2e6599cb899ba4 Arnaldo Carvalho de Melo 2005-06-18 516 newtp->rx_opt.snd_wscale =
ireq->snd_wscale;
2e6599cb899ba4 Arnaldo Carvalho de Melo 2005-06-18 517 newtp->rx_opt.rcv_wscale =
ireq->rcv_wscale;
^1da177e4c3f41 Linus Torvalds 2005-04-16 518 } else {
^1da177e4c3f41 Linus Torvalds 2005-04-16 519 newtp->rx_opt.snd_wscale =
newtp->rx_opt.rcv_wscale = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 520 newtp->window_clamp =
min(newtp->window_clamp, 65535U);
^1da177e4c3f41 Linus Torvalds 2005-04-16 521 }
242b1bbe5144de Eric Dumazet 2018-06-26 522 newtp->snd_wnd =
ntohs(tcp_hdr(skb)->window) << newtp->rx_opt.snd_wscale;
^1da177e4c3f41 Linus Torvalds 2005-04-16 523 newtp->max_window =
newtp->snd_wnd;
^1da177e4c3f41 Linus Torvalds 2005-04-16 524
^1da177e4c3f41 Linus Torvalds 2005-04-16 525 if (newtp->rx_opt.tstamp_ok)
{
^1da177e4c3f41 Linus Torvalds 2005-04-16 526 newtp->rx_opt.ts_recent =
req->ts_recent;
cca9bab1b72cd2 Arnd Bergmann 2018-07-11 527
newtp->rx_opt.ts_recent_stamp = ktime_get_seconds();
^1da177e4c3f41 Linus Torvalds 2005-04-16 528 newtp->tcp_header_len =
sizeof(struct tcphdr) + TCPOLEN_TSTAMP_ALIGNED;
^1da177e4c3f41 Linus Torvalds 2005-04-16 529 } else {
^1da177e4c3f41 Linus Torvalds 2005-04-16 530
newtp->rx_opt.ts_recent_stamp = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 531 newtp->tcp_header_len =
sizeof(struct tcphdr);
^1da177e4c3f41 Linus Torvalds 2005-04-16 532 }
336c39a0315139 Yuchung Cheng 2019-04-29 533 if (req->num_timeout) {
336c39a0315139 Yuchung Cheng 2019-04-29 534 newtp->undo_marker =
treq->snt_isn;
336c39a0315139 Yuchung Cheng 2019-04-29 535 newtp->retrans_stamp =
div_u64(treq->snt_synack,
336c39a0315139 Yuchung Cheng 2019-04-29 536 USEC_PER_SEC /
TCP_TS_HZ);
336c39a0315139 Yuchung Cheng 2019-04-29 537 }
95a22caee396ce Florian Westphal 2016-12-01 538 newtp->tsoffset =
treq->ts_off;
cfb6eeb4c86059 YOSHIFUJI Hideaki 2006-11-14 539 #ifdef CONFIG_TCP_MD5SIG
cfb6eeb4c86059 YOSHIFUJI Hideaki 2006-11-14 540 newtp->md5sig_info =
NULL; /*XXX*/
cfb6eeb4c86059 YOSHIFUJI Hideaki 2006-11-14 541 if
(newtp->af_specific->md5_lookup(sk, newsk))
cfb6eeb4c86059 YOSHIFUJI Hideaki 2006-11-14 542 newtp->tcp_header_len +=
TCPOLEN_MD5SIG_ALIGNED;
cfb6eeb4c86059 YOSHIFUJI Hideaki 2006-11-14 543 #endif
bee7ca9ec03a26 William Allen Simpson 2009-11-10 544 if (skb->len >=
TCP_MSS_DEFAULT + newtp->tcp_header_len)
463c84b97f2401 Arnaldo Carvalho de Melo 2005-08-09 545
newicsk->icsk_ack.last_seg_size = skb->len - newtp->tcp_header_len;
^1da177e4c3f41 Linus Torvalds 2005-04-16 546 newtp->rx_opt.mss_clamp =
req->mss;
735d383117e113 Florian Westphal 2014-09-29 547 tcp_ecn_openreq_child(newtp,
req);
8b485ce69876c6 Eric Dumazet 2017-05-03 548 newtp->fastopen_req = NULL;
d983ea6f16b835 Eric Dumazet 2019-10-10 549
RCU_INIT_POINTER(newtp->fastopen_rsk, NULL);
^1da177e4c3f41 Linus Torvalds 2005-04-16 550
e80251555f0bef Jakub Sitnicki 2020-02-18 @551 tcp_bpf_clone(sk, newsk);
e80251555f0bef Jakub Sitnicki 2020-02-18 552
90bbcc608369a1 Eric Dumazet 2016-04-27 553 __TCP_INC_STATS(sock_net(sk),
TCP_MIB_PASSIVEOPENS);
242b1bbe5144de Eric Dumazet 2018-06-26 554
^1da177e4c3f41 Linus Torvalds 2005-04-16 555 return newsk;
^1da177e4c3f41 Linus Torvalds 2005-04-16 556 }
4bc2f18ba4f22a Eric Dumazet 2010-07-09 557
EXPORT_SYMBOL(tcp_create_openreq_child);
^1da177e4c3f41 Linus Torvalds 2005-04-16 558
:::::: The code at line 551 was first introduced by commit
:::::: e80251555f0befd1271e74b080bccf0ff0348bfc tcp_bpf: Don't let child socket
inherit parent protocol ops on copy
:::::: TO: Jakub Sitnicki <jakub(a)cloudflare.com>
:::::: CC: Daniel Borkmann <daniel(a)iogearbox.net>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org