From nobody Sun Feb 8 03:11:57 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 34F7A2853FF for ; Thu, 22 May 2025 09:23:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747905802; cv=none; b=sGRQHrnLTXeBSJo4Dfvdj+2LqIh2rFCIqgo4rsQGSBQETnR6Z4oJLx7+NIg8bxE7yammOtDRUOCp8x+oKC+6bwalQC9jX7bbHTqykan0v7tlzJ3mmg9e4RqpAFj8u79TDWZ9EVWQfkrxOWEJyQWB5crEtUSAp7HSUaeiN1GVP0g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747905802; c=relaxed/simple; bh=L1q3r6EMn8Ogho9rDR3IHeldc4308SoVsIShnd+VMwA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kbtJe7stuIYUVJ9/NqlpYsm49pOOdc9xHXtKcC03pbB7I27cyhBNcrKKdPs3zoZnY7Si7jJLRCSJieVlCSvdzj9i58auvPjG1FrTBSVYugzAmLZj22cNF95N2/MjldUICz3YLPAu05hZHtOo/4p3beO+2CUHTqAcVvJYMugScks= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YRj0CYH3; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YRj0CYH3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 287C4C4CEED; Thu, 22 May 2025 09:23:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1747905800; bh=L1q3r6EMn8Ogho9rDR3IHeldc4308SoVsIShnd+VMwA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YRj0CYH3Cly7K+NUITvT7W1dI/729aLGO1YBYi+cjHj8dUe5RDCYnWUZVYG4dmczy 9nIIn3EDNDur7eX+3ogLTWhnmFkm8g8z/vKmLSJKP52Gq8ZtPNmfeUcndwiFeJcr9e N/9Vl5WR2OtYYm1KbC5ZiYTSgjS7oSEQ6qKPSgz3TBaul/T/FawTcX5iRsqX+Zuvi5 u1spmh0YUUIiJ1m9EdAoxbVYsGjh7f3z/4Q44qzWfngeM4Pofw9hMs/ON2WsCZIOyP ED2lcfdAI5GZ2SEF3rWI7H0iO+1VkNAXr6d/3Vqvg4JDqwRNXuckFx9spqOymFOSGW 1piuosdeKtGmg== From: Geliang Tang To: mptcp@lists.linux.dev Cc: hare@kernel.org, Geliang Tang Subject: [PATCH mptcp-next 1/2] mptcp: use sk_eat_skb in recvmsg_mskq Date: Thu, 22 May 2025 17:21:32 +0800 Message-ID: <8cd87b3b0b0345caf64883b0bd4d3379a50b2bd7.1747904572.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang This patch uses sk_eat_skb() helper in __mptcp_recvmsg_mskq() instead of open-coding it. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 2c2618a56b64..a9094cd8bcd0 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1890,8 +1890,7 @@ static int __mptcp_recvmsg_mskq(struct sock *sk, skb->destructor =3D NULL; atomic_sub(skb->truesize, &sk->sk_rmem_alloc); sk_mem_uncharge(sk, skb->truesize); - __skb_unlink(skb, &sk->sk_receive_queue); - __kfree_skb(skb); + sk_eat_skb(sk, skb); msk->bytes_consumed +=3D count; } =20 --=20 2.43.0 From nobody Sun Feb 8 03:11:57 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5707728642A for ; Thu, 22 May 2025 09:23:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747905803; cv=none; b=RTKq5Nm51n430Ng1duNk1YgH+7Jl99iDQ+ud/kqSLfDixTE00emHJ3xo811CKA721167ErUmyE+0/DMZ71XvG6bF9nipQvd7ud8q6+H/BCT+rhbTTnuPYuXrSKi/4JAPACn6zzF+hamLuIKPwJvbbglgQ4ZpbaiTjCecT41+wNc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747905803; c=relaxed/simple; bh=e3QZcKAhKjjHqiT35zOEq8pO76m3DlLR6k5jneXZZGw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=G0x3Q6BFq7UYQyBusprfrHkhTM4x9KgOquVb8YHsP8dvHswNM0ly4dMdrT7Zf4FjYGOLEiy6p4TEPwN7Mww0v7C0ln0cvQHjCwYHbvE3WDejS03YgPAht4VznOp3h5saFfOpb2FhVmCzP8p6LUdrXMfcQIkvI0wy8ZWKOl2DC1g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FQaqUm62; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FQaqUm62" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4F2F2C4CEEF; Thu, 22 May 2025 09:23:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1747905802; bh=e3QZcKAhKjjHqiT35zOEq8pO76m3DlLR6k5jneXZZGw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FQaqUm6211V5DTpM41n7KZcQQghHF908plIjrL35EHRQpGNqocbqcem0D3s7tBkWN aW00Hu11ereiL0cqtUspl8gPaQwAi7k8XnQsDH9WZYBTVO/9I8cGaF1Us0Ym2CR4Ee FIgxdPUgW2CD6b8rQ+uk7AB04Ln3cSlEmXjpDSheusxpfcNQ01ZZ/zg8A6ZKnX46NQ ZI9YQaMMIY6Ol1+7u3BVhRhns3poARJfpAYnezkDsSmwjTAWvoCV5K1+o8RqMvMwVD nuCj0xRI2N6w6LvHvSv4w1J6ZBp/dGF05XSz3bSzaLWVVKp5CauI0WT3ORx4iCha1n nNAqDhaIkoAzw== From: Geliang Tang To: mptcp@lists.linux.dev Cc: hare@kernel.org, Geliang Tang Subject: [PATCH mptcp-next 2/2] mptcp: implement .read_sock Date: Thu, 22 May 2025 17:21:33 +0800 Message-ID: <1f7ebd44d183d92aa891d99b2192bd812eeaeb00.1747904572.git.tanggeliang@kylinos.cn> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Geliang Tang nvme_tcp_try_recv() needs to call .read_sock interface of struct proto_ops, but it is not implemented in MPTCP. This patch implements it with reference to __mptcp_recvmsg_mskq(). Reviewed-by: Hannes Reinecke Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 54 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index a9094cd8bcd0..e5c69b13dbf7 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -3956,6 +3956,58 @@ static __poll_t mptcp_poll(struct file *file, struct= socket *sock, return mask; } =20 +static int mptcp_read_sock(struct sock *sk, read_descriptor_t *desc, + sk_read_actor_t recv_actor) +{ + struct mptcp_sock *msk =3D mptcp_sk(sk); + struct scm_timestamping_internal tss; + struct sk_buff *skb, *tmp; + size_t len =3D INT_MAX; + int copied =3D 0; + + skb_queue_walk_safe(&sk->sk_receive_queue, skb, tmp) { + u32 offset =3D MPTCP_SKB_CB(skb)->offset; + u32 data_len =3D skb->len - offset; + u32 count =3D min_t(size_t, len - copied, data_len); + int used; + + used =3D recv_actor(desc, skb, offset, count); + if (used <=3D 0) { + if (!copied) + copied =3D used; + break; + } + + if (MPTCP_SKB_CB(skb)->has_rxtstamp) + tcp_update_recv_tstamps(skb, &tss); + + copied +=3D used; + + if (used < data_len) { + MPTCP_SKB_CB(skb)->offset +=3D used; + MPTCP_SKB_CB(skb)->map_seq +=3D used; + msk->bytes_consumed +=3D used; + break; + } + + skb->destructor =3D NULL; + atomic_sub(skb->truesize, &sk->sk_rmem_alloc); + sk_mem_uncharge(sk, skb->truesize); + sk_eat_skb(sk, skb); + msk->bytes_consumed +=3D used; + + if (copied >=3D len) + break; + } + + mptcp_rcv_space_adjust(msk, copied); + + if (copied > 0) + mptcp_cleanup_rbuf(msk, copied); + + return copied; +} + static const struct proto_ops mptcp_stream_ops =3D { .family =3D PF_INET, .owner =3D THIS_MODULE, @@ -3976,6 +4028,7 @@ static const struct proto_ops mptcp_stream_ops =3D { .recvmsg =3D inet_recvmsg, .mmap =3D sock_no_mmap, .set_rcvlowat =3D mptcp_set_rcvlowat, + .read_sock =3D mptcp_read_sock, }; =20 static struct inet_protosw mptcp_protosw =3D { @@ -4080,6 +4133,7 @@ static const struct proto_ops mptcp_v6_stream_ops =3D= { .compat_ioctl =3D inet6_compat_ioctl, #endif .set_rcvlowat =3D mptcp_set_rcvlowat, + .read_sock =3D mptcp_read_sock, }; =20 static struct proto mptcp_v6_prot; --=20 2.43.0