genetlink: define lockdep_genl_is_held() when CONFIG_LOCKDEP
[deliverable/linux.git] / net / netlink / genetlink.c
index 9f40441d7a7d1771d140bff1382bcba319d57759..fda497412fc34a5b10aa25a1c7599118d5e832a8 100644 (file)
@@ -33,7 +33,7 @@ void genl_unlock(void)
 }
 EXPORT_SYMBOL(genl_unlock);
 
-#ifdef CONFIG_PROVE_LOCKING
+#ifdef CONFIG_LOCKDEP
 int lockdep_genl_is_held(void)
 {
        return lockdep_is_held(&genl_mutex);
@@ -504,7 +504,7 @@ EXPORT_SYMBOL(genl_unregister_family);
  * @pid: netlink pid the message is addressed to
  * @seq: sequence number (usually the one of the sender)
  * @family: generic netlink family
- * @flags netlink message flags
+ * @flags: netlink message flags
  * @cmd: generic netlink command
  *
  * Returns pointer to user specific header
@@ -635,11 +635,12 @@ static int ctrl_fill_info(struct genl_family *family, u32 pid, u32 seq,
        if (hdr == NULL)
                return -1;
 
-       NLA_PUT_STRING(skb, CTRL_ATTR_FAMILY_NAME, family->name);
-       NLA_PUT_U16(skb, CTRL_ATTR_FAMILY_ID, family->id);
-       NLA_PUT_U32(skb, CTRL_ATTR_VERSION, family->version);
-       NLA_PUT_U32(skb, CTRL_ATTR_HDRSIZE, family->hdrsize);
-       NLA_PUT_U32(skb, CTRL_ATTR_MAXATTR, family->maxattr);
+       if (nla_put_string(skb, CTRL_ATTR_FAMILY_NAME, family->name) ||
+           nla_put_u16(skb, CTRL_ATTR_FAMILY_ID, family->id) ||
+           nla_put_u32(skb, CTRL_ATTR_VERSION, family->version) ||
+           nla_put_u32(skb, CTRL_ATTR_HDRSIZE, family->hdrsize) ||
+           nla_put_u32(skb, CTRL_ATTR_MAXATTR, family->maxattr))
+               goto nla_put_failure;
 
        if (!list_empty(&family->ops_list)) {
                struct nlattr *nla_ops;
@@ -657,8 +658,9 @@ static int ctrl_fill_info(struct genl_family *family, u32 pid, u32 seq,
                        if (nest == NULL)
                                goto nla_put_failure;
 
-                       NLA_PUT_U32(skb, CTRL_ATTR_OP_ID, ops->cmd);
-                       NLA_PUT_U32(skb, CTRL_ATTR_OP_FLAGS, ops->flags);
+                       if (nla_put_u32(skb, CTRL_ATTR_OP_ID, ops->cmd) ||
+                           nla_put_u32(skb, CTRL_ATTR_OP_FLAGS, ops->flags))
+                               goto nla_put_failure;
 
                        nla_nest_end(skb, nest);
                }
@@ -682,9 +684,10 @@ static int ctrl_fill_info(struct genl_family *family, u32 pid, u32 seq,
                        if (nest == NULL)
                                goto nla_put_failure;
 
-                       NLA_PUT_U32(skb, CTRL_ATTR_MCAST_GRP_ID, grp->id);
-                       NLA_PUT_STRING(skb, CTRL_ATTR_MCAST_GRP_NAME,
-                                      grp->name);
+                       if (nla_put_u32(skb, CTRL_ATTR_MCAST_GRP_ID, grp->id) ||
+                           nla_put_string(skb, CTRL_ATTR_MCAST_GRP_NAME,
+                                          grp->name))
+                               goto nla_put_failure;
 
                        nla_nest_end(skb, nest);
                }
@@ -710,8 +713,9 @@ static int ctrl_fill_mcgrp_info(struct genl_multicast_group *grp, u32 pid,
        if (hdr == NULL)
                return -1;
 
-       NLA_PUT_STRING(skb, CTRL_ATTR_FAMILY_NAME, grp->family->name);
-       NLA_PUT_U16(skb, CTRL_ATTR_FAMILY_ID, grp->family->id);
+       if (nla_put_string(skb, CTRL_ATTR_FAMILY_NAME, grp->family->name) ||
+           nla_put_u16(skb, CTRL_ATTR_FAMILY_ID, grp->family->id))
+               goto nla_put_failure;
 
        nla_grps = nla_nest_start(skb, CTRL_ATTR_MCAST_GROUPS);
        if (nla_grps == NULL)
@@ -721,9 +725,10 @@ static int ctrl_fill_mcgrp_info(struct genl_multicast_group *grp, u32 pid,
        if (nest == NULL)
                goto nla_put_failure;
 
-       NLA_PUT_U32(skb, CTRL_ATTR_MCAST_GRP_ID, grp->id);
-       NLA_PUT_STRING(skb, CTRL_ATTR_MCAST_GRP_NAME,
-                      grp->name);
+       if (nla_put_u32(skb, CTRL_ATTR_MCAST_GRP_ID, grp->id) ||
+           nla_put_string(skb, CTRL_ATTR_MCAST_GRP_NAME,
+                          grp->name))
+               goto nla_put_failure;
 
        nla_nest_end(skb, nest);
        nla_nest_end(skb, nla_grps);
@@ -831,7 +836,7 @@ static int ctrl_getfamily(struct sk_buff *skb, struct genl_info *info)
 #ifdef CONFIG_MODULES
                if (res == NULL) {
                        genl_unlock();
-                       request_module("net-pf-%d-proto-%d-type-%s",
+                       request_module("net-pf-%d-proto-%d-family-%s",
                                       PF_NETLINK, NETLINK_GENERIC, name);
                        genl_lock();
                        res = genl_family_find_byname(name);
@@ -910,10 +915,14 @@ static struct genl_multicast_group notify_grp = {
 
 static int __net_init genl_pernet_init(struct net *net)
 {
+       struct netlink_kernel_cfg cfg = {
+               .input          = genl_rcv,
+               .cb_mutex       = &genl_mutex,
+       };
+
        /* we'll bump the group number right afterwards */
-       net->genl_sock = netlink_kernel_create(net, NETLINK_GENERIC, 0,
-                                              genl_rcv, &genl_mutex,
-                                              THIS_MODULE);
+       net->genl_sock = netlink_kernel_create(net, NETLINK_GENERIC,
+                                              THIS_MODULE, &cfg);
 
        if (!net->genl_sock && net_eq(net, &init_net))
                panic("GENL: Cannot initialize generic netlink\n");
This page took 0.026844 seconds and 5 git commands to generate.