mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 08:14:15 +08:00
net: xfrm: unexport __init-annotated xfrm4_protocol_init()
[ Upstream commit4a388f08d8
] EXPORT_SYMBOL and __init is a bad combination because the .init.text section is freed up after the initialization. Hence, modules cannot use symbols annotated __init. The access to a freed symbol may end up with kernel panic. modpost used to detect it, but it has been broken for a decade. Recently, I fixed modpost so it started to warn it again, then this showed up in linux-next builds. There are two ways to fix it: - Remove __init - Remove EXPORT_SYMBOL I chose the latter for this case because the only in-tree call-site, net/ipv4/xfrm4_policy.c is never compiled as modular. (CONFIG_XFRM is boolean) Fixes:2f32b51b60
("xfrm: Introduce xfrm_input_afinfo to access the the callbacks properly") Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Acked-by: Steffen Klassert <steffen.klassert@secunet.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
59fa94cddf
commit
85a055c036
@ -304,4 +304,3 @@ void __init xfrm4_protocol_init(void)
|
||||
{
|
||||
xfrm_input_register_afinfo(&xfrm4_input_afinfo);
|
||||
}
|
||||
EXPORT_SYMBOL(xfrm4_protocol_init);
|
||||
|
Loading…
Reference in New Issue
Block a user