diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2010-08-26 00:15:25 -0700 |
---|---|---|
committer | Matthew Garrett <mjg@redhat.com> | 2010-10-21 09:36:48 -0400 |
commit | 614ef4322200086447d5e1f79e8876213c94f499 (patch) | |
tree | 4e0fc6e06502e57e3f70ad5cbc83570d7338de0d | |
parent | 8e07514db8d037a8454e81cd529a9844c9fa7075 (diff) |
WMI: make use of class device's attributres
Instead of adding modalias attribute manually set it up as class's
device attribute so driver core will create and remove it for us.
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
-rw-r--r-- | drivers/platform/x86/wmi.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c index dd30b2aa7a29..b9a60a0aabfd 100644 --- a/drivers/platform/x86/wmi.c +++ b/drivers/platform/x86/wmi.c @@ -649,7 +649,7 @@ EXPORT_SYMBOL_GPL(wmi_has_guid); /* * sysfs interface */ -static ssize_t show_modalias(struct device *dev, struct device_attribute *attr, +static ssize_t modalias_show(struct device *dev, struct device_attribute *attr, char *buf) { char guid_string[37]; @@ -663,7 +663,11 @@ static ssize_t show_modalias(struct device *dev, struct device_attribute *attr, return sprintf(buf, "wmi:%s\n", guid_string); } -static DEVICE_ATTR(modalias, S_IRUGO, show_modalias, NULL); + +static struct device_attribute wmi_dev_attrs[] = { + __ATTR_RO(modalias), + __ATTR_NULL +}; static int wmi_dev_uevent(struct device *dev, struct kobj_uevent_env *env) { @@ -696,6 +700,7 @@ static struct class wmi_class = { .name = "wmi", .dev_release = wmi_dev_free, .dev_uevent = wmi_dev_uevent, + .dev_attrs = wmi_dev_attrs, }; static int wmi_create_devs(void) @@ -728,10 +733,6 @@ static int wmi_create_devs(void) result = device_register(guid_dev); if (result) return result; - - result = device_create_file(guid_dev, &dev_attr_modalias); - if (result) - return result; } return 0; @@ -751,8 +752,6 @@ static void wmi_remove_devs(void) guid_dev = wblock->dev; gblock = &wblock->gblock; - device_remove_file(guid_dev, &dev_attr_modalias); - device_unregister(guid_dev); } } |