summaryrefslogtreecommitdiffstats
path: root/sys/ofed/include/linux/linux_compat.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/ofed/include/linux/linux_compat.c')
-rw-r--r--sys/ofed/include/linux/linux_compat.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/sys/ofed/include/linux/linux_compat.c b/sys/ofed/include/linux/linux_compat.c
index 80d1e1e..5ac7dd6 100644
--- a/sys/ofed/include/linux/linux_compat.c
+++ b/sys/ofed/include/linux/linux_compat.c
@@ -2,6 +2,7 @@
* Copyright (c) 2010 Isilon Systems, Inc.
* Copyright (c) 2010 iX Systems, Inc.
* Copyright (c) 2010 Panasas, Inc.
+ * Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -160,10 +161,17 @@ kobject_release(struct kref *kref)
static void
kobject_kfree(struct kobject *kobj)
{
-
kfree(kobj);
}
+static void
+kobject_kfree_name(struct kobject *kobj)
+{
+ if (kobj) {
+ kfree(kobj->name);
+ }
+}
+
struct kobj_type kfree_type = { .release = kobject_kfree };
struct device *
@@ -701,3 +709,12 @@ linux_compat_init(void)
}
SYSINIT(linux_compat, SI_SUB_DRIVERS, SI_ORDER_SECOND, linux_compat_init, NULL);
+
+static void
+linux_compat_uninit(void)
+{
+ kobject_kfree_name(&class_root);
+ kobject_kfree_name(&linux_rootdev.kobj);
+ kobject_kfree_name(&miscclass.kobj);
+}
+SYSUNINIT(linux_compat, SI_SUB_DRIVERS, SI_ORDER_SECOND, linux_compat_uninit, NULL);
OpenPOWER on IntegriCloud