static kset (and kobject)...

From: Arthur Jones
Date: Tue Jun 10 2008 - 13:57:50 EST


Hi Zack, FYI: I just learned that static ksets and kobjects
are bad (see Documentation/kobject.txt for details). The
following commit:

commit 52fd3d6fea441835fe3a35b7280e5e128bdeca9b
Author: Zach Brown <zach.brown@xxxxxxxxxx>
Date: Thu Dec 15 14:31:23 2005 -0800

[PATCH] OCFS2: The Second Oracle Cluster Filesystem

Very simple printk wrapper which adds the ability to enable various
sets of debug messages at run-time.

Signed-off-by: Mark Fasheh <mark.fasheh@xxxxxxxxxx>
Signed-off-by: Kurt Hackel <kurt.hackel@xxxxxxxxxx>

Introduces:

+static struct kset mlog_kset = {
+ .kobj = {.name = "logmask", .ktype = &mlog_ktype},
+};
+
+int mlog_sys_init(struct subsystem *o2cb_subsys)
+{
+ int i = 0;
+
+ while (mlog_attrs[i].attr.mode) {
+ mlog_attr_ptrs[i] = &mlog_attrs[i].attr;
+ i++;
+ }
+ mlog_attr_ptrs[i] = NULL;
+
+ mlog_kset.subsys = o2cb_subsys;
+ return kset_register(&mlog_kset);
+}
+
+void mlog_sys_shutdown(void)
+{
+ kset_unregister(&mlog_kset);
+}

which I've learned the hard way probably won't
work as expected. I'm surprised that you don't
see some sort of issue w/ this on module reload...

Arthur
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/