From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (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 43E2041D620 for ; Mon, 3 Aug 2026 17:32:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785778343; cv=none; b=MwA0ZonX6kpWHQA/48J4e0lULfRscjLsXZGX/u7TUCn0gVnSiPR3S+g1YKd42WsFNccifZXoJ1x6hQU3vfV3mFRdikWSo0O9RgTls61Ymxgm5d5QEtEXstC/OXnXlF9p29C4FnBaZryZtehVk2+NEz36dls5zz3lZuJAzR8yfcA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785778343; c=relaxed/simple; bh=EX8uvH9BeVQAkFCLzO3hLwoyiGO09+5Jw4xPTKtpk9Q=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=I9lXA4HO8hWWszMD/UyM5z/yBFfNnyxeoNOtABzzto8Uk5sA5Xgil98qdDklV+QLm9mVRDBc/svD/Y00UMNykb3vQbOA4pLodLyTuc8bemG9mIb2mterPD1Meg6mk0DYxOU36RaxPVY0CAVjsIYQePd9GzsAyMoNtIC32D4SdkI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=rYifMGBb; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="rYifMGBb" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-2caf228a910so27117015ad.2 for ; Mon, 03 Aug 2026 10:32:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785778341; x=1786383141; darn=vger.kernel.org; h=in-reply-to:content-disposition:content-type:mime-version :references:message-id:subject:cc:to:from:date:from:to:cc:subject :date:message-id:reply-to:content-type; bh=RQTMIRdCXsVsCde5cKr+42MERUQxQLSc7sIpOyCPFdk=; b=rYifMGBbUTkcKTJVF8Sky4+4ZcCwwiZpiLgpzmmkZggMV4BBqIeLIP7S0U3Pe2OGtA 39Go+2UOQgW4YaYOnqpw/tV/3Z9PcZz71tELxz53o9wAM2ysnzIRKyVBfOaTddOHarL+ ViS8jvBDuSJK5Q5bA1tJAqbgoTo0JTsy7ObHmM+i/9FHPHPigY14qUDcw1uqFdTYR6h0 /JhRCB3I0OZ60RrT54B3oE9+mtlzHifWNjbHwLWYRrhU/oor/fV6zhJcxs0wlD0XT1FK Y1PrgT2ToHiG3WlkvEpasyQF46g7dtRoUEgeA3w/3loPZbXqkWhOvNN/feSVsdkmJgIA +neA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785778341; x=1786383141; h=in-reply-to:content-disposition:content-type:mime-version :references:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=RQTMIRdCXsVsCde5cKr+42MERUQxQLSc7sIpOyCPFdk=; b=VzPR0TL95CMjGTW3PH7cEz4YKj1a66oISRYMn28FzA8j/t638hK/gRW6LV9WJJZtyF Nb1AXwXAeuFc4OcKdgBpP3nQ2zfKMvS+zPa3DCUzvoHHhl9svdh2TeoQcxKHE4Ol3V3V 5lqCigvJrk3rhkBnVosSrn6N+4RCo8LVpspm1F0M35cPfoD0CLmJFgx8WIyttBhMqVK2 Oe33pwCv69zzmtkM96iJtGlgGnTKQQuWUXGJVnyggpkh/2t3rre2mnR4xBa4H10TOKKB Gg/QpTesvaKV/DML8gCWSI6D7/jDie3e65qVCMmFzSwK3h7q5e5Cjl2slKmX/KxCjJY0 P3Rw== X-Forwarded-Encrypted: i=1; AHgh+Rr+qyi+FgUuI8y/rjpjSR7EnFov9jv4fxHSj9lPQoM125STtZGiUED0w2q6HZG7hUQr3wjLNMiNOhwoTjU=@vger.kernel.org X-Gm-Message-State: AOJu0YxoLdMKuPbXHvir82r2Rhz1iL0+Ke9goLtQdte9B+AAsJogiztQ wtXKzKqdjQ8MCe5ZXg8tf/HZaFRq1foYxO+tEa+qn7f0+Z0AYEUktfMf X-Gm-Gg: AR+sD137P9SGioyMOeYmhs/l/NeJA/sU+mAuduTNnslOXfktryGuMszoO2povRHsH2k kmo44QbZHyAJszSS+ma+1LkinYKrFfT4/kPLUceDzlf+lguM3WSDlxWu8Elve6xlWCEP1rj96XL DGGb1HObA6HfsPcP5IilzuaqNCzu1a1EakVAtUFL7skMjMjMWOx6xMiizvBsw6fe2Tz95RyIotl T4hcm8Phmw7yc6LApLU18P9c5qTujgpcXiVh7QNRh+4Piq/nnRDeIZ+XZn6pFRljedVxijX8GKU mvO0oq2XpS1tNSDKplJv0AQM22nIenVHTrRbb1vEcts2O+wLCl087xE3KUy77UFxxHR0EcUsjXl WJWY8ZX+P/ZeDFEmajz6zK03s2YHMEMxtnjgIYwRzPlaZ2i/gLb0tRY1+XvySfHNbr2zvzb2GBN +if0xjiaIHdY2A1V8ry6cyo0g9BbyBmIBXnJ/iyN44BtU/lH/y8bwpcw8f+voWhM/ZCpU0h3Uu2 3c2mncCPg== X-Received: by 2002:a17:903:3c23:b0:2ce:93a3:c16c with SMTP id d9443c01a7336-2d0521bbfd1mr106788675ad.12.1785778341319; Mon, 03 Aug 2026 10:32:21 -0700 (PDT) Received: from devvm29614.prn0.facebook.com ([2a03:2880:ff:45::]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d04b0ea002sm41300535ad.49.2026.08.03.10.32.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Aug 2026 10:32:20 -0700 (PDT) Date: Mon, 3 Aug 2026 10:32:18 -0700 From: Bobby Eshleman To: Mina Almasry Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, horms@kernel.org, kerneljasonxing@gmail.com, kuniyu@google.com, bjorn@kernel.org, jiayuan.chen@linux.dev, kaiyuanz@google.com, willemb@google.com, asml.silence@gmail.com, sdf@fomichev.me, fw@strlen.de, Neal Cardwell , Ralf Lici , Will Deacon Subject: Re: [PATCH net v2 2/3] net: devmem: return EMSGSIZE on type mismatch Message-ID: References: <20260803171441.408014-1-almasrymina@google.com> <20260803171441.408014-2-almasrymina@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260803171441.408014-2-almasrymina@google.com> On Mon, Aug 03, 2026 at 05:14:40PM +0000, Mina Almasry wrote: > When a devmem payload mixes with a standard page payload, return > -EMSGSIZE instead of -EFAULT. This enables tcp_sendmsg to seamlessly > fall back to creating a new segment instead of failing the socket send. > > Fixes: bd61848900bff ("net: devmem: Implement TX path") > Cc: Pavel Begunkov > Cc: Stanislav Fomichev > Cc: Bobby Eshleman > Signed-off-by: Mina Almasry > Reviewed-by: Pavel Begunkov > --- > net/core/datagram.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/net/core/datagram.c b/net/core/datagram.c > index 173b5d97bd409..6f8ffd61bcab4 100644 > --- a/net/core/datagram.c > +++ b/net/core/datagram.c > @@ -638,7 +638,7 @@ int zerocopy_fill_skb_from_iter(struct sk_buff *skb, > int frag = skb_shinfo(skb)->nr_frags; > > if (!skb_frags_readable(skb)) > - return -EFAULT; > + return -EMSGSIZE; > > while (length && iov_iter_count(from)) { > struct page *head, *last_head = NULL; > @@ -713,7 +713,7 @@ zerocopy_fill_skb_from_devmem(struct sk_buff *skb, struct iov_iter *from, > struct net_iov *niov; > > if (i && skb_frags_readable(skb)) > - return -EFAULT; > + return -EMSGSIZE; > > /* Devmem filling works by taking an IOVEC from the user where the > * iov_addrs are interpreted as an offset in bytes into the dma-buf to > -- > 2.55.0.571.g244d577d93-goog > Reviewed-by: Bobby Eshleman