diff options
author | Johannes Berg <johannes.berg@intel.com> | 2016-10-24 14:40:01 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-10-27 16:16:08 -0400 |
commit | c90c39dab3e02ce45427a214746711f33ad13be6 (patch) | |
tree | bfd0b747bc412fbe73ea68518df15d149ce8333a /net/nfc | |
parent | 4fe77d82ef80c77031c9c6f8554cd0dee2aa423a (diff) | |
download | op-kernel-dev-c90c39dab3e02ce45427a214746711f33ad13be6.zip op-kernel-dev-c90c39dab3e02ce45427a214746711f33ad13be6.tar.gz |
genetlink: introduce and use genl_family_attrbuf()
This helper function allows family implementations to access
their family's attrbuf. This gets rid of the attrbuf usage
in families, and also adds locking validation, since it's not
valid to use the attrbuf with parallel_ops or outside of the
dumpit callback.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/nfc')
-rw-r--r-- | net/nfc/netlink.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/net/nfc/netlink.c b/net/nfc/netlink.c index ea023b3..79786bf 100644 --- a/net/nfc/netlink.c +++ b/net/nfc/netlink.c @@ -120,21 +120,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) |