From: kernel test robot <lkp@intel.com>
To: Kumar Kartikeya Dwivedi <memxor@gmail.com>
Cc: oe-kbuild-all@lists.linux.dev
Subject: [kkdwivedi:xdp-tcp 27/44] net/ipv4/tcp.c:3445:undefined reference to `tcp_xdp_disconnect'
Date: Fri, 09 Oct 2026 14:06:56 +0200 [thread overview]
Message-ID: <202610091456.loit4oK0-lkp@intel.com> (raw)
tree: https://github.com/kkdwivedi/linux xdp-tcp
head: 82fde2d34c9c284bba8b2df97ac7f7ab34719853
commit: 9cf0ff35d7d930f7d54bc29857ae0f820b208a09 [27/44] tcp: Send a served connection's segments on a lean path of their own
config: x86_64-randconfig-r2304-20261009 (https://download.01.org/0day-ci/archive/20261009/202610091456.loit4oK0-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261009/202610091456.loit4oK0-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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202610091456.loit4oK0-lkp@intel.com/
All errors (new ones prefixed by >>):
ld: net/ipv4/tcp.o: in function `tcp_disconnect':
>> net/ipv4/tcp.c:3445:(.text+0x1ac7c): undefined reference to `tcp_xdp_disconnect'
vim +3445 net/ipv4/tcp.c
3360
3361 int tcp_disconnect(struct sock *sk, int flags)
3362 {
3363 struct inet_sock *inet = inet_sk(sk);
3364 struct inet_connection_sock *icsk = inet_csk(sk);
3365 struct tcp_sock *tp = tcp_sk(sk);
3366 int old_state = sk->sk_state;
3367 struct request_sock *req;
3368 u32 seq;
3369
3370 if (old_state != TCP_CLOSE)
3371 tcp_set_state(sk, TCP_CLOSE);
3372
3373 /* ABORT function of RFC793 */
3374 if (old_state == TCP_LISTEN) {
3375 inet_csk_listen_stop(sk);
3376 } else if (unlikely(tp->repair)) {
3377 WRITE_ONCE(sk->sk_err, ECONNABORTED);
3378 } else if (tcp_need_reset(old_state)) {
3379 tcp_send_active_reset(sk, SK_RST_REASON_TCP_STATE);
3380 WRITE_ONCE(sk->sk_err, ECONNRESET);
3381 } else if (tp->snd_nxt != tp->write_seq &&
3382 (1 << old_state) & (TCPF_CLOSING | TCPF_LAST_ACK)) {
3383 /* The last check adjusts for discrepancy of Linux wrt. RFC
3384 * states
3385 */
3386 tcp_send_active_reset(sk,
3387 SK_RST_REASON_TCP_DISCONNECT_WITH_DATA);
3388 WRITE_ONCE(sk->sk_err, ECONNRESET);
3389 } else if (old_state == TCP_SYN_SENT)
3390 WRITE_ONCE(sk->sk_err, ECONNRESET);
3391
3392 tcp_clear_xmit_timers(sk);
3393 __skb_queue_purge(&sk->sk_receive_queue);
3394 WRITE_ONCE(tp->copied_seq, tp->rcv_nxt);
3395 WRITE_ONCE(tp->urg_data, 0);
3396 sk_set_peek_off(sk, -1);
3397 tcp_write_queue_purge(sk);
3398 tcp_fastopen_active_disable_ofo_check(sk);
3399 skb_rbtree_purge(&tp->out_of_order_queue);
3400
3401 inet->inet_dport = 0;
3402
3403 inet_bhash2_reset_saddr(sk);
3404
3405 WRITE_ONCE(sk->sk_shutdown, 0);
3406 sock_reset_flag(sk, SOCK_DONE);
3407 tp->srtt_us = 0;
3408 tp->mdev_us = jiffies_to_usecs(TCP_TIMEOUT_INIT);
3409 tp->rcv_rtt_last_tsecr = 0;
3410
3411 seq = tp->write_seq + tp->max_window + 2;
3412 if (!seq)
3413 seq = 1;
3414 WRITE_ONCE(tp->write_seq, seq);
3415
3416 icsk->icsk_backoff = 0;
3417 WRITE_ONCE(icsk->icsk_probes_out, 0);
3418 icsk->icsk_probes_tstamp = 0;
3419 icsk->icsk_rto = TCP_TIMEOUT_INIT;
3420 WRITE_ONCE(icsk->icsk_rto_min, TCP_RTO_MIN);
3421 WRITE_ONCE(icsk->icsk_delack_max, TCP_DELACK_MAX);
3422 WRITE_ONCE(tp->snd_ssthresh, TCP_INFINITE_SSTHRESH);
3423 tcp_snd_cwnd_set(tp, TCP_INIT_CWND);
3424 tp->snd_cwnd_cnt = 0;
3425 tp->is_cwnd_limited = 0;
3426 tp->max_packets_out = 0;
3427 tp->window_clamp = 0;
3428 tp->delivered = 0;
3429 tp->delivered_ce = 0;
3430 tp->accecn_fail_mode = 0;
3431 tp->saw_accecn_opt = TCP_ACCECN_OPT_NOT_SEEN;
3432 tcp_accecn_init_counters(tp);
3433 tp->prev_ecnfield = 0;
3434 tp->accecn_opt_tstamp = 0;
3435 tp->pkts_acked_ewma = 0;
3436 if (icsk->icsk_ca_initialized && icsk->icsk_ca_ops->release)
3437 icsk->icsk_ca_ops->release(sk);
3438 memset(icsk->icsk_ca_priv, 0, sizeof(icsk->icsk_ca_priv));
3439 icsk->icsk_ca_initialized = 0;
3440 tcp_set_ca_state(sk, TCP_CA_Open);
3441 tp->is_sack_reneg = 0;
3442 tcp_clear_retrans(tp);
3443 tp->total_retrans = 0;
3444 inet_csk_delack_init(sk);
> 3445 tcp_xdp_disconnect(sk);
3446 /* Initialize rcv_mss to TCP_MIN_MSS to avoid division by 0
3447 * issue in __tcp_select_window()
3448 */
3449 icsk->icsk_ack.rcv_mss = TCP_MIN_MSS;
3450 memset(&tp->rx_opt, 0, sizeof(tp->rx_opt));
3451 __sk_dst_reset(sk);
3452 dst_release(unrcu_pointer(xchg(&sk->sk_rx_dst, NULL)));
3453 tcp_saved_syn_free(tp);
3454 tp->compressed_ack = 0;
3455 tp->segs_in = 0;
3456 tp->segs_out = 0;
3457 tp->bytes_sent = 0;
3458 tp->bytes_acked = 0;
3459 tp->bytes_received = 0;
3460 tp->bytes_retrans = 0;
3461 tp->data_segs_in = 0;
3462 tp->data_segs_out = 0;
3463 tp->duplicate_sack[0].start_seq = 0;
3464 tp->duplicate_sack[0].end_seq = 0;
3465 tp->dsack_dups = 0;
3466 tp->reord_seen = 0;
3467 tp->retrans_out = 0;
3468 tp->sacked_out = 0;
3469 tp->tlp_high_seq = 0;
3470 tp->last_oow_ack_time = 0;
3471 tp->plb_rehash = 0;
3472 /* There's a bubble in the pipe until at least the first ACK. */
3473 tp->app_limited = ~0U;
3474 tp->rate_app_limited = 1;
3475 tp->rack.mstamp = 0;
3476 tp->rack.advanced = 0;
3477 tp->rack.reo_wnd_steps = 1;
3478 tp->rack.last_delivered = 0;
3479 tp->rack.reo_wnd_persist = 0;
3480 tp->rack.dsack_seen = 0;
3481 tp->syn_data_acked = 0;
3482 tp->syn_fastopen_child = 0;
3483 tp->rx_opt.saw_tstamp = 0;
3484 tp->rx_opt.dsack = 0;
3485 tp->rx_opt.num_sacks = 0;
3486 tp->rcv_ooopack = 0;
3487
3488
3489 /* Clean up fastopen related fields */
3490 req = rcu_dereference_protected(tp->fastopen_rsk,
3491 lockdep_sock_is_held(sk));
3492 if (req)
3493 reqsk_fastopen_remove(sk, req, false);
3494 tcp_free_fastopen_req(tp);
3495 inet_clear_bit(DEFER_CONNECT, sk);
3496 tp->fastopen_client_fail = 0;
3497
3498 WARN_ON(inet->inet_num && !icsk->icsk_bind_hash);
3499
3500 if (sk->sk_frag.page) {
3501 put_page(sk->sk_frag.page);
3502 sk->sk_frag.page = NULL;
3503 sk->sk_frag.offset = 0;
3504 }
3505 sk_error_report(sk);
3506 return 0;
3507 }
3508
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2026-10-09 12:07 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=202610091456.loit4oK0-lkp@intel.com \
--to=lkp@intel.com \
--cc=memxor@gmail.com \
--cc=oe-kbuild-all@lists.linux.dev \
/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.