genetlink: mark families as __ro_after_init
Now genl_register_family() is the only thing (other than the users themselves, perhaps, but I didn't find any doing that) writing to the family struct. In all families that I found, genl_register_family() is only called from __init functions (some indirectly, in which case I've add __init annotations to clarifly things), so all can actually be marked __ro_after_init. This protects the data structure from accidental corruption. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
2ae0f17df1
commit
56989f6d85
@@ -970,7 +970,7 @@ static const struct genl_ops l2tp_nl_ops[] = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct genl_family l2tp_nl_family = {
|
||||
static struct genl_family l2tp_nl_family __ro_after_init = {
|
||||
.name = L2TP_GENL_NAME,
|
||||
.version = L2TP_GENL_VERSION,
|
||||
.hdrsize = 0,
|
||||
@@ -1016,7 +1016,7 @@ void l2tp_nl_unregister_ops(enum l2tp_pwtype pw_type)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(l2tp_nl_unregister_ops);
|
||||
|
||||
static int l2tp_nl_init(void)
|
||||
static int __init l2tp_nl_init(void)
|
||||
{
|
||||
pr_info("L2TP netlink interface\n");
|
||||
return genl_register_family(&l2tp_nl_family);
|
||||
|
Reference in New Issue
Block a user