diff options
| author | Eric Dumazet <edumazet@google.com> | 2026-06-04 17:13:33 +0300 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2026-06-06 03:46:16 +0300 |
| commit | 032c8f6f21ee8d9c2ca2182f17960428be17dbb1 (patch) | |
| tree | 5baf734607aff2abc794d15b18440be2dbfd40ed | |
| parent | 2eb9a81a7f73fb2582192547915a6c87dcd59574 (diff) | |
| download | linux-032c8f6f21ee8d9c2ca2182f17960428be17dbb1.tar.xz | |
bridge: add a READ_ONCE() in br_timer_value()
br_timer_value() can be called locklessly, the expires field
could be changed concurrently.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Acked-by: Nikolay Aleksandrov <razor@blackwall.org>
Link: https://patch.msgid.link/20260604141343.2124500-2-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
| -rw-r--r-- | net/bridge/br_stp_timer.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/bridge/br_stp_timer.c b/net/bridge/br_stp_timer.c index e5d453305381..83cc9c6a3943 100644 --- a/net/bridge/br_stp_timer.c +++ b/net/bridge/br_stp_timer.c @@ -160,5 +160,5 @@ void br_stp_port_timer_init(struct net_bridge_port *p) unsigned long br_timer_value(const struct timer_list *timer) { return timer_pending(timer) - ? jiffies_delta_to_clock_t(timer->expires - jiffies) : 0; + ? jiffies_delta_to_clock_t(READ_ONCE(timer->expires) - jiffies) : 0; } |
