All of lore.kernel.org
 help / color / mirror / Atom feed
* [kkdwivedi:xdp-tcp 27/44] net/ipv4/tcp.c:3445:undefined reference to `tcp_xdp_disconnect'
@ 2026-10-09 12:06 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-10-09 12:06 UTC (permalink / raw)
  To: Kumar Kartikeya Dwivedi; +Cc: oe-kbuild-all

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-10-09 12:07 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-09 12:06 [kkdwivedi:xdp-tcp 27/44] net/ipv4/tcp.c:3445:undefined reference to `tcp_xdp_disconnect' kernel test robot

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.