rtnetlink: do not depend on RTNL in rtnl_fill_proto_down()
authorEric Dumazet <edumazet@google.com>
Fri, 3 May 2024 19:20:57 +0000 (19:20 +0000)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 7 May 2024 09:14:50 +0000 (11:14 +0200)
commit6890ab31d1a35444741e6150db19d64797db2919
tree9f0e4ae240841eb23698a9c4e45115929997b525
parent6747a5d4990b8c8d7392f7a06b7a4bb5f4ada80e
rtnetlink: do not depend on RTNL in rtnl_fill_proto_down()

Change dev_change_proto_down() and dev_change_proto_down_reason()
to write once on dev->proto_down and dev->proto_down_reason.

Then rtnl_fill_proto_down() can use READ_ONCE() annotations
and run locklessly.

rtnl_proto_down_size() should assume worst case,
because readng dev->proto_down_reason multiple
times would be racy without RTNL in the future.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
net/core/dev.c
net/core/rtnetlink.c