summaryrefslogtreecommitdiffstats
path: root/sys/compat/linuxkpi/common/include/linux/kobject.h
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2015-12-28 18:20:05 +0000
committerhselasky <hselasky@FreeBSD.org>2015-12-28 18:20:05 +0000
commit0fc96d39d362dff30bc5839e1f2fe66c83fef8cd (patch)
tree5d0ad69c7b91286aae1f8d623530a4609ef0c85b /sys/compat/linuxkpi/common/include/linux/kobject.h
parentbd647f05b431df82cb8b33b8890e68a7e46c1c33 (diff)
downloadFreeBSD-src-0fc96d39d362dff30bc5839e1f2fe66c83fef8cd.zip
FreeBSD-src-0fc96d39d362dff30bc5839e1f2fe66c83fef8cd.tar.gz
Reduce memory consumption when allocating kobject strings in the
LinuxKPI. Compute string length before allocating memory instead of using fixed size allocations. Make kobject_set_name_vargs() global instead of inline to save some bytes when compiling. MFC after: 1 week Sponsored by: Mellanox Technologies
Diffstat (limited to 'sys/compat/linuxkpi/common/include/linux/kobject.h')
-rw-r--r--sys/compat/linuxkpi/common/include/linux/kobject.h24
1 files changed, 1 insertions, 23 deletions
diff --git a/sys/compat/linuxkpi/common/include/linux/kobject.h b/sys/compat/linuxkpi/common/include/linux/kobject.h
index 0e94809..475095e 100644
--- a/sys/compat/linuxkpi/common/include/linux/kobject.h
+++ b/sys/compat/linuxkpi/common/include/linux/kobject.h
@@ -103,29 +103,7 @@ kobject_get(struct kobject *kobj)
return kobj;
}
-static inline int
-kobject_set_name_vargs(struct kobject *kobj, const char *fmt, va_list args)
-{
- char *old;
- char *name;
-
- old = kobj->name;
-
- if (old && !fmt)
- return 0;
-
- name = kzalloc(MAXPATHLEN, GFP_KERNEL);
- if (!name)
- return -ENOMEM;
- vsnprintf(name, MAXPATHLEN, fmt, args);
- kobj->name = name;
- kfree(old);
- for (; *name != '\0'; name++)
- if (*name == '/')
- *name = '!';
- return (0);
-}
-
+int kobject_set_name_vargs(struct kobject *kobj, const char *fmt, va_list);
int kobject_add(struct kobject *kobj, struct kobject *parent,
const char *fmt, ...);
OpenPOWER on IntegriCloud