From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9B2EC2C21FF for ; Sat, 1 Aug 2026 12:53:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.199 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785588798; cv=none; b=jUcXKUSQIjS3Cv0bOG+q/WrW8N7cr1U4S7N+ipBMPMJtbUvIZmimCStgEbSSyeCuTGot8IgyAGtw8IdFGpvciCnNcdLHdtX8VelLt10LuvfRK8F/vsyxT39Cb7lvN35Pf/s9aXO1l0kxZ9lXX/niPiEpOGAUuYGb5pEI/KiExlE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785588798; c=relaxed/simple; bh=AOKZpDSw3Las4QHYsL7qkLgH4+UbyYvjH9SLgnGcoJM=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: Cc:Content-Type; b=l3WFZXgq3Cgcs4n4YEwj5SMUOELq/GHtUVuPqGFMKyI+4v5dt5K0v977c01toFNAPSbCJ9twCa1dVZV+rbl/MBX6qluZZ7W2hsbPr13nsHAWls2c3KIRx3DkRbt5lYRDUGye3dUlG5Z/9mfwpCWFKoLWAL5j642/qB5mYRoVQBQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--almasrymina.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=BfQgzcFv; arc=none smtp.client-ip=209.85.215.199 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--almasrymina.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="BfQgzcFv" Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-ca7c1e22995so3013219a12.3 for ; Sat, 01 Aug 2026 05:53:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1785588797; x=1786193597; darn=vger.kernel.org; h=content-type:cc:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=gAxXXam8n+CPIEdz13wbnbvJt2f6TZ533SHqTK8C3oU=; b=BfQgzcFv+5lBVPjgzNgdFkElJBQPNUyEO1PD3YmfAOv0gIaOhjA4AZzSYfR/jwmkDL A/vCmGmehnh/CghRnv7AA5uwKK3q7L2Nl6Xd6p1ocpKZZHaly9/QOSttmG644WIpxHxm 0lmasBmJBbhHq2qqtFbiRi5Yu0YG3gSA3m1T6DvtwouozTGGlSCz6JnS0tXYZXUGSJaB WpItPrqirmtuMIdbNMEMuhBR7vPOr4nAftDRqV/ew+LbFWqVQGqSNFvQ1RYxaHdpejLf 8Ev1KUHr7SxUtOgFHSzb8E98tepHSji0gV4k3AKUF1X61yWmWrhryFJmtzfvWJkHL2vA kI2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785588797; x=1786193597; h=content-type:cc:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=gAxXXam8n+CPIEdz13wbnbvJt2f6TZ533SHqTK8C3oU=; b=A9wsXMsd8PQ/JU7FA6hDCr251OKtGT5aLTzoKuF+iV0jg3FmeQpaOtAUt+2RuXXpol HcTdAOMbfs/Bs508yYGVCEwb475+fc2kAoMpZamTAw52GM4P/cXrHrCt2EB77W4X8LSo NzkDrDO4FmX9EIK5yLSZRZmB6+JDhjjjpVnJV/AxxkZeUsJdkCZFiLWeG0QCCaLaPtl6 w2GUeGi1c66uWpj71k/UrRQd82iuYi0ur8o54kDYjZmffFgvasjXyL5tlb0l7iioAOWG NNjs0obbQJvaNj9rR8x7LyLsjabh+NvM1RQoopYgCyqDFE/gADA5j42JGPyDU1d4ZtJd 6kIg== X-Forwarded-Encrypted: i=1; AHgh+Rpjgod9U31bmTb9w2BrEO8OFcndtHLhgKibjuH0p9Hk9b78C02YZT2LFQnxKaC1xcnhmrwax+O2q3QquqY=@vger.kernel.org X-Gm-Message-State: AOJu0YwDMuvGtwHHQVej3EN40AP3cUtLRx/7jOsWQbdtCxf3oKfzHdhp JOqT6o2cO7gQa3+ltkEtOzwWCp/Vfdhtn+N9HG1nxHjE5HKzRcC511lbVyVCkRI3GW6WaUOzyMz QWka17W2BeMop3QiRw7p1hXdLxA== X-Received: from dycue2.prod.google.com ([2002:a05:7300:82:b0:30c:1aab:2586]) (user=almasrymina job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:112:b0:3c3:92ba:c61f with SMTP id adf61e73a8af0-3c92a5176cbmr3675379637.8.1785588796761; Sat, 01 Aug 2026 05:53:16 -0700 (PDT) Date: Sat, 1 Aug 2026 12:52:21 +0000 In-Reply-To: <20260801125308.1342897-1-almasrymina@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260801125308.1342897-1-almasrymina@google.com> X-Mailer: git-send-email 2.55.0.571.g244d577d93-goog Message-ID: <20260801125308.1342897-3-almasrymina@google.com> Subject: [PATCH net v1 3/3] net: tcp: block standard payload injection into devmem skbs From: Mina Almasry Cc: Mina Almasry , Pavel Begunkov , Stanislav Fomichev , Bobby Eshleman , Eric Dumazet , Neal Cardwell , Kuniyuki Iwashima , "David S. Miller" , Jakub Kicinski , Paolo Abeni , Simon Horman , Kaiyuan Zhang , "open list:NETWORKING [TCP]" , open list Content-Type: text/plain; charset="UTF-8" Protect tcp_sendmsg_locked() from mistakenly appending non-zerocopy page fragments to unreadable devmem skbs. Create a new segment instead. Fixes: bd61848900bff ("net: devmem: Implement TX path") Cc: Pavel Begunkov Cc: Stanislav Fomichev Cc: Bobby Eshleman Signed-off-by: Mina Almasry --- net/ipv4/tcp.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 455441f1b6949..186a36c698798 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -1278,6 +1278,11 @@ int tcp_sendmsg_locked(struct sock *sk, struct msghdr *msg, size_t size) if (copy > msg_data_left(msg)) copy = msg_data_left(msg); + if (zc != MSG_ZEROCOPY && unlikely(!skb_frags_readable(skb))) { + tcp_mark_push(tp, skb); + goto new_segment; + } + if (zc == 0) { bool merge = true; int i = skb_shinfo(skb)->nr_frags; -- 2.55.0.571.g244d577d93-goog