diff options
Diffstat (limited to 'net/nfc/netlink.c')
| -rw-r--r-- | net/nfc/netlink.c | 34 | 
1 files changed, 18 insertions, 16 deletions
diff --git a/net/nfc/netlink.c b/net/nfc/netlink.c index ea023b35f1c2..03f3d5c7beb8 100644 --- a/net/nfc/netlink.c +++ b/net/nfc/netlink.c @@ -38,14 +38,7 @@ static const struct genl_multicast_group nfc_genl_mcgrps[] = {  	{ .name = NFC_GENL_MCAST_EVENT_NAME, },  }; -static struct genl_family nfc_genl_family = { -	.id = GENL_ID_GENERATE, -	.hdrsize = 0, -	.name = NFC_GENL_NAME, -	.version = NFC_GENL_VERSION, -	.maxattr = NFC_ATTR_MAX, -}; - +static struct genl_family nfc_genl_family;  static const struct nla_policy nfc_genl_policy[NFC_ATTR_MAX + 1] = {  	[NFC_ATTR_DEVICE_INDEX] = { .type = NLA_U32 },  	[NFC_ATTR_DEVICE_NAME] = { .type = NLA_STRING, @@ -120,21 +113,20 @@ nla_put_failure:  static struct nfc_dev *__get_device_from_cb(struct netlink_callback *cb)  { +	struct nlattr **attrbuf = genl_family_attrbuf(&nfc_genl_family);  	struct nfc_dev *dev;  	int rc;  	u32 idx;  	rc = nlmsg_parse(cb->nlh, GENL_HDRLEN + nfc_genl_family.hdrsize, -			 nfc_genl_family.attrbuf, -			 nfc_genl_family.maxattr, -			 nfc_genl_policy); +			 attrbuf, nfc_genl_family.maxattr, nfc_genl_policy);  	if (rc < 0)  		return ERR_PTR(rc); -	if (!nfc_genl_family.attrbuf[NFC_ATTR_DEVICE_INDEX]) +	if (!attrbuf[NFC_ATTR_DEVICE_INDEX])  		return ERR_PTR(-EINVAL); -	idx = nla_get_u32(nfc_genl_family.attrbuf[NFC_ATTR_DEVICE_INDEX]); +	idx = nla_get_u32(attrbuf[NFC_ATTR_DEVICE_INDEX]);  	dev = nfc_get_device(idx);  	if (!dev) @@ -1754,6 +1746,18 @@ static const struct genl_ops nfc_genl_ops[] = {  	},  }; +static struct genl_family nfc_genl_family __ro_after_init = { +	.hdrsize = 0, +	.name = NFC_GENL_NAME, +	.version = NFC_GENL_VERSION, +	.maxattr = NFC_ATTR_MAX, +	.module = THIS_MODULE, +	.ops = nfc_genl_ops, +	.n_ops = ARRAY_SIZE(nfc_genl_ops), +	.mcgrps = nfc_genl_mcgrps, +	.n_mcgrps = ARRAY_SIZE(nfc_genl_mcgrps), +}; +  struct urelease_work {  	struct	work_struct w; @@ -1839,9 +1843,7 @@ int __init nfc_genl_init(void)  {  	int rc; -	rc = genl_register_family_with_ops_groups(&nfc_genl_family, -						  nfc_genl_ops, -						  nfc_genl_mcgrps); +	rc = genl_register_family(&nfc_genl_family);  	if (rc)  		return rc;  |