aboutsummaryrefslogtreecommitdiffstats
diff options
-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.patch69
-rw-r--r--driver/kset-convert-edd-to-use-kset_create.patch67
-rw-r--r--driver/kset-convert-ocfs2-to-use-kset_create.patch160
-rw-r--r--driver/kset-remove-decl_subsys-macro.patch55
-rw-r--r--series5
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 */
diff --git a/series b/series
index a0ddb70ad33011..415d0a2039d03b 100644
--- a/series
+++ b/series
@@ -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