diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2007-11-02 16:30:23 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2007-11-02 16:30:23 -0700 |
commit | 676910c16088946e994d53b6930e18563f59f586 (patch) | |
tree | e3a132ee8bc70d3d63a4811e667c909f1dcd3a03 | |
parent | c873279f76184b290556e51ce194f2d9d304eb63 (diff) | |
download | patches-676910c16088946e994d53b6930e18563f59f586.tar.gz |
more kset fun
-rw-r--r-- | driver/firmware-remove-firmware_register.patch (renamed from pending/f999.patch) | 52 | ||||
-rw-r--r-- | driver/kset-convert-acpi-to-use-kset_create.patch | 69 | ||||
-rw-r--r-- | driver/kset-convert-edd-to-use-kset_create.patch | 67 | ||||
-rw-r--r-- | driver/kset-convert-ocfs2-to-use-kset_create.patch | 160 | ||||
-rw-r--r-- | driver/kset-remove-decl_subsys-macro.patch | 55 | ||||
-rw-r--r-- | series | 5 |
6 files changed, 382 insertions, 26 deletions
diff --git a/pending/f999.patch b/driver/firmware-remove-firmware_register.patch index 53a7d2043f8586..a4bed47aada6e2 100644 --- a/pending/f999.patch +++ b/driver/firmware-remove-firmware_register.patch @@ -1,8 +1,20 @@ +From foo@baz Tue Apr 9 12:12:43 2002 +Date: Fri, 2 Nov 2007 16:19:59 -0700 +To: Greg KH <greg@kroah.com> +From: Greg Kroah-Hartman <gregkh@suse.de> +Subject: firmware: remove firmware_(un)register() + +These functions are no longer called or needed, so we can remove them. + +As I rewrote the whole firmware.c file, add my copyright. + +Cc: Kay Sievers <kay.sievers@vrfy.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + --- - drivers/base/firmware.c | 22 ++++------------------ - drivers/firmware/edd.c | 1 + - include/linux/device.h | 4 +--- - 3 files changed, 6 insertions(+), 21 deletions(-) + drivers/base/firmware.c | 19 ++----------------- + include/linux/device.h | 5 ----- + 2 files changed, 2 insertions(+), 22 deletions(-) --- a/drivers/base/firmware.c +++ b/drivers/base/firmware.c @@ -20,12 +32,10 @@ #include <linux/kobject.h> #include <linux/module.h> #include <linux/init.h> -@@ -16,19 +16,8 @@ - - #include "base.h" +@@ -19,18 +19,6 @@ + struct kset *firmware_kset; + EXPORT_SYMBOL_GPL(firmware_kset); --static struct kset *firmware_kset; -- -int firmware_register(struct kset *s) -{ - s->kobj.kset = firmware_kset; @@ -37,38 +47,28 @@ -{ - subsystem_unregister(s); -} -+struct kset *firmware_kset; -+EXPORT_SYMBOL(firmware_kset); - +- int __init firmware_init(void) { -@@ -37,6 +26,3 @@ int __init firmware_init(void) + firmware_kset = kset_create_and_register("firmware", NULL, NULL, NULL); +@@ -38,6 +26,3 @@ int __init firmware_init(void) return PTR_ERR(firmware_kset); return 0; } - -EXPORT_SYMBOL_GPL(firmware_register); -EXPORT_SYMBOL_GPL(firmware_unregister); ---- a/drivers/firmware/edd.c -+++ b/drivers/firmware/edd.c -@@ -756,6 +756,7 @@ edd_init(void) - return 1; - } - -+ edd_subsys-> - rc = firmware_register(&edd_subsys); - if (rc) - return rc; --- a/include/linux/device.h +++ b/include/linux/device.h -@@ -543,10 +543,8 @@ extern void device_shutdown(void); +@@ -541,11 +541,6 @@ extern void device_shutdown(void); /* drivers/base/sys.c */ extern void sysdev_shutdown(void); - - /* drivers/base/firmware.c */ +-/* drivers/base/firmware.c */ -extern int __must_check firmware_register(struct kset *); -extern void firmware_unregister(struct kset *); - +- /* debugging and troubleshooting/diagnostic helpers. */ extern const char *dev_driver_string(struct device *dev); + #define dev_printk(level, dev, format, arg...) \ diff --git a/driver/kset-convert-acpi-to-use-kset_create.patch b/driver/kset-convert-acpi-to-use-kset_create.patch new file mode 100644 index 00000000000000..93a29745f9a86a --- /dev/null +++ b/driver/kset-convert-acpi-to-use-kset_create.patch @@ -0,0 +1,69 @@ +From foo@baz Tue Apr 9 12:12:43 2002 +Date: Fri, 2 Nov 2007 16:19:59 -0700 +To: Greg KH <greg@kroah.com> +From: Greg Kroah-Hartman <gregkh@suse.de> +Subject: kset: convert acpi to use kset_create + +Dynamically create the kset instead of declaring it statically. + +Cc: Kay Sievers <kay.sievers@vrfy.org> +Cc: Len Brown <lenb@kernel.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/acpi/bus.c | 12 ++++++++---- + drivers/acpi/system.c | 2 +- + include/acpi/acpi_bus.h | 2 +- + 3 files changed, 10 insertions(+), 6 deletions(-) + +--- a/drivers/acpi/bus.c ++++ b/drivers/acpi/bus.c +@@ -744,7 +744,7 @@ static int __init acpi_bus_init(void) + return -ENODEV; + } + +-decl_subsys(acpi, NULL); ++struct kset *acpi_kset; + + static int __init acpi_init(void) + { +@@ -756,10 +756,14 @@ static int __init acpi_init(void) + return -ENODEV; + } + +- result = firmware_register(&acpi_subsys); +- if (result < 0) +- printk(KERN_WARNING "%s: firmware_register error: %d\n", ++ acpi_kset = kset_create_and_register("acpi", NULL, NULL, ++ firmware_kset); ++ if (IS_ERR(acpi_kset)) { ++ result = PTR_ERR(acpi_kset); ++ printk(KERN_WARNING "%s: kset create error: %d\n", + __FUNCTION__, result); ++ acpi_kset = NULL; ++ } + + result = acpi_bus_init(); + +--- a/drivers/acpi/system.c ++++ b/drivers/acpi/system.c +@@ -135,7 +135,7 @@ static int acpi_system_sysfs_init(void) + int table_index = 0; + int result; + +- tables_kobj.parent = &acpi_subsys.kobj; ++ tables_kobj.parent = &acpi_kset->kobj; + kobject_set_name(&tables_kobj, "tables"); + result = kobject_register(&tables_kobj); + if (result) +--- a/include/acpi/acpi_bus.h ++++ b/include/acpi/acpi_bus.h +@@ -318,7 +318,7 @@ struct acpi_bus_event { + u32 data; + }; + +-extern struct kset acpi_subsys; ++extern struct kset *acpi_kset; + extern int acpi_bus_generate_netlink_event(const char*, const char*, u8, int); + /* + * External Functions diff --git a/driver/kset-convert-edd-to-use-kset_create.patch b/driver/kset-convert-edd-to-use-kset_create.patch new file mode 100644 index 00000000000000..049a1c077d211d --- /dev/null +++ b/driver/kset-convert-edd-to-use-kset_create.patch @@ -0,0 +1,67 @@ +From foo@baz Tue Apr 9 12:12:43 2002 +Date: Fri, 2 Nov 2007 16:19:59 -0700 +To: Greg KH <greg@kroah.com> +From: Greg Kroah-Hartman <gregkh@suse.de> +Subject: kset: convert edd to use kset_create + +Dynamically create the kset instead of declaring it statically. + +Cc: Kay Sievers <kay.sievers@vrfy.org> +Cc: Matt Domsch <Matt_Domsch@dell.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/firmware/edd.c | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +--- a/drivers/firmware/edd.c ++++ b/drivers/firmware/edd.c +@@ -631,7 +631,7 @@ static struct kobj_type edd_ktype = { + .default_attrs = def_attrs, + }; + +-static decl_subsys(edd, NULL); ++static struct kset *edd_kset; + + + /** +@@ -723,7 +723,7 @@ edd_device_register(struct edd_device *e + edd_dev_set_info(edev, i); + kobject_set_name(&edev->kobj, "int13_dev%02x", + 0x80 + i); +- edev->kobj.kset = &edd_subsys; ++ edev->kobj.kset = edd_kset; + edev->kobj.ktype = &edd_ktype; + error = kobject_register(&edev->kobj); + if (!error) +@@ -756,9 +756,9 @@ edd_init(void) + return 1; + } + +- rc = firmware_register(&edd_subsys); +- if (rc) +- return rc; ++ edd_kset = kset_create_and_register("edd", NULL, NULL, firmware_kset); ++ if (IS_ERR(edd_kset)) ++ return PTR_ERR(edd_kset); + + for (i = 0; i < edd_num_devices() && !rc; i++) { + edev = kzalloc(sizeof (*edev), GFP_KERNEL); +@@ -774,7 +774,7 @@ edd_init(void) + } + + if (rc) +- firmware_unregister(&edd_subsys); ++ kset_unregister(edd_kset); + return rc; + } + +@@ -788,7 +788,7 @@ edd_exit(void) + if ((edev = edd_devices[i])) + edd_device_unregister(edev); + } +- firmware_unregister(&edd_subsys); ++ kset_unregister(edd_kset); + } + + late_initcall(edd_init); diff --git a/driver/kset-convert-ocfs2-to-use-kset_create.patch b/driver/kset-convert-ocfs2-to-use-kset_create.patch new file mode 100644 index 00000000000000..513ad7860dc61a --- /dev/null +++ b/driver/kset-convert-ocfs2-to-use-kset_create.patch @@ -0,0 +1,160 @@ +From foo@baz Tue Apr 9 12:12:43 2002 +Date: Fri, 2 Nov 2007 16:19:59 -0700 +To: Greg KH <greg@kroah.com> +From: Greg Kroah-Hartman <gregkh@suse.de> +Subject: kset: convert ocfs2 to use kset_create + +Dynamically create the kset instead of declaring it statically. + +Also use the new kobj_attribute which cleans up this file a _lot_. + +Cc: Kay Sievers <kay.sievers@vrfy.org> +Cc: Mark Fasheh <mark.fasheh@oracle.com> +Cc: Kurt Hackel <kurt.hackel@oracle.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + fs/ocfs2/cluster/masklog.c | 4 +- + fs/ocfs2/cluster/sys.c | 83 +++++++++++---------------------------------- + 2 files changed, 23 insertions(+), 64 deletions(-) + +--- a/fs/ocfs2/cluster/masklog.c ++++ b/fs/ocfs2/cluster/masklog.c +@@ -146,7 +146,7 @@ static struct kset mlog_kset = { + .kobj = {.ktype = &mlog_ktype}, + }; + +-int mlog_sys_init(struct kset *o2cb_subsys) ++int mlog_sys_init(struct kset *o2cb_kset) + { + int i = 0; + +@@ -157,7 +157,7 @@ int mlog_sys_init(struct kset *o2cb_subs + mlog_attr_ptrs[i] = NULL; + + kobject_set_name(&mlog_kset.kobj, "logmask"); +- mlog_kset.kobj.kset = o2cb_subsys; ++ mlog_kset.kobj.kset = o2cb_kset; + return kset_register(&mlog_kset); + } + +--- a/fs/ocfs2/cluster/sys.c ++++ b/fs/ocfs2/cluster/sys.c +@@ -28,96 +28,55 @@ + #include <linux/module.h> + #include <linux/kobject.h> + #include <linux/sysfs.h> ++#include <linux/fs.h> + + #include "ocfs2_nodemanager.h" + #include "masklog.h" + #include "sys.h" + +-struct o2cb_attribute { +- struct attribute attr; +- ssize_t (*show)(char *buf); +- ssize_t (*store)(const char *buf, size_t count); +-}; +- +-#define O2CB_ATTR(_name, _mode, _show, _store) \ +-struct o2cb_attribute o2cb_attr_##_name = __ATTR(_name, _mode, _show, _store) +- +-#define to_o2cb_attr(_attr) container_of(_attr, struct o2cb_attribute, attr) + +-static ssize_t o2cb_interface_revision_show(char *buf) ++static ssize_t version_show(struct kobject *kobj, struct kobj_attribute *attr, ++ char *buf) + { + return snprintf(buf, PAGE_SIZE, "%u\n", O2NM_API_VERSION); + } +- +-static O2CB_ATTR(interface_revision, S_IFREG | S_IRUGO, o2cb_interface_revision_show, NULL); ++static struct kobj_attribute attr_version = ++ __ATTR(interface_revision, S_IFREG | S_IRUGO, version_show, NULL); + + static struct attribute *o2cb_attrs[] = { +- &o2cb_attr_interface_revision.attr, ++ &attr_version.attr, + NULL, + }; + +-static ssize_t +-o2cb_show(struct kobject * kobj, struct attribute * attr, char * buffer); +-static ssize_t +-o2cb_store(struct kobject * kobj, struct attribute * attr, +- const char * buffer, size_t count); +-static struct sysfs_ops o2cb_sysfs_ops = { +- .show = o2cb_show, +- .store = o2cb_store, ++static struct attribute_group o2cb_attr_group = { ++ .attrs = o2cb_attrs, + }; + +-static struct kobj_type o2cb_subsys_type = { +- .default_attrs = o2cb_attrs, +- .sysfs_ops = &o2cb_sysfs_ops, +-}; +- +-/* gives us o2cb_subsys */ +-static decl_subsys(o2cb, NULL); +- +-static ssize_t +-o2cb_show(struct kobject * kobj, struct attribute * attr, char * buffer) +-{ +- struct o2cb_attribute *o2cb_attr = to_o2cb_attr(attr); +- struct kset *sbs = to_kset(kobj); +- +- BUG_ON(sbs != &o2cb_subsys); +- +- if (o2cb_attr->show) +- return o2cb_attr->show(buffer); +- return -EIO; +-} +- +-static ssize_t +-o2cb_store(struct kobject * kobj, struct attribute * attr, +- const char * buffer, size_t count) +-{ +- struct o2cb_attribute *o2cb_attr = to_o2cb_attr(attr); +- struct kset *sbs = to_kset(kobj); +- +- BUG_ON(sbs != &o2cb_subsys); +- +- if (o2cb_attr->store) +- return o2cb_attr->store(buffer, count); +- return -EIO; +-} ++static struct kset *o2cb_kset; + + void o2cb_sys_shutdown(void) + { + mlog_sys_shutdown(); +- subsystem_unregister(&o2cb_subsys); ++ kset_unregister(o2cb_kset); + } + + int o2cb_sys_init(void) + { + int ret; + +- o2cb_subsys.kobj.ktype = &o2cb_subsys_type; +- ret = subsystem_register(&o2cb_subsys); ++ o2cb_kset = kset_create_and_register("o2cb", NULL, NULL, fs_kset); ++ if (IS_ERR(o2cb_kset)) ++ return PTR_ERR(o2cb_kset); ++ ++ ret = sysfs_create_group(&o2cb_kset->kobj, &o2cb_attr_group); + if (ret) +- return ret; ++ goto error; + +- ret = mlog_sys_init(&o2cb_subsys); ++ ret = mlog_sys_init(o2cb_kset); + if (ret) +- subsystem_unregister(&o2cb_subsys); ++ goto error; ++ return 0; ++error: ++ kset_unregister(o2cb_kset); + return ret; + } diff --git a/driver/kset-remove-decl_subsys-macro.patch b/driver/kset-remove-decl_subsys-macro.patch new file mode 100644 index 00000000000000..65cc4349b6c34d --- /dev/null +++ b/driver/kset-remove-decl_subsys-macro.patch @@ -0,0 +1,55 @@ +From foo@baz Tue Apr 9 12:12:43 2002 +Date: Fri, 2 Nov 2007 16:19:59 -0700 +To: Greg KH <greg@kroah.com> +From: Greg Kroah-Hartman <gregkh@suse.de> +Subject: kset: remove decl_subsys macro + +This macro is no longer used. ksets should be created dynamically with +a call to kset_create_and_register() not declared statically. + +Yes, there are 5 remaining static struct kset usages in the kernel tree, +but they will be fixed up soon. + +Cc: Kay Sievers <kay.sievers@vrfy.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/base/class.c | 11 +++++++++-- + include/linux/kobject.h | 6 ------ + 2 files changed, 9 insertions(+), 8 deletions(-) + +--- a/drivers/base/class.c ++++ b/drivers/base/class.c +@@ -453,8 +453,15 @@ static struct kset_uevent_ops class_ueve + .uevent = class_uevent, + }; + +-static decl_subsys(class_obj, &class_uevent_ops); +- ++/* ++ * DO NOT copy how this is created, kset_create_and_register() should be ++ * called, but this is a hold-over from the old-way and will be deleted ++ * entirely soon. ++ */ ++static struct kset class_obj_subsys = { ++ .kobj = { .k_name = "class_obj", }, ++ .uevent_ops = &class_uevent_ops, ++}; + + static int class_device_add_attrs(struct class_device * cd) + { +--- a/include/linux/kobject.h ++++ b/include/linux/kobject.h +@@ -192,12 +192,6 @@ extern struct kobject * kset_find_obj(st + #define set_kset_name(str) .kset = { .kobj = { .k_name = str } } + + +-#define decl_subsys(_name,_uevent_ops) \ +-struct kset _name##_subsys = { \ +- .kobj = { .k_name = __stringify(_name) }, \ +- .uevent_ops =_uevent_ops, \ +-} +- + /* The global /sys/kernel/ kset for people to chain off of */ + extern struct kset *kernel_kset; + /* The global /sys/hypervisor/ kset for people to chain off of */ @@ -77,6 +77,11 @@ driver/kset-convert-s390-ipl.c-to-use-kset_create.patch driver/kobject-convert-parisc-pdc_stable-to-kobj_attr-interface.patch driver/kset-convert-parisc-pdc_stable.c-to-use-kset_create.patch driver/kset-kill-subsys-attr.patch +driver/kset-convert-edd-to-use-kset_create.patch +driver/kset-convert-acpi-to-use-kset_create.patch +driver/firmware-remove-firmware_register.patch +driver/kset-convert-ocfs2-to-use-kset_create.patch +driver/kset-remove-decl_subsys-macro.patch # someday we will get these into mainline... driver/block-device.patch |