diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/netlink/genetlink.c | 57 |
1 files changed, 1 insertions, 56 deletions
diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c index 0c741cec4d0d..fbccb45e8cc1 100644 --- a/net/netlink/genetlink.c +++ b/net/netlink/genetlink.c | |||
@@ -283,22 +283,7 @@ static void genl_unregister_mc_groups(struct genl_family *family) | |||
283 | __genl_unregister_mc_group(family, grp); | 283 | __genl_unregister_mc_group(family, grp); |
284 | } | 284 | } |
285 | 285 | ||
286 | /** | 286 | static int genl_register_ops(struct genl_family *family, struct genl_ops *ops) |
287 | * genl_register_ops - register generic netlink operations | ||
288 | * @family: generic netlink family | ||
289 | * @ops: operations to be registered | ||
290 | * | ||
291 | * Registers the specified operations and assigns them to the specified | ||
292 | * family. Either a doit or dumpit callback must be specified or the | ||
293 | * operation will fail. Only one operation structure per command | ||
294 | * identifier may be registered. | ||
295 | * | ||
296 | * See include/net/genetlink.h for more documenation on the operations | ||
297 | * structure. | ||
298 | * | ||
299 | * Returns 0 on success or a negative error code. | ||
300 | */ | ||
301 | int genl_register_ops(struct genl_family *family, struct genl_ops *ops) | ||
302 | { | 287 | { |
303 | int err = -EINVAL; | 288 | int err = -EINVAL; |
304 | 289 | ||
@@ -326,42 +311,6 @@ int genl_register_ops(struct genl_family *family, struct genl_ops *ops) | |||
326 | errout: | 311 | errout: |
327 | return err; | 312 | return err; |
328 | } | 313 | } |
329 | EXPORT_SYMBOL(genl_register_ops); | ||
330 | |||
331 | /** | ||
332 | * genl_unregister_ops - unregister generic netlink operations | ||
333 | * @family: generic netlink family | ||
334 | * @ops: operations to be unregistered | ||
335 | * | ||
336 | * Unregisters the specified operations and unassigns them from the | ||
337 | * specified family. The operation blocks until the current message | ||
338 | * processing has finished and doesn't start again until the | ||
339 | * unregister process has finished. | ||
340 | * | ||
341 | * Note: It is not necessary to unregister all operations before | ||
342 | * unregistering the family, unregistering the family will cause | ||
343 | * all assigned operations to be unregistered automatically. | ||
344 | * | ||
345 | * Returns 0 on success or a negative error code. | ||
346 | */ | ||
347 | int genl_unregister_ops(struct genl_family *family, struct genl_ops *ops) | ||
348 | { | ||
349 | struct genl_ops *rc; | ||
350 | |||
351 | genl_lock_all(); | ||
352 | list_for_each_entry(rc, &family->ops_list, ops_list) { | ||
353 | if (rc == ops) { | ||
354 | list_del(&ops->ops_list); | ||
355 | genl_unlock_all(); | ||
356 | genl_ctrl_event(CTRL_CMD_DELOPS, ops); | ||
357 | return 0; | ||
358 | } | ||
359 | } | ||
360 | genl_unlock_all(); | ||
361 | |||
362 | return -ENOENT; | ||
363 | } | ||
364 | EXPORT_SYMBOL(genl_unregister_ops); | ||
365 | 314 | ||
366 | /** | 315 | /** |
367 | * __genl_register_family - register a generic netlink family | 316 | * __genl_register_family - register a generic netlink family |
@@ -451,10 +400,6 @@ EXPORT_SYMBOL(__genl_register_family); | |||
451 | * See include/net/genetlink.h for more documenation on the operations | 400 | * See include/net/genetlink.h for more documenation on the operations |
452 | * structure. | 401 | * structure. |
453 | * | 402 | * |
454 | * This is equivalent to calling genl_register_family() followed by | ||
455 | * genl_register_ops() for every operation entry in the table taking | ||
456 | * care to unregister the family on error path. | ||
457 | * | ||
458 | * Return 0 on success or a negative error code. | 403 | * Return 0 on success or a negative error code. |
459 | */ | 404 | */ |
460 | int __genl_register_family_with_ops(struct genl_family *family, | 405 | int __genl_register_family_with_ops(struct genl_family *family, |