[PATCH net-next v3 0/2] ipv4: update rt_flush_dev() and two dst.dev readers
From: <hidden>
Date: 2026-07-08 06:06:36
Also in:
lkml
From: Xuanqiang Luo <redacted> Patch 1 makes the rt_flush_dev() write to rt->dst.dev use rcu_assign_pointer(), matching the existing dst_dev_rcu() readers. Patch 2 makes ip_rt_send_redirect() and ip_rt_get_source() use one dst.dev snapshot throughout each operation, so a concurrent rt_flush_dev() update cannot make them use values from two devices. v3: - Split the rt_flush_dev() change into a separate patch. - Update PATCH 2 subject and commit message to describe the actual scope more clearly. - Drop the Fixes tag. - Fix local variable ordering for netdev reverse xmas tree style. Thanks to Ido Schimmel for the feedback. v2: https://lore.kernel.org/lkml/20260701032434.17500-1-xuanqiang.luo@linux.dev/ (local) - Use dst_dev_rcu() and dev_net_rcu() for the RCU readers. - Use rcu_assign_pointer() when publishing the uncached route device replacement. - Slightly adjust the commit message wording because this issue was found by inspection, not from an observed user-visible failure. v1: https://lore.kernel.org/all/20260630094250.29386-1-xuanqiang.luo@linux.dev/ (local) Xuanqiang Luo (2): ipv4: use rcu_assign_pointer() in rt_flush_dev() ipv4: snapshot dst.dev in ip_rt_send_redirect() and ip_rt_get_source() net/ipv4/route.c | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) -- 2.43.0