]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
rtnetlink: Remove rtnl_register() and rtnl_register_module().
authorKuniyuki Iwashima <kuniyu@amazon.com>
Mon, 14 Oct 2024 20:18:28 +0000 (13:18 -0700)
committerJakub Kicinski <kuba@kernel.org>
Wed, 16 Oct 2024 01:52:26 +0000 (18:52 -0700)
No one uses rtnl_register() and rtnl_register_module().

Let's remove them.

Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20241014201828.91221-12-kuniyu@amazon.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/net/rtnetlink.h
net/core/rtnetlink.c

index 2d3eb7cb4dfff0f6f62b2d9a35b433ceaa6c5bfd..bb49c5708ce7eca0bdcf5e1145e82aca151b64f3 100644 (file)
@@ -29,6 +29,16 @@ static inline enum rtnl_kinds rtnl_msgtype_kind(int msgtype)
        return msgtype & RTNL_KIND_MASK;
 }
 
+/**
+ *     struct rtnl_msg_handler - rtnetlink message type and handlers
+ *
+ *     @owner: NULL for built-in, THIS_MODULE for module
+ *     @protocol: Protocol family or PF_UNSPEC
+ *     @msgtype: rtnetlink message type
+ *     @doit: Function pointer called for each request message
+ *     @dumpit: Function pointer called for each dump request (NLM_F_DUMP) message
+ *     @flags: rtnl_link_flags to modify behaviour of doit/dumpit functions
+ */
 struct rtnl_msg_handler {
        struct module *owner;
        int protocol;
@@ -38,11 +48,6 @@ struct rtnl_msg_handler {
        int flags;
 };
 
-void rtnl_register(int protocol, int msgtype,
-                  rtnl_doit_func, rtnl_dumpit_func, unsigned int flags);
-int rtnl_register_module(struct module *owner, int protocol, int msgtype,
-                        rtnl_doit_func, rtnl_dumpit_func, unsigned int flags);
-int rtnl_unregister(int protocol, int msgtype);
 void rtnl_unregister_all(int protocol);
 
 int __rtnl_register_many(const struct rtnl_msg_handler *handlers, int n);
index 0fbbfeb2cb5030ee4aa5c088058f12e110ec0599..a9c92392fb1db38ebd04369d0b1fe610e8e828d5 100644 (file)
@@ -338,57 +338,6 @@ unlock:
        return ret;
 }
 
-/**
- * rtnl_register_module - Register a rtnetlink message type
- *
- * @owner: module registering the hook (THIS_MODULE)
- * @protocol: Protocol family or PF_UNSPEC
- * @msgtype: rtnetlink message type
- * @doit: Function pointer called for each request message
- * @dumpit: Function pointer called for each dump request (NLM_F_DUMP) message
- * @flags: rtnl_link_flags to modify behaviour of doit/dumpit functions
- *
- * Like rtnl_register, but for use by removable modules.
- */
-int rtnl_register_module(struct module *owner,
-                        int protocol, int msgtype,
-                        rtnl_doit_func doit, rtnl_dumpit_func dumpit,
-                        unsigned int flags)
-{
-       return rtnl_register_internal(owner, protocol, msgtype,
-                                     doit, dumpit, flags);
-}
-EXPORT_SYMBOL_GPL(rtnl_register_module);
-
-/**
- * rtnl_register - Register a rtnetlink message type
- * @protocol: Protocol family or PF_UNSPEC
- * @msgtype: rtnetlink message type
- * @doit: Function pointer called for each request message
- * @dumpit: Function pointer called for each dump request (NLM_F_DUMP) message
- * @flags: rtnl_link_flags to modify behaviour of doit/dumpit functions
- *
- * Registers the specified function pointers (at least one of them has
- * to be non-NULL) to be called whenever a request message for the
- * specified protocol family and message type is received.
- *
- * The special protocol family PF_UNSPEC may be used to define fallback
- * function pointers for the case when no entry for the specific protocol
- * family exists.
- */
-void rtnl_register(int protocol, int msgtype,
-                  rtnl_doit_func doit, rtnl_dumpit_func dumpit,
-                  unsigned int flags)
-{
-       int err;
-
-       err = rtnl_register_internal(NULL, protocol, msgtype, doit, dumpit,
-                                    flags);
-       if (err)
-               pr_err("Unable to register rtnetlink message handler, "
-                      "protocol = %d, message type = %d\n", protocol, msgtype);
-}
-
 /**
  * rtnl_unregister - Unregister a rtnetlink message type
  * @protocol: Protocol family or PF_UNSPEC
@@ -396,7 +345,7 @@ void rtnl_register(int protocol, int msgtype,
  *
  * Returns 0 on success or a negative error code.
  */
-int rtnl_unregister(int protocol, int msgtype)
+static int rtnl_unregister(int protocol, int msgtype)
 {
        struct rtnl_link __rcu **tab;
        struct rtnl_link *link;
@@ -419,7 +368,6 @@ int rtnl_unregister(int protocol, int msgtype)
 
        return 0;
 }
-EXPORT_SYMBOL_GPL(rtnl_unregister);
 
 /**
  * rtnl_unregister_all - Unregister all rtnetlink message type of a protocol
@@ -454,6 +402,26 @@ void rtnl_unregister_all(int protocol)
 }
 EXPORT_SYMBOL_GPL(rtnl_unregister_all);
 
+/**
+ * __rtnl_register_many - Register rtnetlink message types
+ * @handlers: Array of struct rtnl_msg_handlers
+ * @n: The length of @handlers
+ *
+ * Registers the specified function pointers (at least one of them has
+ * to be non-NULL) to be called whenever a request message for the
+ * specified protocol family and message type is received.
+ *
+ * The special protocol family PF_UNSPEC may be used to define fallback
+ * function pointers for the case when no entry for the specific protocol
+ * family exists.
+ *
+ * When one element of @handlers fails to register,
+ * 1) built-in: panics.
+ * 2) modules : the previous successful registrations are unwinded
+ *              and an error is returned.
+ *
+ * Use rtnl_register_many().
+ */
 int __rtnl_register_many(const struct rtnl_msg_handler *handlers, int n)
 {
        const struct rtnl_msg_handler *handler;