diff options
author | Wei Yongjun <weiyongjun1@huawei.com> | 2016-11-01 17:45:52 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-11-01 19:13:13 +0300 |
commit | 22ca904ad70afc831d8503e80be1b6558a978759 (patch) | |
tree | aa27f53e2b2eab9a82c4ab00b53e02430a3339c5 /net/netlink | |
parent | e58e415968110648231ed6783d38e78032661cee (diff) | |
download | linux-22ca904ad70afc831d8503e80be1b6558a978759.tar.xz |
genetlink: fix error return code in genl_register_family()
Fix to return a negative error code from the idr_alloc() error handling
case instead of 0, as done elsewhere in this function.
Also fix the return value check of idr_alloc() since idr_alloc return
negative errors on failure, not zero.
Fixes: 2ae0f17df1cd ("genetlink: use idr to track families")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/netlink')
-rw-r--r-- | net/netlink/genetlink.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c index caf04d70ba71..bbd3bff885a1 100644 --- a/net/netlink/genetlink.c +++ b/net/netlink/genetlink.c @@ -362,8 +362,10 @@ int genl_register_family(struct genl_family *family) family->id = idr_alloc(&genl_fam_idr, family, start, end + 1, GFP_KERNEL); - if (!family->id) + if (family->id < 0) { + err = family->id; goto errout_locked; + } err = genl_validate_assign_mc_groups(family); if (err) |