All of lore.kernel.org
 help / color / mirror / Atom feed
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.