mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-29 01:59:02 +00:00
8590531048
Manually rebased: bcm4908/patches-5.15/071-v6.1-0001-net-broadcom-bcm4908_enet-handle-EPROBE_DEFER-when-g.patch bcm53xx/patches-5.15/180-usb-xhci-add-support-for-performing-fake-doorbell.patch ipq40xx/patches-5.15/902-dts-ipq4019-ap-dk04.1.patch[*] Removed upstreamed: backport-5.15/735-v6.5-net-bgmac-postpone-turning-IRQs-off-to-avoid-SoC-han.patch[1] backport-5.15/817-v6.5-01-leds-trigger-netdev-Recheck-NETDEV_LED_MODE_LINKUP-o.patch[2] pending-5.15/143-jffs2-reduce-stack-usage-in-jffs2_build_xattr_subsys.patch[3] pending-5.15/160-workqueue-fix-enum-type-for-gcc-13.patch[4] bcm53xx/patches-5.15/036-v6.5-0003-ARM-dts-BCM5301X-Drop-clock-names-from-the-SPI-node.patch[5] bcm53xx/patches-5.15/036-v6.5-0015-ARM-dts-BCM5301X-fix-duplex-full-full-duplex.patch[6] All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.123&id=02474292a44205c1eb5a03634ead155a3c9134f4 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.123&id=86b93cbfe104e99fd3d25a49748b99fb88101573 3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.123&id=79b9ab357b6f5675007f4c02ff8765cbd8dc06a2 4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.123&id=d528faa9e828b9fc46dfb684a2a9fd8c2e860ed8 5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.123&id=5899bc4058e89d5110a23797ff94439c53b77c25 6. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.123&id=95afd2c7c7d26087730dc938709e025a303e5499 Build system: x86/64 Build-tested: ramips/tplink_archer-a6-v3 Run-tested: ramips/tplink_archer-a6-v3 Co-authored-by: Hauke Mehrtens <hauke@hauke-m.de> Signed-off-by: John Audia <therealgraysky@proton.me> [rebased ipq40xx/patches-5.15/902-dts-ipq4019-ap-dk04.1.patch ] Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
36 lines
1.4 KiB
Diff
36 lines
1.4 KiB
Diff
From: Alexander Duyck <alexanderduyck@fb.com>
|
|
Date: Thu, 26 Jan 2023 11:06:59 -0800
|
|
Subject: [PATCH] skb: Do mix page pool and page referenced frags in GRO
|
|
|
|
GSO should not merge page pool recycled frames with standard reference
|
|
counted frames. Traditionally this didn't occur, at least not often.
|
|
However as we start looking at adding support for wireless adapters there
|
|
becomes the potential to mix the two due to A-MSDU repartitioning frames in
|
|
the receive path. There are possibly other places where this may have
|
|
occurred however I suspect they must be few and far between as we have not
|
|
seen this issue until now.
|
|
|
|
Fixes: 53e0961da1c7 ("page_pool: add frag page recycling support in page pool")
|
|
Reported-by: Felix Fietkau <nbd@nbd.name>
|
|
Signed-off-by: Alexander Duyck <alexanderduyck@fb.com>
|
|
---
|
|
|
|
--- a/net/core/skbuff.c
|
|
+++ b/net/core/skbuff.c
|
|
@@ -4352,6 +4352,15 @@ int skb_gro_receive(struct sk_buff *p, s
|
|
if (unlikely(p->len + len >= 65536 || NAPI_GRO_CB(skb)->flush))
|
|
return -E2BIG;
|
|
|
|
+ /* Do not splice page pool based packets w/ non-page pool
|
|
+ * packets. This can result in reference count issues as page
|
|
+ * pool pages will not decrement the reference count and will
|
|
+ * instead be immediately returned to the pool or have frag
|
|
+ * count decremented.
|
|
+ */
|
|
+ if (p->pp_recycle != skb->pp_recycle)
|
|
+ return -ETOOMANYREFS;
|
|
+
|
|
lp = NAPI_GRO_CB(p)->last;
|
|
pinfo = skb_shinfo(lp);
|
|
|