From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (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 E7B633246FA for ; Thu, 13 Nov 2025 21:26:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763069220; cv=none; b=fEySVNHgpY2ePF9X2PIPjCT90xyi15p1SVfsFM9dGoIsRPW9fRIgnSCL0yM972/CHoeLk5/qX41cL5+/vKRoT03ZFULmTVewDllCIeBOjb0IivaAXLIYT/MAUV1lnaE9+wNhE3JnD/tOwbWvCoy/RHv2jJjZLM/IQo0+qW7ayRs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763069220; c=relaxed/simple; bh=C563LsVa6/8e3VjqblDi8r6nB8mnn0chwKQh+7Cmjsg=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=c/mwUKy3azcAiLxP4RRB8tL26FmpB9zWvrn69shJAKvkjtCDo+8T0gtS5dzb46VutfJgeDtkPT0HU1IrX6SzXY/XWikHjJsLujGOStB+QSaVWcv+UuueHjSmCYEecVvCAIXWCc+PXFCRYPjlBiy6X1xjuFaK4kpquxPqFp1lmXU= 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=Td481Bj3; arc=none smtp.client-ip=209.85.214.172 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="Td481Bj3" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-2981f9ce15cso15673595ad.1 for ; Thu, 13 Nov 2025 13:26:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763069218; x=1763674018; darn=lists.linux.dev; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=MvLS0Li6ncU43W6RO/80uOScztDNeTiGNxSyThA+RiM=; b=Td481Bj3x5tadftgK33RhtrfjbR6Ie3YweZRUtGbsgykSmL5COdkSLvAuVua17miFy QiFwxZym5PILoQ8NQJPhYWoDpLkcTyo1LE033iBbzBNBEugI67lDtYKb1lGL31ugY15N 2YoEElVl6eLZuJWSk6wfaJQu9LtONVlhQQUFSXEdzwThkP+bWYuW22R79TdOQ9qBC0vm /kolWGRirGoSEjVuW1pnJRh83X2PKPp8gqEItFVgrKvM4YEVaAmXriK+u4YZQz9Kh5wT 6EYjcYvlfumRiuUWEztdi7iZvy4OjJHMxvLlKaFHoQhQLZ6KuCFGggCB6kKGmnxj+UnO R6fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763069218; x=1763674018; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=MvLS0Li6ncU43W6RO/80uOScztDNeTiGNxSyThA+RiM=; b=ck5rx6BdLF1CLVedeaHuWfGtikxXZR0aLjNpJ1/P0WIxa8u9H/NIBjI1O+AmqnFxdO ElmmxuIuqf75mrB3IE0Dr2IJPriiVMGBbtutBiwkOKRIp/P+OuTw99ZqglDsgqFgVj3Q MrYsSWSmORtI8JPaMTgicEf3jOPu2IeziVBn6EZduM/EdlDNuATIZ8U3NlQjaZdBF9Mg bBWVlYqAOP0uecwIZVt8qFCURXfKkBtr1kgN8flPa40zBrU+l21lxibDpNobriAEmaUc 5Xo77XLIOXUff4sttDIWeTXTjMdk20MY7dTYfTnpsSYnYQAbGmj/xpUFQ8R8mEZ+N1h5 1SpA== X-Forwarded-Encrypted: i=1; AJvYcCUjnj8Rh2PbNBiHpy0upJOhtMikh57FdKO6OjZ1bvysEYdur9oqvxb0U+U6q3rOireNDbjH@lists.linux.dev X-Gm-Message-State: AOJu0YwYwYX+StpK05YgEvYaoOj8ZMNJZ/me9YB71YgZ8QOnuqWPDFyP 4XYBbmlkA5rz2p2cE4ul2htEerbseEXiV9XFo/Mbr/zdTwsP06s8RDwICC9GZGj2SXfI03ImS8w BJ/PhsFgwXIKLthd8RuOwm2BgLcBjmbE= X-Gm-Gg: ASbGnctnrhC+PDbjeVbuno+FclELPkTzi94SDUwoNwpLMv2CZNIBTaK6oSFDyu4wZTY +REoptZaa4lmIdJ0pJWqxHH+ru8n2Jg6H7DcPn8OEc6PCPvBZTqgoTvbfwzttKYpAmTxvOGMNRz SbDGGW3mtgk4v6Pi73JjsIdsOz8a5Gkm5yIUzZxOBsZU76lBcLw2jofaoX7LH2CC1gd4IqLGnr4 ePWAI1Oi1k6dkQeROjBkk6x1lu1dV2VsX9VlHV6qFDar9OzsXEugpEclcEX X-Google-Smtp-Source: AGHT+IEKm9CXDc+kQUPCeykRAkQ1s2Mjxo36u4sHWF3ypb14wEXU8u3tNG0XYM1pygnHZYipY1MFv/VWv8KCRbHyAwY= X-Received: by 2002:a17:902:f550:b0:297:cf96:45bd with SMTP id d9443c01a7336-2986a6bf949mr4415475ad.19.1763069218001; Thu, 13 Nov 2025 13:26:58 -0800 (PST) Precedence: bulk X-Mailing-List: quic@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <56e8d1efe9c7d5db33b0c425bc4c1276a251923d.1761748557.git.lucien.xin@gmail.com> <989d3df8-52cf-41db-bb4c-44950a34ce89@redhat.com> In-Reply-To: From: Xin Long Date: Thu, 13 Nov 2025 16:26:46 -0500 X-Gm-Features: AWmQ_bkpD1XOS0u_fsUfGq1AJ3_cHnv3PQH7YYYwXkikJNe2ApTEEtQau8hdGQk Message-ID: Subject: Re: [PATCH net-next v4 14/15] quic: add frame encoder and decoder base To: Paolo Abeni Cc: network dev , quic@lists.linux.dev, davem@davemloft.net, kuba@kernel.org, Eric Dumazet , Simon Horman , Stefan Metzmacher , Moritz Buhl , Tyler Fanelli , Pengtao He , Thomas Dreibholz , linux-cifs@vger.kernel.org, Steve French , Namjae Jeon , Paulo Alcantara , Tom Talpey , kernel-tls-handshake@lists.linux.dev, Chuck Lever , Jeff Layton , Steve Dickson , Hannes Reinecke , Alexander Aring , David Howells , Matthieu Baerts , John Ericson , Cong Wang , "D . Wythe" , Jason Baron , illiliti , Sabrina Dubroca , Marcelo Ricardo Leitner , Daniel Stenberg , Andy Gospodarek Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Nov 6, 2025 at 12:22=E2=80=AFPM Xin Long wro= te: > > On Tue, Nov 4, 2025 at 7:47=E2=80=AFAM Paolo Abeni wr= ote: > > > > On 10/29/25 3:35 PM, Xin Long wrote: > > > +static void quic_frame_free(struct quic_frame *frame) > > > +{ > > > + struct quic_frame_frag *frag, *next; > > > + > > > + if (!frame->type && frame->skb) { /* RX path frame with skb. */ > > > > Are RX path frame with !skb expected/possible? such frames will be > > 'misinterpreted' as TX ones, specifically will do `kfree(frame->data)` > > which in turn could be a bad thing. > > > Yes, when generating and delivering an event to userspace, it > keeps the frame content into frame->data, instead of frame->skb. > > There's no need check !frame->type for RX path, and I will change it to: > > if (frame->skb) { /* For stream/crypto/dgram frames on RX. */ > kfree_skb(frame->skb); > goto out; > } > > if skb is set, it will go kfree_skb(frame->skb), instead of kfree(frame->= data). > Because if frame->skb is set, it only needs to do kfree_skb(frame->skb). > Just realized that frame->skb shares a union with frame->flist, which is used only on TX. So instead of removing the check !frame->type, I will put a comment here: /* Handle RX stream/crypto/dgram frames. Use !frame->type to detect= RX, * since frame->skb shares a union with frame->flist, used only on = TX. */ if (!frame->type && frame->skb) { Thanks.