2023-12-12 09:46:48

by Gan, Yi Fang

[permalink] [raw]
Subject: [PATCH net-next 1/1] driver.h: add helper macro for module_exit() boilerplate

For the modules need a module_init() but don't need to do
anything special in module_exit() might need to have an empty
module_exit(). This patch add a new macro module_exit_stub() to
replace the empty module_exit(). The macro is useful to remove
the module_exit() boilerplate.

Signed-off-by: Gan, Yi Fang <[email protected]>
---
include/linux/device/driver.h | 14 ++++++++++++++
1 file changed, 14 insertions(+)

diff --git a/include/linux/device/driver.h b/include/linux/device/driver.h
index 7738f458995f..18e75c7b5c2f 100644
--- a/include/linux/device/driver.h
+++ b/include/linux/device/driver.h
@@ -288,4 +288,18 @@ static int __init __driver##_init(void) \
} \
device_initcall(__driver##_init);

+/**
+ * module_exit_stub() - Helper macro for drivers that have init but don't
+ * do anything in exit. This eliminates some boilerplate.
+ * Each module may only use this macro one, and calling it replaces
+ * module_exit().
+ *
+ * @__driver: driver name
+ */
+#define module_exit_stub(__driver) \
+static void __exit __driver##_exit(void) \
+{ \
+} \
+module_exit(__driver##_exit)
+
#endif /* _DEVICE_DRIVER_H_ */
--
2.34.1


2023-12-12 10:16:45

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH net-next 1/1] driver.h: add helper macro for module_exit() boilerplate

On Tue, Dec 12, 2023 at 05:43:52PM +0800, Gan, Yi Fang wrote:
> For the modules need a module_init() but don't need to do
> anything special in module_exit() might need to have an empty
> module_exit(). This patch add a new macro module_exit_stub() to
> replace the empty module_exit(). The macro is useful to remove
> the module_exit() boilerplate.
>
> Signed-off-by: Gan, Yi Fang <[email protected]>
> ---
> include/linux/device/driver.h | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)

Why would we take a macro that no one actually uses?

Please submit this with a user, you all know that this is the case, how
did it pass your internal reviews (hint, I don't think it did...)

thanks,

greg k-h