aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/dev.c
diff options
context:
space:
mode:
authorMina Almasry <almasrymina@google.com>2025-03-06 21:55:20 +0000
committerJakub Kicinski <kuba@kernel.org>2025-03-07 19:32:25 -0800
commitf3600c867c99a2cc8038680ecf211089c50e7971 (patch)
treee65358d95b4cd39348c848a0ed2e8afd3f8e65ed /net/core/dev.c
parentMerge tag 'for-net-2025-03-07' of git://git.kernel.org/pub/scm/linux/kernel/g... (diff)
downloadlinux-f3600c867c99a2cc8038680ecf211089c50e7971.tar.gz
linux-f3600c867c99a2cc8038680ecf211089c50e7971.zip
netmem: prevent TX of unreadable skbs
Currently on stable trees we have support for netmem/devmem RX but not TX. It is not safe to forward/redirect an RX unreadable netmem packet into the device's TX path, as the device may call dma-mapping APIs on dma addrs that should not be passed to it. Fix this by preventing the xmit of unreadable skbs. Tested by configuring tc redirect: sudo tc qdisc add dev eth1 ingress sudo tc filter add dev eth1 ingress protocol ip prio 1 flower ip_proto \ tcp src_ip 192.168.1.12 action mirred egress redirect dev eth1 Before, I see unreadable skbs in the driver's TX path passed to dma mapping APIs. After, I don't see unreadable skbs in the driver's TX path passed to dma mapping APIs. Fixes: 65249feb6b3d ("net: add support for skbs with unreadable frags") Suggested-by: Jakub Kicinski <kuba@kernel.org> Cc: stable@vger.kernel.org Signed-off-by: Mina Almasry <almasrymina@google.com> Link: https://patch.msgid.link/20250306215520.1415465-1-almasrymina@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/core/dev.c')
-rw-r--r--net/core/dev.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index 30da277c5a6f..2f7f5fd9ffec 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3872,6 +3872,9 @@ static struct sk_buff *validate_xmit_skb(struct sk_buff *skb, struct net_device
{
netdev_features_t features;
+ if (!skb_frags_readable(skb))
+ goto out_kfree_skb;
+
features = netif_skb_features(skb);
skb = validate_xmit_vlan(skb, features);
if (unlikely(!skb))
think-lmi: Abort probe on analyze failureAlex Williamson2-4/+10 2021-11-16platform/x86: dell-wmi-descriptor: disable by defaultThomas Weißschuh1-1/+1 2021-11-16platform/x86: samsung-laptop: Fix typo in a commentJason Wang1-1/+1 2021-11-16platform/x86: hp_accel: Fix an error handling path in 'lis3lv02d_probe()'Christophe JAILLET1-0/+2 2021-11-16platform/x86: amd-pmc: Make CONFIG_AMD_PMC depend on RTC_CLASSHans de Goede1-1/+1 2021-11-16platform/mellanox: mlxreg-lc: fix error code in mlxreg_lc_create_static_devic...Dan Carpenter1-2/+3 2021-11-14Linux 5.16-rc1v5.16-rc1Linus Torvalds1-2/+2 2021-11-14kconfig: Add support for -Wimplicit-fallthroughGustavo A. R. Silva2-5/+6 2021-11-13perf tests: Remove bash constructs from stat_all_pmu.shJames Clark1-2/+2 2021-11-13perf tests: Remove bash construct from record+zstd_comp_decomp.shJames Clark1-1/+1 2021-11-13perf test: Remove bash construct from stat_bpf_counters.sh testJames Clark1-1/+1 2021-11-13perf bench futex: Fix memory leak of perf_cpu_map__new()Sohaib Mohamed4-0/+4 2021-11-13tools arch x86: Sync the msr-index.h copy with the kernel sourcesArnaldo Carvalho de Melo1-0/+2 2021-11-13tools headers UAPI: Sync drm/i915_drm.h with the kernel sourcesArnaldo Carvalho de Melo1-1/+241 2021-11-13tools headers UAPI: Sync sound/asound.h with the kernel sourcesArnaldo Carvalho de Melo1-1/+1 2021-11-13tools headers UAPI: Sync linux/prctl.h with the kernel sourcesArnaldo Carvalho de Melo1-0/+3 2021-11-13tools headers UAPI: Sync arch prctl headers with the kernel sourcesArnaldo Carvalho de Melo1-0/+4 2021-11-13perf tools: Add more weak libbpf functionsJiri Olsa1-0/+27 2021-11-13perf bpf: Avoid memory leak from perf_env__insert_btf()Ian Rogers3-3/+10 2021-11-13perf symbols: Factor out annotation init/exitIan Rogers3-1/+22 2021-11-13perf symbols: Bit pack to save a byteIan Rogers2-3/+3 2021-11-13perf symbols: Add documentation to 'struct symbol'Ian Rogers1-3/+14 2021-11-13tools headers UAPI: Sync files changed by new futex_waitv syscallArnaldo Carvalho de Melo2-1/+5 2021-11-13perf test bpf: Use ARRAY_CHECK() instead of ad-hoc equivalent, addressing arr...Guo Zhengkui1-1/+1 2021-11-13perf arm-spe: Support hardware-based PID tracingGerman Gomez1-29/+70 2021-11-13perf arm-spe: Save context ID in recordGerman Gomez2-0/+3 2021-11-13perf arm-spe: Update --switch-events docs in 'perf record'German Gomez2-2/+4 2021-11-13perf arm-spe: Track task context switch for cpu-mode eventsNamhyung Kim2-1/+30