diff options
author | 2025-04-07 16:36:01 +0000 | |
---|---|---|
committer | 2025-04-08 12:30:55 -0700 | |
commit | 22d046a778e4344437fd49bb0995e315ec3fddcf (patch) | |
tree | 13c07e09869805f2ec83a6851190962de5f94dce /net/core/dev.c | |
parent | net: rps: annotate data-races around (struct sd_flow_limit)->count (diff) | |
download | wireguard-linux-22d046a778e4344437fd49bb0995e315ec3fddcf.tar.xz wireguard-linux-22d046a778e4344437fd49bb0995e315ec3fddcf.zip |
net: add data-race annotations in softnet_seq_show()
softnet_seq_show() reads several fields that might be updated
concurrently. Add READ_ONCE() and WRITE_ONCE() annotations.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Link: https://patch.msgid.link/20250407163602.170356-4-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/core/dev.c')
-rw-r--r-- | net/core/dev.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 969883173182..4ccc6dc5303e 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -4953,7 +4953,8 @@ static void rps_trigger_softirq(void *data) struct softnet_data *sd = data; ____napi_schedule(sd, &sd->backlog); - sd->received_rps++; + /* Pairs with READ_ONCE() in softnet_seq_show() */ + WRITE_ONCE(sd->received_rps, sd->received_rps + 1); } #endif /* CONFIG_RPS */ @@ -7523,7 +7524,8 @@ start: */ if (unlikely(budget <= 0 || time_after_eq(jiffies, time_limit))) { - sd->time_squeeze++; + /* Pairs with READ_ONCE() in softnet_seq_show() */ + WRITE_ONCE(sd->time_squeeze, sd->time_squeeze + 1); break; } } |