git: 1341ac9f9c11 - main - linuxkpi: Move class_create to .c file
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 05 Apr 2022 05:10:01 UTC
The branch main has been updated by imp:
URL: https://cgit.FreeBSD.org/src/commit/?id=1341ac9f9c111bba4e1ca046c479f32f2d4989c0
commit 1341ac9f9c111bba4e1ca046c479f32f2d4989c0
Author: Warner Losh <imp@FreeBSD.org>
AuthorDate: 2022-04-05 05:05:43 +0000
Commit: Warner Losh <imp@FreeBSD.org>
CommitDate: 2022-04-05 05:05:43 +0000
linuxkpi: Move class_create to .c file
class_create encodes the size of struct class into the generated
code. Move from .h file to .c file to move this knowledge from the
client modules that call this into the linuxkpi module.
Sponsored by: Netflix
Reviewed by: hselasky, emaste
Differential Revision: https://reviews.freebsd.org/D34769
---
sys/compat/linuxkpi/common/include/linux/device.h | 21 ++-------------------
sys/compat/linuxkpi/common/src/linux_compat.c | 19 +++++++++++++++++++
2 files changed, 21 insertions(+), 19 deletions(-)
diff --git a/sys/compat/linuxkpi/common/include/linux/device.h b/sys/compat/linuxkpi/common/include/linux/device.h
index e11ed0289043..e39b3f95ca0d 100644
--- a/sys/compat/linuxkpi/common/include/linux/device.h
+++ b/sys/compat/linuxkpi/common/include/linux/device.h
@@ -289,6 +289,8 @@ put_device(struct device *dev)
kobject_put(&dev->kobj);
}
+struct class *class_create(struct module *owner, const char *name);
+
static inline int
class_register(struct class *class)
{
@@ -525,25 +527,6 @@ linux_class_kfree(struct class *class)
kfree(class);
}
-static inline struct class *
-class_create(struct module *owner, const char *name)
-{
- struct class *class;
- int error;
-
- class = kzalloc(sizeof(*class), M_WAITOK);
- class->owner = owner;
- class->name = name;
- class->class_release = linux_class_kfree;
- error = class_register(class);
- if (error) {
- kfree(class);
- return (NULL);
- }
-
- return (class);
-}
-
static inline void
class_destroy(struct class *class)
{
diff --git a/sys/compat/linuxkpi/common/src/linux_compat.c b/sys/compat/linuxkpi/common/src/linux_compat.c
index 22652e87d20f..404b0e0857a5 100644
--- a/sys/compat/linuxkpi/common/src/linux_compat.c
+++ b/sys/compat/linuxkpi/common/src/linux_compat.c
@@ -496,6 +496,25 @@ error:
return ERR_PTR(retval);
}
+struct class *
+class_create(struct module *owner, const char *name)
+{
+ struct class *class;
+ int error;
+
+ class = kzalloc(sizeof(*class), M_WAITOK);
+ class->owner = owner;
+ class->name = name;
+ class->class_release = linux_class_kfree;
+ error = class_register(class);
+ if (error) {
+ kfree(class);
+ return (NULL);
+ }
+
+ return (class);
+}
+
int
kobject_init_and_add(struct kobject *kobj, const struct kobj_type *ktype,
struct kobject *parent, const char *fmt, ...)