Thread (2 messages) read the whole thread 2 messages, 2 authors, 2026-03-29

Re: [BUG] net: ethernet: cortina: gemini: skb leak in gmac_rx() causes kernel lockup under sustained RX load

From: Linus Walleij <linusw@kernel.org>
Date: 2026-03-29 18:54:34
Also in: linux-arm-kernel

Hi Andreas,

thanks for digging into this, I have wondered why this happens for a long
time but I'm not the best net developer myself.

On Sun, Mar 29, 2026 at 12:05 PM Andreas Haarmann-Thiemann
[off-list ref] wrote:
quoted hunk
diff --git a/drivers/net/ethernet/cortina/gemini.c b/drivers/net/ethernet/cortina/gemini.c
--- a/drivers/net/ethernet/cortina/gemini.c
+++ b/drivers/net/ethernet/cortina/gemini.c
@@ -1491,6 +1491,10 @@ static int gmac_rx(struct napi_struct *napi, int budget)
                              gpage = gmac_get_queue_page(geth, port, mapping + PAGE_SIZE);
                              if (!gpage) {
                                              dev_err(geth->dev, "could not find mapping\n");
+                                             if (skb) {
+                                                            napi_free_frags(&port->napi);
+                                                            skb = NULL;
+                                             }
                                              port->stats.rx_dropped++;
                                              continue;
                              }
This looks right to me, can you send a proper patch, or provide your
Signed-off-by in this thread so I can create a patch from this inline code?

The kernel process requires a "certificate of origin" i.e. Signed-off-by,
described a bit down in this document:
https://docs.kernel.org/process/submitting-patches.html

Yours,
Linus Walleij
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help