]> git.itanic.dy.fi Git - linux-stable/commit
dpll: move all dpll<>netdev helpers to dpll code
authorJakub Kicinski <kuba@kernel.org>
Tue, 5 Mar 2024 01:35:32 +0000 (17:35 -0800)
committerJakub Kicinski <kuba@kernel.org>
Wed, 6 Mar 2024 02:36:42 +0000 (18:36 -0800)
commit289e922582af5b4721ba02e86bde4d9ba918158a
tree6607a89aa36d419881b0786b4dcfcfd5a9eb5043
parent685f7d531264599b3f167f1e94bbd22f120e5fab
dpll: move all dpll<>netdev helpers to dpll code

Older versions of GCC really want to know the full definition
of the type involved in rcu_assign_pointer().

struct dpll_pin is defined in a local header, net/core can't
reach it. Move all the netdev <> dpll code into dpll, where
the type is known. Otherwise we'd need multiple function calls
to jump between the compilation units.

This is the same problem the commit under fixes was trying to address,
but with rcu_assign_pointer() not rcu_dereference().

Some of the exports are not needed, networking core can't
be a module, we only need exports for the helpers used by
drivers.

Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Link: https://lore.kernel.org/all/35a869c8-52e8-177-1d4d-e57578b99b6@linux-m68k.org/
Fixes: 640f41ed33b5 ("dpll: fix build failure due to rcu_dereference_check() on unknown type")
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://lore.kernel.org/r/20240305013532.694866-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Documentation/driver-api/dpll.rst
drivers/dpll/dpll_core.c
drivers/dpll/dpll_netlink.c
drivers/net/ethernet/intel/ice/ice_dpll.c
drivers/net/ethernet/mellanox/mlx5/core/dpll.c
include/linux/dpll.h
include/linux/netdevice.h
net/core/dev.c
net/core/rtnetlink.c