summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrishna Kumar <krkumar2@in.ibm.com>2009-10-14 19:54:53 +0000
committerDavid S. Miller <davem@davemloft.net>2009-10-17 23:57:26 -0700
commit93860b08e31a3202b6e67e386811545e719a0165 (patch)
tree332e0431ec85fc7109e50de6ecd8c67d55f3aa75
parent0d9a40de60a4470777913d8d42044ae548e6545d (diff)
genetlink: Optimize genl_register_family()
genl_register_family() doesn't need to call genl_family_find_byid when GENL_ID_GENERATE is passed during register. Patch on net-next-2.6, compile and reboot testing only. Signed-off-by: Krishna Kumar <krkumar2@in.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/netlink/genetlink.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c
index 44ff3f3810fa..ddfdb7d2e02b 100644
--- a/net/netlink/genetlink.c
+++ b/net/netlink/genetlink.c
@@ -374,11 +374,6 @@ int genl_register_family(struct genl_family *family)
goto errout_locked;
}
- if (genl_family_find_byid(family->id)) {
- err = -EEXIST;
- goto errout_locked;
- }
-
if (family->id == GENL_ID_GENERATE) {
u16 newid = genl_generate_id();
@@ -388,6 +383,9 @@ int genl_register_family(struct genl_family *family)
}
family->id = newid;
+ } else if (genl_family_find_byid(family->id)) {
+ err = -EEXIST;
+ goto errout_locked;
}
if (family->maxattr) {