Re: [PATCH] net/handshake: fix section mismatch error for handshake_genl_net_ops

From: Chuck Lever III
Date: Fri Apr 21 2023 - 09:25:43 EST




> On Apr 21, 2023, at 4:24 AM, Arnd Bergmann <arnd@xxxxxxxxxx> wrote:
>
> From: Arnd Bergmann <arnd@xxxxxxxx>
>
> The new netlink interface causes a link-time warning about the use of
> a discarded symbol:
>
> WARNING: modpost: vmlinux.o: section mismatch in reference: handshake_exit (section: .exit.text) -> (unknown) (section: .init.data)
> ERROR: modpost: Section mismatches detected.
>
> There are other instances of pernet_operations that are marked as
> __net_initdata as well, so I'm not sure what the lifetime rules are,
> but it's clear that any discarded symbol cannot be referenced from an
> exitcall, so remove that annotation here.
>
> Fixes: 3b3009ea8abb ("net/handshake: Create a NETLINK service for handling handshake requests")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>

Thank you, Arnd. We received two other patches yesterday
with the same build error report and suggested fix.


> ---
> net/handshake/netlink.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/handshake/netlink.c b/net/handshake/netlink.c
> index 8ea0ff993f9f..35c9c445e0b8 100644
> --- a/net/handshake/netlink.c
> +++ b/net/handshake/netlink.c
> @@ -249,7 +249,7 @@ static void __net_exit handshake_net_exit(struct net *net)
> }
> }
>
> -static struct pernet_operations __net_initdata handshake_genl_net_ops = {
> +static struct pernet_operations handshake_genl_net_ops = {
> .init = handshake_net_init,
> .exit = handshake_net_exit,
> .id = &handshake_net_id,
> --
> 2.39.2
>

--
Chuck Lever