[{"id":3669792,"web_url":"http://patchwork.ozlabs.org/comment/3669792/","msgid":"<CADvbK_eXUfnGGQgGc_k-ecCW3-Co1MpGb7UvMgLonPy3HRhyFA@mail.gmail.com>","list_archive_url":null,"date":"2026-03-26T15:06:26","subject":"Re: [PATCH net-next v11 06/15] quic: add stream management","submitter":{"id":61073,"url":"http://patchwork.ozlabs.org/api/people/61073/","name":"Xin Long","email":"lucien.xin@gmail.com"},"content":"On Tue, Mar 24, 2026 at 11:49 PM Xin Long <lucien.xin@gmail.com> wrote:\n>\n> This patch introduces 'struct quic_stream_table' for managing QUIC streams,\n> each represented by 'struct quic_stream'.\n>\n> It implements mechanisms for acquiring and releasing streams on both the\n> send and receive paths, ensuring efficient lifecycle management during\n> transmission and reception.\n>\n> - quic_stream_get(): Acquire a send-side stream by ID and flags during\n>   TX path, or a receive-side stream by ID during RX path.\n>\n> - quic_stream_put(): Release a send-side stream when sending is done,\n>   or a receive-side stream when receiving is done.\n>\n> It includes logic to detect when stream ID limits are reached and when\n> control frames should be sent to update or request limits from the peer.\n>\n> - quic_stream_id_exceeds(): Check a stream ID would exceed local (recv)\n>   or peer (send) limits.\n>\n> - quic_stream_max_streams_update(): Determines whether a\n>   MAX_STREAMS_UNI/BIDI frame should be sent to the peer.\n>\n> Note stream hash table is per socket, the operations on it are always\n> protected by the sock lock.\n>\n> Signed-off-by: Xin Long <lucien.xin@gmail.com>\n> Acked-by: Paolo Abeni <pabeni@redhat.com>\n> ---\n> v3:\n>   - Merge send/recv stream helpers into unified functions to reduce code:\n>     * quic_stream_id_send/recv() → quic_stream_id_valid()\n>     * quic_stream_id_send/recv_closed() → quic_stream_id_closed()\n>     * quic_stream_id_send/recv_exceeds() → quic_stream_id_exceeds()\n>     (pointed out by Paolo).\n>   - Clarify in changelog that stream hash table is always protected by sock\n>     lock (suggested by Paolo).\n>   - quic_stream_init/free(): adjust for new hashtable type; call\n>     quic_stream_delete() in quic_stream_free() to avoid open-coded logic.\n>   - Receiving streams: delete stream only when fully read or reset, instead\n>     of when no data was received. Prevents freeing a stream while a FIN\n>     with no data is still queued.\n> v4:\n>   - Replace struct quic_shash_table with struct hlist_head for the\n>     stream hashtable. Since they are protected by the socket lock,\n>     no per-chain lock is needed.\n>   - Initialize stream to NULL in stream creation functions to avoid\n>     warnings from Smatch (reported by Simon).\n>   - Allocate send streams with GFP_KERNEL_ACCOUNT and receive streams\n>     with GFP_ATOMIC | __GFP_ACCOUNT for memory accounting (suggested\n>     by Paolo).\n> v5:\n>   - Introduce struct quic_stream_limits to merge quic_stream_send_create()\n>     and quic_stream_recv_create(), and to simplify quic_stream_get_param()\n>     (suggested by Paolo).\n>   - Annotate the sock-lock requirement for quic_stream_send/recv_get()\n>     and quic_stream_send/recv_put() (notied by Paolo).\n>   - Add quic_stream_bidi_put() to deduplicate the common logic between\n>     quic_stream_send_put() and quic_stream_recv_put().\n>   - Remove the unnecessary check when incrementing\n>     streams->send.next_bidi/uni_stream_id in quic_stream_create().\n>   - Remove the unused 'is_serv' parameter from quic_stream_get_param().\n> v7:\n>   - Free the allocated streams on error path in quic_stream_create() (noted\n>     by Paolo).\n>   - Merge quic_stream_send_get/put() and quic_stream_recv_get/put() helpers\n>     to quic_stream_get/put() (suggested by Paolo).\n>   - Add more comments in quic_stream_id_exceeds() and quic_stream_create().\n> v8:\n>   - Replace bitfields with plain u8 in struct quic_stream_limits and struct\n>     quic_stream (suggested by Paolo).\n> v9:\n>   - Fix grammar in the comment for quic_stream::send.window.\n> v10:\n>   - Move quic_stream_init() to after sock_prot_inuse_add() ensure counters\n>     are incremented before any early return paths in quic_init_sock(),\n>     preventing underflow in quic_destroy_sock() (noted by AI review).\n>   - Initialize the output parameters '*max_uni' and '*max_bidi' to 0 at the\n>     start of quic_stream_max_streams_update()\n>   - Use 'stream->recv.state > QUIC_STREAM_RECV_STATE_RECVD' instead of '!='\n>     for clearer intent.\n>   - Simplify some state checks in quic_stream_put() by using range\n>     comparisons (> or <) instead of multiple != conditions.\n>   - streams_uni/bidi are u16 type, and their overflow is already prevented\n>     by QUIC_MAX_STREAMS indirectly. Update comment in quic_stream_create().\n>   - Replace open-coded kzalloc(sizeof(*stream)) with kzalloc_obj(*stream)\n>     in quic_stream_create().\n> v11:\n>   - Set maximum line length to 80 characters.\n>   - Change is_serv parameter type to bool in quic_stream_id_local().\n> ---\n>  net/quic/Makefile |   2 +-\n>  net/quic/socket.c |   5 +\n>  net/quic/socket.h |   8 +\n>  net/quic/stream.c | 444 ++++++++++++++++++++++++++++++++++++++++++++++\n>  net/quic/stream.h | 133 ++++++++++++++\n>  5 files changed, 591 insertions(+), 1 deletion(-)\n>  create mode 100644 net/quic/stream.c\n>  create mode 100644 net/quic/stream.h\n>\n> diff --git a/net/quic/Makefile b/net/quic/Makefile\n> index 13bf4a4e5442..094e9da5d739 100644\n> --- a/net/quic/Makefile\n> +++ b/net/quic/Makefile\n> @@ -5,4 +5,4 @@\n>\n>  obj-$(CONFIG_IP_QUIC) += quic.o\n>\n> -quic-y := common.o family.o protocol.o socket.o\n> +quic-y := common.o family.o protocol.o socket.o stream.o\n> diff --git a/net/quic/socket.c b/net/quic/socket.c\n> index 8dc2cb7628db..0006668551f4 100644\n> --- a/net/quic/socket.c\n> +++ b/net/quic/socket.c\n> @@ -45,11 +45,16 @@ static int quic_init_sock(struct sock *sk)\n>         sk_sockets_allocated_inc(sk);\n>         sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1);\n>\n> +       if (quic_stream_init(quic_streams(sk)))\n> +               return -ENOMEM;\n> +\n>         return 0;\n>  }\n>\n>  static void quic_destroy_sock(struct sock *sk)\n>  {\n> +       quic_stream_free(quic_streams(sk));\n> +\n>         quic_data_free(quic_ticket(sk));\n>         quic_data_free(quic_token(sk));\n>         quic_data_free(quic_alpn(sk));\n> diff --git a/net/quic/socket.h b/net/quic/socket.h\n> index 61df0c5867be..e76737b9b74b 100644\n> --- a/net/quic/socket.h\n> +++ b/net/quic/socket.h\n> @@ -13,6 +13,7 @@\n>\n>  #include \"common.h\"\n>  #include \"family.h\"\n> +#include \"stream.h\"\n>\n>  #include \"protocol.h\"\n>\n> @@ -33,6 +34,8 @@ struct quic_sock {\n>         struct quic_data                ticket;\n>         struct quic_data                token;\n>         struct quic_data                alpn;\n> +\n> +       struct quic_stream_table        streams;\n>  };\n>\n>  struct quic6_sock {\n> @@ -65,6 +68,11 @@ static inline struct quic_data *quic_alpn(const struct sock *sk)\n>         return &quic_sk(sk)->alpn;\n>  }\n>\n> +static inline struct quic_stream_table *quic_streams(const struct sock *sk)\n> +{\n> +       return &quic_sk(sk)->streams;\n> +}\n> +\n>  static inline bool quic_is_serv(const struct sock *sk)\n>  {\n>         return !!sk->sk_max_ack_backlog;\n> diff --git a/net/quic/stream.c b/net/quic/stream.c\n> new file mode 100644\n> index 000000000000..4d980f9b03ce\n> --- /dev/null\n> +++ b/net/quic/stream.c\n> @@ -0,0 +1,444 @@\n> +// SPDX-License-Identifier: GPL-2.0-or-later\n> +/* QUIC kernel implementation\n> + * (C) Copyright Red Hat Corp. 2023\n> + *\n> + * This file is part of the QUIC kernel implementation\n> + *\n> + * Initialization/cleanup for QUIC protocol support.\n> + *\n> + * Written or modified by:\n> + *    Xin Long <lucien.xin@gmail.com>\n> + */\n> +\n> +#include <linux/quic.h>\n> +\n> +#include \"common.h\"\n> +#include \"stream.h\"\n> +\n> +/* Check if a stream ID is valid for sending or receiving. */\n> +static bool quic_stream_id_valid(s64 stream_id, bool is_serv, bool send)\n> +{\n> +       u8 type = (stream_id & QUIC_STREAM_TYPE_MASK);\n> +\n> +       if (send) {\n> +               if (is_serv)\n> +                       return type != QUIC_STREAM_TYPE_CLIENT_UNI;\n> +               return type != QUIC_STREAM_TYPE_SERVER_UNI;\n> +       }\n> +       if (is_serv)\n> +               return type != QUIC_STREAM_TYPE_SERVER_UNI;\n> +       return type != QUIC_STREAM_TYPE_CLIENT_UNI;\n> +}\n> +\n> +/* Check if a stream ID was initiated locally. */\n> +static bool quic_stream_id_local(s64 stream_id, bool is_serv)\n> +{\n> +       return is_serv ^ !(stream_id & QUIC_STREAM_TYPE_SERVER_MASK);\n> +}\n> +\n> +/* Check if a stream ID represents a unidirectional stream. */\n> +static bool quic_stream_id_uni(s64 stream_id)\n> +{\n> +       return stream_id & QUIC_STREAM_TYPE_UNI_MASK;\n> +}\n> +\n> +#define QUIC_STREAM_HT_SIZE    64\n> +\n> +static struct hlist_head *quic_stream_head(struct quic_stream_table *streams,\n> +                                          s64 stream_id)\n> +{\n> +       return &streams->head[stream_id & (QUIC_STREAM_HT_SIZE - 1)];\n> +}\n> +\n> +struct quic_stream *quic_stream_find(struct quic_stream_table *streams,\n> +                                    s64 stream_id)\n> +{\n> +       struct hlist_head *head = quic_stream_head(streams, stream_id);\n> +       struct quic_stream *stream;\n> +\n> +       hlist_for_each_entry(stream, head, node) {\n> +               if (stream->id == stream_id)\n> +                       break;\n> +       }\n> +       return stream;\n> +}\n> +\n> +static void quic_stream_add(struct quic_stream_table *streams,\n> +                           struct quic_stream *stream)\n> +{\n> +       struct hlist_head *head;\n> +\n> +       head = quic_stream_head(streams, stream->id);\n> +       hlist_add_head(&stream->node, head);\n> +}\n> +\n> +static void quic_stream_delete(struct quic_stream *stream)\n> +{\n> +       hlist_del_init(&stream->node);\n> +       kfree(stream);\n> +}\n> +\n> +/* Create and register new streams for sending or receiving. */\n> +static struct quic_stream *quic_stream_create(struct quic_stream_table *streams,\n> +                                             s64 max_stream_id, bool send,\n> +                                             bool is_serv)\n> +{\n> +       struct quic_stream_limits *limits = &streams->send;\n> +       struct quic_stream *pos, *stream = NULL;\n> +       gfp_t gfp = GFP_KERNEL_ACCOUNT;\n> +       struct hlist_node *tmp;\n> +       HLIST_HEAD(head);\n> +       s64 stream_id;\n> +       u32 count = 0;\n> +\n> +       if (!send) {\n> +               limits = &streams->recv;\n> +               gfp = GFP_ATOMIC | __GFP_ACCOUNT;\n> +       }\n> +       stream_id = limits->next_bidi_stream_id;\n> +       if (quic_stream_id_uni(max_stream_id))\n> +               stream_id = limits->next_uni_stream_id;\n> +\n> +       /* rfc9000#section-2.1: A stream ID that is used out of order results in\n> +        * all streams of that type with lower-numbered stream IDs also being\n> +        * opened.\n> +        */\n> +       while (stream_id <= max_stream_id) {\n> +               stream = kzalloc_obj(*stream, gfp);\n> +               if (!stream)\n> +                       goto free;\n> +\n> +               stream->id = stream_id;\n> +               if (quic_stream_id_uni(stream_id)) {\n> +                       if (send) {\n> +                               stream->send.max_bytes =\n> +                                       limits->max_stream_data_uni;\n> +                       } else {\n> +                               stream->recv.max_bytes =\n> +                                       limits->max_stream_data_uni;\n> +                               stream->recv.window = stream->recv.max_bytes;\n> +                       }\n> +                       hlist_add_head(&stream->node, &head);\n> +                       stream_id += QUIC_STREAM_ID_STEP;\n> +                       continue;\n> +               }\n> +\n> +               if (quic_stream_id_local(stream_id, is_serv)) {\n> +                       stream->send.max_bytes =\n> +                               streams->send.max_stream_data_bidi_remote;\n> +                       stream->recv.max_bytes =\n> +                               streams->recv.max_stream_data_bidi_local;\n> +               } else {\n> +                       stream->send.max_bytes =\n> +                               streams->send.max_stream_data_bidi_local;\n> +                       stream->recv.max_bytes =\n> +                               streams->recv.max_stream_data_bidi_remote;\n> +               }\n> +               stream->recv.window = stream->recv.max_bytes;\n> +               hlist_add_head(&stream->node, &head);\n> +               stream_id += QUIC_STREAM_ID_STEP;\n> +       }\n> +\n> +       hlist_for_each_entry_safe(pos, tmp, &head, node) {\n> +               hlist_del_init(&pos->node);\n> +               quic_stream_add(streams, pos);\n> +               count++;\n> +       }\n> +\n> +       /* Streams must be opened sequentially. Update the next stream ID so the\n> +        * correct starting point is known if an out-of-order open is requested.\n> +        * Note overflow of next_uni/bidi_stream_id is impossible with s64.\n> +        */\n> +       if (quic_stream_id_uni(stream_id)) {\n> +               limits->next_uni_stream_id = stream_id;\n> +               limits->streams_uni += count;\n> +               return stream;\n> +       }\n> +\n> +       limits->next_bidi_stream_id = stream_id;\n> +       limits->streams_bidi += count;\n> +       return stream;\n> +\n> +free:\n> +       hlist_for_each_entry_safe(pos, tmp, &head, node) {\n> +               hlist_del_init(&pos->node);\n> +               kfree(pos);\n> +       }\n> +       return NULL;\n> +}\n> +\n> +/* Check if a send or receive stream ID is already closed. */\n> +static bool quic_stream_id_closed(struct quic_stream_table *streams,\n> +                                 s64 stream_id, bool send)\n> +{\n> +       struct quic_stream_limits *limits = send ? &streams->send :\n> +                                                  &streams->recv;\n> +\n> +       if (quic_stream_id_uni(stream_id))\n> +               return stream_id < limits->next_uni_stream_id;\n> +       return stream_id < limits->next_bidi_stream_id;\n> +}\n> +\n> +/* Check if a stream ID would exceed local (recv) or peer (send) limits. */\n> +bool quic_stream_id_exceeds(struct quic_stream_table *streams, s64 stream_id,\n> +                           bool send)\n> +{\n> +       u64 nstreams;\n> +\n> +       if (!send) {\n> +               /* recv.max_uni_stream_id is updated in\n> +                * quic_stream_max_streams_update() already based on\n> +                * next_uni/bidi_stream_id, max_streams_uni/bidi, and\n> +                * streams_uni/bidi, so only recv.max_uni_stream_id needs to be\n> +                * checked.\n> +                */\n> +               if (quic_stream_id_uni(stream_id))\n> +                       return stream_id > streams->recv.max_uni_stream_id;\n> +\n> +               return stream_id > streams->recv.max_bidi_stream_id;\n> +       }\n> +\n> +       if (quic_stream_id_uni(stream_id)) {\n> +               if (stream_id > streams->send.max_uni_stream_id)\n> +                       return true;\n> +               stream_id -= streams->send.next_uni_stream_id;\n> +               nstreams = quic_stream_id_to_streams(stream_id);\n> +\n> +               return nstreams + streams->send.streams_uni >\n> +                      streams->send.max_streams_uni;\n> +       }\n> +\n> +       if (stream_id > streams->send.max_bidi_stream_id)\n> +               return true;\n> +       stream_id -= streams->send.next_bidi_stream_id;\n> +       nstreams = quic_stream_id_to_streams(stream_id);\n> +\n> +       return nstreams + streams->send.streams_bidi >\n> +              streams->send.max_streams_bidi;\n> +}\n> +\n> +/* Get or create a send or recv stream by ID. Requires sock lock held. */\n> +struct quic_stream *quic_stream_get(struct quic_stream_table *streams,\n> +                                   s64 stream_id, u32 flags, bool is_serv,\n> +                                   bool send)\n> +{\n> +       struct quic_stream *stream;\n> +\n> +       if (!quic_stream_id_valid(stream_id, is_serv, send))\n> +               return ERR_PTR(-EINVAL);\n> +\n> +       stream = quic_stream_find(streams, stream_id);\n> +       if (stream) {\n> +               if (send && (flags & MSG_QUIC_STREAM_NEW) &&\n> +                   stream->send.state != QUIC_STREAM_SEND_STATE_READY)\n> +                       return ERR_PTR(-EINVAL);\n> +               return stream;\n> +       }\n> +\n> +       if (!send && quic_stream_id_local(stream_id, is_serv)) {\n> +               if (quic_stream_id_closed(streams, stream_id, !send))\n> +                       return ERR_PTR(-ENOSTR);\n> +               return ERR_PTR(-EINVAL);\n> +       }\n> +\n> +       if (quic_stream_id_closed(streams, stream_id, send))\n> +               return ERR_PTR(-ENOSTR);\n> +\n> +       if (send && !(flags & MSG_QUIC_STREAM_NEW))\n> +               return ERR_PTR(-EINVAL);\n> +\n> +       if (quic_stream_id_exceeds(streams, stream_id, send))\n> +               return ERR_PTR(-EAGAIN);\n> +\n> +       stream = quic_stream_create(streams, stream_id, send, is_serv);\n> +       if (!stream)\n> +               return ERR_PTR(-ENOSTR);\n> +\n> +       if (send || quic_stream_id_valid(stream_id, is_serv, !send))\n> +               streams->send.active_stream_id = stream_id;\n> +\n> +       return stream;\n> +}\n> +\n> +/* Release or clean up a send or recv stream. This function updates stream\n> + * counters and state when a send stream has either successfully sent all data\n> + * or has been reset, or when a recv stream has either consumed all data or has\n> + * been reset. Requires sock lock held.\n> + */\n> +void quic_stream_put(struct quic_stream_table *streams,\n> +                    struct quic_stream *stream, bool is_serv, bool send)\n> +{\n> +       if (quic_stream_id_uni(stream->id)) {\n> +               if (send) {\n> +                       /* For uni streams, decrement uni count and delete\n> +                        * immediately.\n> +                        */\n> +                       streams->send.streams_uni--;\n> +                       quic_stream_delete(stream);\n> +                       return;\n> +               }\n> +               /* For uni streams, decrement uni count and mark done. */\n> +               if (!stream->recv.done) {\n> +                       stream->recv.done = 1;\n> +                       streams->recv.streams_uni--;\n> +                       streams->recv.uni_pending = 1;\n> +               }\n> +               /* Delete stream if fully read or reset. */\n> +               if (stream->recv.state > QUIC_STREAM_RECV_STATE_RECVD)\n> +                       quic_stream_delete(stream);\n> +               return;\n> +       }\n> +\n> +       if (send) {\n> +               /* For bidi streams, only proceed if receive side is in a final\n> +                * state.\n> +                */\n> +               if (stream->recv.state < QUIC_STREAM_RECV_STATE_RECVD)\n> +                       return;\n> +       } else {\n> +               /* For bidi streams, only proceed if send side is in a final\n> +                * state.\n> +                */\n> +               if (stream->send.state != QUIC_STREAM_SEND_STATE_RECVD &&\n> +                   stream->send.state != QUIC_STREAM_SEND_STATE_RESET_RECVD)\n> +                       return;\n> +       }\n> +\n> +       if (quic_stream_id_local(stream->id, is_serv)) {\n> +               /* Local-initiated stream: mark send done and decrement\n> +                * send.bidi count.\n> +                */\n> +               if (!stream->send.done) {\n> +                       stream->send.done = 1;\n> +                       streams->send.streams_bidi--;\n> +               }\n> +       } else {\n> +               /* Remote-initiated stream: mark recv done and decrement recv\n> +                * bidi count.\n> +                */\n> +               if (!stream->recv.done) {\n> +                       stream->recv.done = 1;\n> +                       streams->recv.streams_bidi--;\n> +                       streams->recv.bidi_pending = 1;\n> +               }\n> +       }\n> +\n> +       /* Delete stream if fully read or reset. */\n> +       if (stream->recv.state > QUIC_STREAM_RECV_STATE_RECVD)\n> +               quic_stream_delete(stream);\n> +}\n> +\n> +/* Updates the maximum allowed incoming stream IDs if any streams were recently\n> + * closed.  Recalculates the max_uni and max_bidi stream ID limits based on the\n> + * number of open streams and whether any were marked for deletion.\n> + *\n> + * Returns true if either max_uni or max_bidi was updated, indicating that a\n> + * MAX_STREAMS_UNI or MAX_STREAMS_BIDI frame should be sent to the peer.\n> + */\n> +bool quic_stream_max_streams_update(struct quic_stream_table *streams,\n> +                                   s64 *max_uni, s64 *max_bidi)\n> +{\n> +       s64 max, rem;\n> +\n> +       *max_uni = 0;\n> +       *max_bidi = 0;\n> +       if (streams->recv.uni_pending) {\n> +               rem = streams->recv.max_streams_uni - streams->recv.streams_uni;\n> +               max = streams->recv.next_uni_stream_id - QUIC_STREAM_ID_STEP +\n> +                     (rem << QUIC_STREAM_TYPE_BITS);\n> +\n> +               streams->recv.max_uni_stream_id = max;\n> +               *max_uni = quic_stream_id_to_streams(max);\n> +               streams->recv.uni_pending = 0;\n> +       }\n> +       if (streams->recv.bidi_pending) {\n> +               rem = streams->recv.max_streams_bidi -\n> +                     streams->recv.streams_bidi;\n> +               max = streams->recv.next_bidi_stream_id - QUIC_STREAM_ID_STEP +\n> +                       (rem << QUIC_STREAM_TYPE_BITS);\n> +\n> +               streams->recv.max_bidi_stream_id = max;\n> +               *max_bidi = quic_stream_id_to_streams(max);\n> +               streams->recv.bidi_pending = 0;\n> +       }\n> +\n> +       return *max_uni || *max_bidi;\n> +}\n> +\n> +int quic_stream_init(struct quic_stream_table *streams)\n> +{\n> +       struct hlist_head *head;\n> +       int i;\n> +\n> +       head = kmalloc_array(QUIC_STREAM_HT_SIZE, sizeof(*head), GFP_KERNEL);\n> +       if (!head)\n> +               return -ENOMEM;\n> +       for (i = 0; i < QUIC_STREAM_HT_SIZE; i++)\n> +               INIT_HLIST_HEAD(&head[i]);\n> +       streams->head = head;\n> +       return 0;\n> +}\n> +\n> +void quic_stream_free(struct quic_stream_table *streams)\n> +{\n> +       struct quic_stream *stream;\n> +       struct hlist_head *head;\n> +       struct hlist_node *tmp;\n> +       int i;\n> +\n> +       if (!streams->head)\n> +               return;\n> +\n> +       for (i = 0; i < QUIC_STREAM_HT_SIZE; i++) {\n> +               head = &streams->head[i];\n> +               hlist_for_each_entry_safe(stream, tmp, head, node)\n> +                       quic_stream_delete(stream);\n> +       }\n> +       kfree(streams->head);\nThe AI report on\n\n  https://netdev-ai.bots.linux.dev/ai-review.html?id=1624d906-c0b6-4e12-a63f-5cbfc51b660e#patch-5\n\nis false positive.\n\nAs the sk_alloc() calls sk_prot_alloc() with __GFP_ZERO, and the streams->head\nis always initialized to NULL.","headers":{"Return-Path":"\n <linux-cifs+bounces-10552-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-cifs@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=Gipltejb;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=104.64.211.4; helo=sin.lore.kernel.org;\n envelope-from=linux-cifs+bounces-10552-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=\"Gipltejb\"","smtp.subspace.kernel.org;\n arc=pass smtp.client-ip=209.85.210.175","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=gmail.com"],"Received":["from sin.lore.kernel.org (sin.lore.kernel.org [104.64.211.4])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fhSH00vGxz1y1x\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 27 Mar 2026 02:23:56 +1100 (AEDT)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sin.lore.kernel.org (Postfix) with ESMTP id E7346309E25E\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 26 Mar 2026 15:06:44 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 0A36B4014A3;\n\tThu, 26 Mar 2026 15:06:42 +0000 (UTC)","from mail-pf1-f175.google.com (mail-pf1-f175.google.com\n [209.85.210.175])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id D15BC37C0F2\n\tfor <linux-cifs@vger.kernel.org>; Thu, 26 Mar 2026 15:06:39 +0000 (UTC)","by mail-pf1-f175.google.com with SMTP id\n d2e1a72fcca58-82c68339cf0so1417618b3a.0\n        for <linux-cifs@vger.kernel.org>;\n Thu, 26 Mar 2026 08:06:39 -0700 (PDT)"],"ARC-Seal":["i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1774537601; cv=pass;\n b=m5lZd36BclXgfidcoZ8BwsMHS8BberR7lVmPYthOdr42WtE4XyIzZuZ1FtFMGwlB6zF9/YUF+BxriSOVB2d2SmPwo1nH67nXUBPgw/Tr9uCcik9Z+y2JorCDcwaShnMVTgS45t33DIockGcwDiDsk+q9OWLmqIFzz1yUw+UCrf0=","i=1; a=rsa-sha256; t=1774537599; cv=none;\n        d=google.com; s=arc-20240605;\n        b=ATsQ56rsRkauWaoW53/aAtOTl3UdYNLF2CvrY+1qk4XodlNIqFWqoYX1GoGVpgoLSX\n         eGRFXWrxOGkdWtcr7/6zsAw9jodI46oHTDrpIA0yxW38pqAtlnlImAnqk2me+0v6ic3R\n         /qJW5qmH5Z/ii7yNpLWgv2UuO1Mlg8pHzHXePVlKnhgYacmzeZo0tIZP4dhtiWD/g4ss\n         qTjxGFaLa3aiTlz0pPc8ayrsxigGYVElf2NRKy5leae/jkPQKodPMnwQUbY3gBHT0IUu\n         JmbgqXhGDIQWKGRAe8wC5zPRZ6lvcd8HqVtTjb6KnwK7QafRLc9vv4OVJYDKQoxTUD30\n         c5FQ=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1774537601; c=relaxed/simple;\n\tbh=nx+HteyFFI7AdLCbzO0p1t9BN73xaw3YXEyCtzkUVzM=;\n\th=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject:\n\t To:Cc:Content-Type;\n b=gJSNk7snnVV4IYFNZdGLlz2ZL69lp1/57X3ARbuf+j26TQiBnQ38EpfwNBFRFJBUHgdiO+czGp8ClDtUsqIkKCFizQskx+hEFWhn59kO5GjYFrQEZgZCQlfRi6KrH+HnyUP4QR9L68SsHUdgxTmT7lABixJxubsFJWEahKs+daI=","i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n        h=content-transfer-encoding:cc:to:subject:message-id:date:from\n         :in-reply-to:references:mime-version:dkim-signature;\n        bh=FUKqGwYD1hO9AzJAT2EYReBMkJDIVIx9w5Zc+Jzl0to=;\n        fh=7F2Euq8g6F37ssbf6o/37GBJ628edL7oTmtCwOCpvmI=;\n        b=Y2TqRwQfhUJbh7F0AXgpg3LwdLFfM8OzpS6S2/G1eBigAPHX3XYJKwVC9DKkpcWr90\n         jc1hhtfMyWy5h/8inoflvTjca3F732BxVQ7c+hEnvvnd34AievZ2rJ3iOsEwGvHknEcV\n         vUKDgrRfBeT944hzd2j+pR+0QrUEKj0cc1kvp2qLLhhvxP538KtFkTBs6YKeW3IAcwVE\n         +xoam4Lb6UgTwAAyxfhFvn72T5A2I1LJ6NbyNEWcFHH7ojkAijk78vhAc09P23A9L5UW\n         HXD2eylkkt9iXm4na+xWtvIj9H+djU+vydMskJDLqgIia4x0Ri8AHMGUF0iGBARa+9bf\n         a+Eg==;\n        darn=vger.kernel.org"],"ARC-Authentication-Results":["i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com;\n spf=pass smtp.mailfrom=gmail.com;\n dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=Gipltejb; arc=pass smtp.client-ip=209.85.210.175","i=1; mx.google.com; arc=none"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=gmail.com; s=20251104; t=1774537599; x=1775142399;\n darn=vger.kernel.org;\n        h=content-transfer-encoding:cc:to:subject:message-id:date:from\n         :in-reply-to:references:mime-version:from:to:cc:subject:date\n         :message-id:reply-to;\n        bh=FUKqGwYD1hO9AzJAT2EYReBMkJDIVIx9w5Zc+Jzl0to=;\n        b=Gipltejbu8PcyXLyatr9VpWcZW/SjQnL8a7RnVt7utJAeZcl3/eKPvnW4pkw7yX2Sb\n         7KlscCBYz+KTrG1CW/iWf+nPtw+CclmCogkJzmid6BNJnH5T2H0/mTbG1CSfD5AjQeFP\n         HsAw4OqRTr82h2452k86F8sZw6BDtQDR5HFQEtCHdYwSX3ENl9H8coly4Pa2kmr/+foC\n         JNWldNLbtNlsaoGxLx+DKaIJi/lXH/m4hNRdAVZMyRBsiKgMRjPSHHjMd+TRRp0B9bO+\n         sGKGKwaH4rjjDa9t0N4/vbUDsrJKF0qJqFpdu0LgdImfcyaIv+BQ3h2EHyW2wUKRO12V\n         ruCQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1774537599; x=1775142399;\n        h=content-transfer-encoding:cc:to:subject:message-id:date:from\n         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n         :to:cc:subject:date:message-id:reply-to;\n        bh=FUKqGwYD1hO9AzJAT2EYReBMkJDIVIx9w5Zc+Jzl0to=;\n        b=NmzHDmPDzGx7jSCnxJLgTN2AYEPQWJynqAwKd5SLDkGsf9Y1OXJt3igXFfJmahr+WJ\n         3fOqvdDBzQ8sSHBoBhljhpGfk71GrGrI/Tz3eIpJUTLxxsH8iCes/s0qYLdD82z5on9y\n         tURH+6l55LMCNQJ2xIOqRkH4cMWQ/OVntHEH8Iu0q8mxTA03A1x5KEfhvGVtOQsHhX/a\n         yaokj2JMwColwNw/uhaLzDov6Xn/S1f5OlABf0HsgjQ8XgkXxtPWFCw5W2KT4CKK0bH5\n         ul7Uc1fmpc1zeKwpT88hVp+C5ClnwCrhJJ9Oe2eiAVrv1YmrnpmJF7i/DuQRQuW9b+tW\n         Fodw==","X-Forwarded-Encrypted":"i=1;\n AJvYcCXn3GOQ/TaJxMgJrSOUS6KRZca7OhGzV1FIY0sPUry08qsRdTE5uVOisweTlwAZnuiIbo0phgUkcOML@vger.kernel.org","X-Gm-Message-State":"AOJu0YxPfY8KGC+nmcFO+TpDmBU6JTQ+oJGMxqfPkvnJVZ7I1T8l87YX\n\t2xKV6+NfhGBJm5CpcjymnZLx3/fARQCK4i5BD9odlNN5VnwkroWItfbGse4+JZptmZOffYgGj6I\n\t/idt1JXDA0w+MS/KwlSZSksxZu1yT0YI=","X-Gm-Gg":"ATEYQzxbztyZsiUA3K7ylP9erFB9H0g45lA85v8THGpkK7OfEPj07llxt2E7Zn6I7hK\n\t2PD7Q5Tx3nFpiQQJWY0zsfnoL8HXZ+w6lHiBm74qfNvAIWSuGUl/CaDQxweBwBCGz0StC//zKrF\n\tgRhlHGEjHUD+qdWc+pREMjuyxM572P072c5S/50R3nQkyCAWyg61zDt6ezyrcAQFRXAvzX9v1+l\n\tNOp6mIUaQOWldQRpQutxS2SewfpTveT0QFcqjEuS9ro2Oze5ad5dkLk6LHuw0MVziB2x7DG+EWH\n\to9NQDVxnB2O9abqWzwPCrjQ3OerfCxQNZk2Lv4C/7qc19PV2FZLZlj1YXqCGBNtzI5AjH5h/NTR\n\tuob7IMoJuYYSyVyb5Lj5jvbCw5/50FTmrnx7LX2O+","X-Received":"by 2002:a05:6a00:4c98:b0:81e:1b77:9e61 with SMTP id\n d2e1a72fcca58-82c869d2a33mr2142434b3a.25.1774537598837; Thu, 26 Mar 2026\n 08:06:38 -0700 (PDT)","Precedence":"bulk","X-Mailing-List":"linux-cifs@vger.kernel.org","List-Id":"<linux-cifs.vger.kernel.org>","List-Subscribe":"<mailto:linux-cifs+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-cifs+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","References":"<cover.1774410440.git.lucien.xin@gmail.com>\n <91c6fd0a44eb15a98f945171ead8062badb89a60.1774410440.git.lucien.xin@gmail.com>","In-Reply-To":"\n <91c6fd0a44eb15a98f945171ead8062badb89a60.1774410440.git.lucien.xin@gmail.com>","From":"Xin Long <lucien.xin@gmail.com>","Date":"Thu, 26 Mar 2026 11:06:26 -0400","X-Gm-Features":"AQROBzACuwjYsLpIayq--PQOH3i87OCQN6VqDXDB4GciP-GOMwzf9UMuCvDrrpY","Message-ID":"\n <CADvbK_eXUfnGGQgGc_k-ecCW3-Co1MpGb7UvMgLonPy3HRhyFA@mail.gmail.com>","Subject":"Re: [PATCH net-next v11 06/15] quic: add stream management","To":"network dev <netdev@vger.kernel.org>, quic@lists.linux.dev","Cc":"davem@davemloft.net, kuba@kernel.org, Eric Dumazet <edumazet@google.com>,\n\tPaolo Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>,\n\tStefan Metzmacher <metze@samba.org>, Moritz Buhl <mbuhl@openbsd.org>,\n Tyler Fanelli <tfanelli@redhat.com>,\n\tPengtao He <hepengtao@xiaomi.com>, Thomas Dreibholz <dreibh@simula.no>,\n linux-cifs@vger.kernel.org,\n\tSteve French <smfrench@gmail.com>, Namjae Jeon <linkinjeon@kernel.org>,\n\tPaulo Alcantara <pc@manguebit.com>, Tom Talpey <tom@talpey.com>,\n kernel-tls-handshake@lists.linux.dev,\n\tChuck Lever <chuck.lever@oracle.com>, Jeff Layton <jlayton@kernel.org>,\n\tSteve Dickson <steved@redhat.com>, Hannes Reinecke <hare@suse.de>,\n Alexander Aring <aahringo@redhat.com>,\n\tDavid Howells <dhowells@redhat.com>, Matthieu Baerts <matttbe@kernel.org>,\n\tJohn Ericson <mail@johnericson.me>, Cong Wang <xiyou.wangcong@gmail.com>,\n\t\"D . Wythe\" <alibuda@linux.alibaba.com>, Jason Baron <jbaron@akamai.com>,\n\tilliliti <illiliti@protonmail.com>, Sabrina Dubroca <sd@queasysnail.net>,\n\tMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>,\n Daniel Stenberg <daniel@haxx.se>,\n\tAndy Gospodarek <andrew.gospodarek@broadcom.com>,\n\t\"Marc E . Fiuczynski\" <marc@fiuczynski.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable"}},{"id":3669940,"web_url":"http://patchwork.ozlabs.org/comment/3669940/","msgid":"<20260326130740.74b4c92f@kernel.org>","list_archive_url":null,"date":"2026-03-26T20:07:40","subject":"Re: [PATCH net-next v11 06/15] quic: add stream management","submitter":{"id":77159,"url":"http://patchwork.ozlabs.org/api/people/77159/","name":"Jakub Kicinski","email":"kuba@kernel.org"},"content":"On Thu, 26 Mar 2026 11:06:26 -0400 Xin Long wrote:\n> The AI report on\n> \n>   https://netdev-ai.bots.linux.dev/ai-review.html?id=1624d906-c0b6-4e12-a63f-5cbfc51b660e#patch-5\n> \n> is false positive.\n> \n> As the sk_alloc() calls sk_prot_alloc() with __GFP_ZERO, and the streams->head\n> is always initialized to NULL.\n\nCan you also check the google one?\n\nhttps://sashiko.dev/#/patchset/4019cfba3ffd6f91aee24713d2adc778f858b4c4.1774410440.git.lucien.xin@gmail.com","headers":{"Return-Path":"\n <linux-cifs+bounces-10554-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-cifs@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=gNUq4+jm;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c09:e001:a7::12fc:5321; helo=sto.lore.kernel.org;\n envelope-from=linux-cifs+bounces-10554-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"gNUq4+jm\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from sto.lore.kernel.org (sto.lore.kernel.org\n [IPv6:2600:3c09:e001:a7::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fhZZX2nLJz1y1j\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 27 Mar 2026 07:07:48 +1100 (AEDT)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sto.lore.kernel.org (Postfix) with ESMTP id 90FF7304559C\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 26 Mar 2026 20:07:44 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 009C53537D3;\n\tThu, 26 Mar 2026 20:07:43 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id D04BD33DED9;\n\tThu, 26 Mar 2026 20:07:42 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 04FFDC2BC87;\n\tThu, 26 Mar 2026 20:07:40 +0000 (UTC)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1774555662; cv=none;\n b=up70nOG2tCmImAjaZ/eK+eqew+STFIgMvfp7fKKXXd+h1SycY7zwcm7TnwjIy1tdWZWNFsvQmbX1deN4C/lltEpmwisyWIN2fgPgGKdGX16pAPXbs9uHRWGYEim+gVxdxFzyOwwP9gNTZ0q3VRSjaUv1bqnLLxg08eGw5rihiK4=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1774555662; c=relaxed/simple;\n\tbh=Zmij4qsy/LNInbgFVfuHxXloLEr8lGElEmtXJi+eSXE=;\n\th=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References:\n\t MIME-Version:Content-Type;\n b=N83p/HRUavDoVoXm6RJqasYNCPm1AsDFUW46B9cNDpdHJwte1lAVJJgDDXIMSWP43+CQszDuBUxZdkiu7o3R7rExMhFDRdr3Ib/zefyij4tmu/zQ2Mj/n59DKkyuFZJznNcN4JMPLJT/41kGEcvzD5KfDF8wqce17ncpbIKJyoQ=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=gNUq4+jm; arc=none smtp.client-ip=10.30.226.201","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1774555662;\n\tbh=Zmij4qsy/LNInbgFVfuHxXloLEr8lGElEmtXJi+eSXE=;\n\th=Date:From:To:Cc:Subject:In-Reply-To:References:From;\n\tb=gNUq4+jmj9rEGfjyBMzhOPnu48LzgQ5aGFMLKoGqM6HvQ9uVeOOKYoOY/82JpU716\n\t askX+Y+WRlmwieeKTtu4d+vagJXN8+L2ul/rR1/DEFSapYNDlnR6IyrxfkNPzgBX8E\n\t JsHZqzyzAejo8PyLswGUlikJciMFIX42kpP49AbsjNNxrj1R3ORwOtlRKmta3VjF6G\n\t 05Uo09B0CsHzv5XcLyLjJoSs8u8NMQFlP0lxNtaG6uY5dtwRCxJgxZvQ9ckIfoOtMJ\n\t oTKGcgnoAt9AhWfMSw5Rnvqo3pgumsyvcxtMTc9pDW1/RXpSKSSwyXXjy4bWnVnqv0\n\t Av9UBVJRrFJQw==","Date":"Thu, 26 Mar 2026 13:07:40 -0700","From":"Jakub Kicinski <kuba@kernel.org>","To":"Xin Long <lucien.xin@gmail.com>","Cc":"network dev <netdev@vger.kernel.org>, quic@lists.linux.dev,\n davem@davemloft.net, Eric Dumazet <edumazet@google.com>, Paolo Abeni\n <pabeni@redhat.com>, Simon Horman <horms@kernel.org>, Stefan Metzmacher\n <metze@samba.org>, Moritz Buhl <mbuhl@openbsd.org>, Tyler Fanelli\n <tfanelli@redhat.com>, Pengtao He <hepengtao@xiaomi.com>, Thomas Dreibholz\n <dreibh@simula.no>, linux-cifs@vger.kernel.org, Steve French\n <smfrench@gmail.com>, Namjae Jeon <linkinjeon@kernel.org>, Paulo Alcantara\n <pc@manguebit.com>, Tom Talpey <tom@talpey.com>,\n kernel-tls-handshake@lists.linux.dev, Chuck Lever <chuck.lever@oracle.com>,\n Jeff Layton <jlayton@kernel.org>, Steve Dickson <steved@redhat.com>, Hannes\n Reinecke <hare@suse.de>, Alexander Aring <aahringo@redhat.com>, David\n Howells <dhowells@redhat.com>, Matthieu Baerts <matttbe@kernel.org>, John\n Ericson <mail@johnericson.me>, Cong Wang <xiyou.wangcong@gmail.com>, \"D .\n Wythe\" <alibuda@linux.alibaba.com>, Jason Baron <jbaron@akamai.com>,\n illiliti <illiliti@protonmail.com>, Sabrina Dubroca <sd@queasysnail.net>,\n Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>, Daniel Stenberg\n <daniel@haxx.se>, Andy Gospodarek <andrew.gospodarek@broadcom.com>, \"Marc E\n . Fiuczynski\" <marc@fiuczynski.com>","Subject":"Re: [PATCH net-next v11 06/15] quic: add stream management","Message-ID":"<20260326130740.74b4c92f@kernel.org>","In-Reply-To":"\n <CADvbK_eXUfnGGQgGc_k-ecCW3-Co1MpGb7UvMgLonPy3HRhyFA@mail.gmail.com>","References":"<cover.1774410440.git.lucien.xin@gmail.com>\n\t<91c6fd0a44eb15a98f945171ead8062badb89a60.1774410440.git.lucien.xin@gmail.com>\n\t<CADvbK_eXUfnGGQgGc_k-ecCW3-Co1MpGb7UvMgLonPy3HRhyFA@mail.gmail.com>","Precedence":"bulk","X-Mailing-List":"linux-cifs@vger.kernel.org","List-Id":"<linux-cifs.vger.kernel.org>","List-Subscribe":"<mailto:linux-cifs+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-cifs+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=US-ASCII","Content-Transfer-Encoding":"7bit"}},{"id":3669973,"web_url":"http://patchwork.ozlabs.org/comment/3669973/","msgid":"<CADvbK_eyNtAfA=JPR5Y4arFLPpkWMs8io=TO83rHAa-JJkhdAA@mail.gmail.com>","list_archive_url":null,"date":"2026-03-26T21:48:51","subject":"Re: [PATCH net-next v11 06/15] quic: add stream management","submitter":{"id":61073,"url":"http://patchwork.ozlabs.org/api/people/61073/","name":"Xin Long","email":"lucien.xin@gmail.com"},"content":"On Thu, Mar 26, 2026 at 4:07 PM Jakub Kicinski <kuba@kernel.org> wrote:\n>\n> On Thu, 26 Mar 2026 11:06:26 -0400 Xin Long wrote:\n> > The AI report on\n> >\n> >   https://netdev-ai.bots.linux.dev/ai-review.html?id=1624d906-c0b6-4e12-a63f-5cbfc51b660e#patch-5\n> >\n> > is false positive.\n> >\n> > As the sk_alloc() calls sk_prot_alloc() with __GFP_ZERO, and the streams->head\n> > is always initialized to NULL.\n>\n> Can you also check the google one?\n>\n> https://sashiko.dev/#/patchset/4019cfba3ffd6f91aee24713d2adc778f858b4c4.1774410440.git.lucien.xin@gmail.com\n\nWill do. There are quite a few reports, and it may take me some time\nto review them all carefully.\n\nBTW, what's the workflow for the Google AI feedback? should I reply to\neach item in this thread like we did with Claude one, or is there a\ndifferent workflow?\n\nThanks.","headers":{"Return-Path":"\n <linux-cifs+bounces-10557-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-cifs@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=ok98R3fM;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.105.105.114; helo=tor.lore.kernel.org;\n envelope-from=linux-cifs+bounces-10557-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=\"ok98R3fM\"","smtp.subspace.kernel.org;\n arc=pass smtp.client-ip=209.85.210.179","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=gmail.com"],"Received":["from tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fhcqw0P5Qz1yFp\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 27 Mar 2026 08:49:31 +1100 (AEDT)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id D69FC301F4AA\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 26 Mar 2026 21:49:09 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id E5F9E2C17B3;\n\tThu, 26 Mar 2026 21:49:06 +0000 (UTC)","from mail-pf1-f179.google.com (mail-pf1-f179.google.com\n [209.85.210.179])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id E915F289E06\n\tfor <linux-cifs@vger.kernel.org>; Thu, 26 Mar 2026 21:49:03 +0000 (UTC)","by mail-pf1-f179.google.com with SMTP id\n d2e1a72fcca58-824c9da9928so1346264b3a.3\n        for <linux-cifs@vger.kernel.org>;\n Thu, 26 Mar 2026 14:49:03 -0700 (PDT)"],"ARC-Seal":["i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1774561746; cv=pass;\n b=JTU3Z2EVodhe5wO58awbYST/EVIZg3EXggC/rI9nhqlM2RJBK20Kzq1/laMhKENe9GjZ3kJsKBYR/NbBVnmj+egdjETl/hvID4n/UnQP/RDmvhdu8vjI2SdRbLqNiENF0CT7P+tyXMG/o4nK+HAj9jWj7LRNGx87Izb4+wNNMMk=","i=1; a=rsa-sha256; t=1774561743; cv=none;\n        d=google.com; s=arc-20240605;\n        b=ezEoYNWhqrsvCM1e7DIekg8CejX/yynIOf4I7a47jdmxhQPnd/KtjQUIHJ2hDdCaL2\n         XEVRTnGnLvvAbwXq9ZZ4XmZ9365NSKhvWfhHtD43brNcCbL6cVmXtZM3meO4Ilsa0oHg\n         8iemySHZY0avB8JRGj6co7c/zwxyG4VhS8d5zEgghQUiBbRXXc5Q8MbBleFUJe2KWuQv\n         gay89VAUWXDY4Yl0Jek2fuW7CDr2XckI6nhaMTOsZ1hlwcez54n+AJScTcNs1f9cpi91\n         EkF7j+gtzxeloBDWbspaWv7fGxDh6Ew6Hj7HUCbmWgS1VbQBtrFfJNsxSgA8e06onMw3\n         RaEQ=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1774561746; c=relaxed/simple;\n\tbh=DWb6NDjjhzhDkeF+RBAi3Ju2eFdvktKCdBS03nVrDeE=;\n\th=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject:\n\t To:Cc:Content-Type;\n b=lKfecxS/ZQu15LA8oCbdYDeCMomooloLp7KZHpeXnfuP9jziXd4jFyOkt7MTH9lBAXrZcUBExlNRUH8UNwY99JKEhIJnoK1mfo3fdWyGA6C4fQY9128rMU5Lb81uIVuW0MhTcwmbh0MUGBeSvElMwbiwfb0u7XcHZ7FjDkFnwa0=","i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n        h=content-transfer-encoding:cc:to:subject:message-id:date:from\n         :in-reply-to:references:mime-version:dkim-signature;\n        bh=LcNk0BhBpunqYjg8xevwO9GWhKeqxSm/v/1iUobDQcs=;\n        fh=jCb/qkorszL/uHQBE4mQvPVsAyeSyUZ2mek5tulg1fA=;\n        b=QZci3kDP6b9fPx1VoAoQjJomjq+HBInz27NcntvshF+kFscWYF34TmXycSErsyfrLX\n         klWpKy1YBNNZnDkp9AyUA8kJ00eZeR+HxHXBqZsAt27PI/1l85kXi4U7swrlU/i8hief\n         2AG9Q891xEokhPRuJ/2P4Wlbprvfq8GxHeusbTe5UjqX+sxiZ8jM8qrV808rpBgrOp6h\n         Gg0bw0cmm6tlb/jX6ReB9UejMpbJppkH8UL3Aeph5shFLY9+RGnrYRKYgUT60XMdYYVE\n         SgAR6uSuSRNPiqXiNcmUBK8am6/BVUf2x36gMP+17Hzr/iDB72FyuRVuTjXn6SREh4Jc\n         dYRA==;\n        darn=vger.kernel.org"],"ARC-Authentication-Results":["i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com;\n spf=pass smtp.mailfrom=gmail.com;\n dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=ok98R3fM; arc=pass smtp.client-ip=209.85.210.179","i=1; mx.google.com; arc=none"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=gmail.com; s=20251104; t=1774561743; x=1775166543;\n darn=vger.kernel.org;\n        h=content-transfer-encoding:cc:to:subject:message-id:date:from\n         :in-reply-to:references:mime-version:from:to:cc:subject:date\n         :message-id:reply-to;\n        bh=LcNk0BhBpunqYjg8xevwO9GWhKeqxSm/v/1iUobDQcs=;\n        b=ok98R3fMT/28v62XhhGk3lcT2qVPm6pNyj18euczkiLhqEsgvTbV6bJoz+Gf/zdewU\n         lKpvnjq6qC0+gcTNYzZZ7E8qevJO5HnhbqvPLEj6X1Gqu/lc8Df+pQcHvVzPyvEIulTa\n         QZKuxTeyBt4GaC+UJNSQF2UGqpiKjsJWzBrPnVwrhvSwUwkx5Ajy5PDSYJk8HQ7/93Ov\n         Dt2kQxam5dp8CVhSp4HcQ8N5qW6eUGmKQVruZvX6wDm6NyDE0nFgpQnLRtI8jSM3+6UC\n         mOuj6F96BgrQY1y/cHxf8Hk5J2AFlKuLW2ZqQUkZCNDs9wiNaBWopr+URniQW2o6T8qz\n         lEig==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1774561743; x=1775166543;\n        h=content-transfer-encoding:cc:to:subject:message-id:date:from\n         :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n         :to:cc:subject:date:message-id:reply-to;\n        bh=LcNk0BhBpunqYjg8xevwO9GWhKeqxSm/v/1iUobDQcs=;\n        b=qaQE9NFDY8d2YqRAjGMnIBqDmZZlypvokf2NgFZQKZBTM/vMNAP5WUb5wRz6sJthrI\n         jRrqiaGn4V1y5Xm8ZvLGJjhIbb3+qSgut9QDqZULy11m9ayq5xw43AVmyPEcKiEIiYQO\n         A6v8MxKYdqlmE0cPSy6hMKm5C5zs8hYpZDsrb2Nb3dAkrebtdiDnv70cTxjtLqocZDmG\n         Jv3urRKifpK7o2gT193HvSIaiEE4AeFdiFVuj/CaHHu8DUHe0MWUDhegHdQPn+xPPXW+\n         mjzC8vS7Yxr8VY1COY12ljhSL6iNR0E6svYy21CyvfUs7764JKMdiHjM5bKTcVALsqXl\n         wnqA==","X-Forwarded-Encrypted":"i=1;\n AJvYcCWz7bAN7J5gBYPxatw60n8DqiMH0pm+ZjEr9KMIm+x+Wo2c1vx+dmHe5NF+h7ggnc9Cn830ujyy5A1/@vger.kernel.org","X-Gm-Message-State":"AOJu0YyhLc0I0+MTYcWOtJDh453E8QhlIliklnZsnm/1jq/mC7hucOB3\n\tNj1fca/CHpCKieRISOFr3Bw4E2pnSOW1gS4ZIDzWpLw8rN+fPfGI2qnSZUboMk10sy1uR9Rjgqt\n\tpZDbmtNlsRxghf2w/e9SgNvWmiJe2xTY=","X-Gm-Gg":"ATEYQzzAjuY1VkFMGmzaaHFg3ELVHTAZeF6faINFBL3T1hozAxzmfsxu3vWA/eliK5k\n\t9lJFPRIpbgLxkTG0H4W70KD6STsn1yZhPnOehHdvIT+a9EPKEVDOuQwYtL4ClmDBf7WCmO8Ua05\n\ts6gfZY/2a27s8V0wj3aXinmW2nNq/TBKGWAlNEsgKxxD//ZnPnEvlvSrItSjV1x0jMBtVux5s1b\n\tfHp/up4yHe9vEo8yLw1cD2sgYhw4YYW/iiMxhqpW4pltk93lNizFXrCL4IyQ/ChrePOdhEuPeTR\n\teZpQpT5KbD5/uH4LnnT9Fju0+aRWxKWrBgvfVbRBeBes0W8hs1XwwDCbx1+0FIV/BLiPh70Q0XG\n\t6oHnuNHzaClFDCuX0woi9SyBEDX+DAG2blnUHmaM=","X-Received":"by 2002:a05:6a00:148d:b0:81f:394a:4897 with SMTP id\n d2e1a72fcca58-82c96085fcdmr56960b3a.44.1774561743007; Thu, 26 Mar 2026\n 14:49:03 -0700 (PDT)","Precedence":"bulk","X-Mailing-List":"linux-cifs@vger.kernel.org","List-Id":"<linux-cifs.vger.kernel.org>","List-Subscribe":"<mailto:linux-cifs+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-cifs+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","References":"<cover.1774410440.git.lucien.xin@gmail.com>\n <91c6fd0a44eb15a98f945171ead8062badb89a60.1774410440.git.lucien.xin@gmail.com>\n <CADvbK_eXUfnGGQgGc_k-ecCW3-Co1MpGb7UvMgLonPy3HRhyFA@mail.gmail.com>\n <20260326130740.74b4c92f@kernel.org>","In-Reply-To":"<20260326130740.74b4c92f@kernel.org>","From":"Xin Long <lucien.xin@gmail.com>","Date":"Thu, 26 Mar 2026 17:48:51 -0400","X-Gm-Features":"AQROBzAemDJ3qW1z4xWRURYJNQELd9N64vs5NQq1QodH8yfoSs3wYDdFxRVPhko","Message-ID":"\n <CADvbK_eyNtAfA=JPR5Y4arFLPpkWMs8io=TO83rHAa-JJkhdAA@mail.gmail.com>","Subject":"Re: [PATCH net-next v11 06/15] quic: add stream management","To":"Jakub Kicinski <kuba@kernel.org>","Cc":"network dev <netdev@vger.kernel.org>, quic@lists.linux.dev,\n davem@davemloft.net,\n\tEric Dumazet <edumazet@google.com>, Paolo Abeni <pabeni@redhat.com>,\n Simon Horman <horms@kernel.org>,\n\tStefan Metzmacher <metze@samba.org>, Moritz Buhl <mbuhl@openbsd.org>,\n Tyler Fanelli <tfanelli@redhat.com>,\n\tPengtao He <hepengtao@xiaomi.com>, Thomas Dreibholz <dreibh@simula.no>,\n linux-cifs@vger.kernel.org,\n\tSteve French <smfrench@gmail.com>, Namjae Jeon <linkinjeon@kernel.org>,\n\tPaulo Alcantara <pc@manguebit.com>, Tom Talpey <tom@talpey.com>,\n kernel-tls-handshake@lists.linux.dev,\n\tChuck Lever <chuck.lever@oracle.com>, Jeff Layton <jlayton@kernel.org>,\n\tSteve Dickson <steved@redhat.com>, Hannes Reinecke <hare@suse.de>,\n Alexander Aring <aahringo@redhat.com>,\n\tDavid Howells <dhowells@redhat.com>, Matthieu Baerts <matttbe@kernel.org>,\n\tJohn Ericson <mail@johnericson.me>, Cong Wang <xiyou.wangcong@gmail.com>,\n\t\"D . Wythe\" <alibuda@linux.alibaba.com>, Jason Baron <jbaron@akamai.com>,\n\tilliliti <illiliti@protonmail.com>, Sabrina Dubroca <sd@queasysnail.net>,\n\tMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>,\n Daniel Stenberg <daniel@haxx.se>,\n\tAndy Gospodarek <andrew.gospodarek@broadcom.com>,\n\t\"Marc E . Fiuczynski\" <marc@fiuczynski.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable"}},{"id":3670011,"web_url":"http://patchwork.ozlabs.org/comment/3670011/","msgid":"<20260326180001.793b62be@kernel.org>","list_archive_url":null,"date":"2026-03-27T01:00:01","subject":"Re: [PATCH net-next v11 06/15] quic: add stream management","submitter":{"id":77159,"url":"http://patchwork.ozlabs.org/api/people/77159/","name":"Jakub Kicinski","email":"kuba@kernel.org"},"content":"On Thu, 26 Mar 2026 17:48:51 -0400 Xin Long wrote:\n> > Can you also check the google one?\n> >\n> > https://sashiko.dev/#/patchset/4019cfba3ffd6f91aee24713d2adc778f858b4c4.1774410440.git.lucien.xin@gmail.com  \n> \n> Will do. There are quite a few reports, and it may take me some time\n> to review them all carefully.\n> \n> BTW, what's the workflow for the Google AI feedback? should I reply to\n> each item in this thread like we did with Claude one, or is there a\n> different workflow?\n\nIt's a bit more chatty and we don't have any integrations there so it's\na bit hard to deal with :( At this point just look thru the reports and\naddress what's legit. We'll probably take your word for everything that\nremains being a false positive.","headers":{"Return-Path":"\n <linux-cifs+bounces-10558-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-cifs@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=FNroW0u0;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-cifs+bounces-10558-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"FNroW0u0\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fhj3r1FCtz1y1j\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 27 Mar 2026 12:00:08 +1100 (AEDT)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 8DA933023525\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 27 Mar 2026 01:00:04 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 1F17A296BD6;\n\tFri, 27 Mar 2026 01:00:04 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id EC80B1E5B7B;\n\tFri, 27 Mar 2026 01:00:03 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 1BE9FC116C6;\n\tFri, 27 Mar 2026 01:00:02 +0000 (UTC)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1774573204; cv=none;\n b=a4nx7BsyZU7vR9NBCkF3Qb+hg23zZEPsCxpeG0trYy1a1Q14jQ1rHV73AATmdMIdesMQ14WJBJp5O1h+YAc/xIGfZnobbE3m4gn8c83oJOvqxTKp30sPlYs1oO8dccGuX3xV/tiAhjWoAY5+hvmIPtS8W+Lhu2PAY9jBb45hRQk=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1774573204; c=relaxed/simple;\n\tbh=qxY3/yGGf6j+ovhznsYEiHtyVq8spceSXqsmShyDfZM=;\n\th=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References:\n\t MIME-Version:Content-Type;\n b=SY4pxXyiwZN63jneSnzMQP9Pl7AHos42gUT2n+/CrN8MvF5IV9IbchCZ6KhuMGyzTfn95HInwXUc+8WJ4vvu3EMeIVx6U5g4cXWdMVrzquc3EsDVciU8fNWOaPSXpkQc86gKCyjdWmLvwAamvhnCNVPno5MWsidjzrERZEBpdXY=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=FNroW0u0; arc=none smtp.client-ip=10.30.226.201","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1774573203;\n\tbh=qxY3/yGGf6j+ovhznsYEiHtyVq8spceSXqsmShyDfZM=;\n\th=Date:From:To:Cc:Subject:In-Reply-To:References:From;\n\tb=FNroW0u0U36ViZc4+y7bksZ+3Vn2ECYJKzcMQu2+7+wgbCIIsSRoawWqyJWlucPZ7\n\t veDTO26o7D2SxZUVQnuNVRXQsH+37K7QiGKE68XMAtOISbRknR/gJz4fBKSOZAe7HQ\n\t 4pSAfw8E5Sw8ox/f45asPCxLpEeiNr1H1DNmT5u3Knkt/niNOXoFoUrLn2/OvVVwlZ\n\t 9aMewJKaEHrcVCtS/Cf5rmiCxdC8HI9K0r2Nb18EsYP88+4fWaaw1bMdOpv359WuHL\n\t lW4vI1EuzPrHZke3KX5/VNAvsuy0awj1MQSGvcAefO895voF4iRRZ+kav4kmluphgZ\n\t hsSU21cW2rWog==","Date":"Thu, 26 Mar 2026 18:00:01 -0700","From":"Jakub Kicinski <kuba@kernel.org>","To":"Xin Long <lucien.xin@gmail.com>","Cc":"network dev <netdev@vger.kernel.org>, quic@lists.linux.dev,\n davem@davemloft.net, Eric Dumazet <edumazet@google.com>, Paolo Abeni\n <pabeni@redhat.com>, Simon Horman <horms@kernel.org>, Stefan Metzmacher\n <metze@samba.org>, Moritz Buhl <mbuhl@openbsd.org>, Tyler Fanelli\n <tfanelli@redhat.com>, Pengtao He <hepengtao@xiaomi.com>, Thomas Dreibholz\n <dreibh@simula.no>, linux-cifs@vger.kernel.org, Steve French\n <smfrench@gmail.com>, Namjae Jeon <linkinjeon@kernel.org>, Paulo Alcantara\n <pc@manguebit.com>, Tom Talpey <tom@talpey.com>,\n kernel-tls-handshake@lists.linux.dev, Chuck Lever <chuck.lever@oracle.com>,\n Jeff Layton <jlayton@kernel.org>, Steve Dickson <steved@redhat.com>, Hannes\n Reinecke <hare@suse.de>, Alexander Aring <aahringo@redhat.com>, David\n Howells <dhowells@redhat.com>, Matthieu Baerts <matttbe@kernel.org>, John\n Ericson <mail@johnericson.me>, Cong Wang <xiyou.wangcong@gmail.com>, \"D .\n Wythe\" <alibuda@linux.alibaba.com>, Jason Baron <jbaron@akamai.com>,\n illiliti <illiliti@protonmail.com>, Sabrina Dubroca <sd@queasysnail.net>,\n Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>, Daniel Stenberg\n <daniel@haxx.se>, Andy Gospodarek <andrew.gospodarek@broadcom.com>, \"Marc E\n . Fiuczynski\" <marc@fiuczynski.com>","Subject":"Re: [PATCH net-next v11 06/15] quic: add stream management","Message-ID":"<20260326180001.793b62be@kernel.org>","In-Reply-To":"\n <CADvbK_eyNtAfA=JPR5Y4arFLPpkWMs8io=TO83rHAa-JJkhdAA@mail.gmail.com>","References":"<cover.1774410440.git.lucien.xin@gmail.com>\n\t<91c6fd0a44eb15a98f945171ead8062badb89a60.1774410440.git.lucien.xin@gmail.com>\n\t<CADvbK_eXUfnGGQgGc_k-ecCW3-Co1MpGb7UvMgLonPy3HRhyFA@mail.gmail.com>\n\t<20260326130740.74b4c92f@kernel.org>\n\t<CADvbK_eyNtAfA=JPR5Y4arFLPpkWMs8io=TO83rHAa-JJkhdAA@mail.gmail.com>","Precedence":"bulk","X-Mailing-List":"linux-cifs@vger.kernel.org","List-Id":"<linux-cifs.vger.kernel.org>","List-Subscribe":"<mailto:linux-cifs+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-cifs+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=US-ASCII","Content-Transfer-Encoding":"7bit"}}]