diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-11-13 16:31:36 +0900 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-11-13 16:31:36 +0900 |
commit | 7fa8fb124d5339a4e0d20d0a97a6b63731ce97d3 (patch) | |
tree | 5761a78996b2f07f160c7a1e91b3a0f387272c4c | |
parent | 52894f7f35f3c6ad2b3362f021cdee69797d7a79 (diff) | |
download | patches-7fa8fb124d5339a4e0d20d0a97a6b63731ce97d3.tar.gz |
remove patches upstream now
51 files changed, 12 insertions, 4664 deletions
diff --git a/bcma-convert-bus-code-to-use-dev_groups.patch b/bcma-convert-bus-code-to-use-dev_groups.patch deleted file mode 100644 index d5bfcb5438b56..0000000000000 --- a/bcma-convert-bus-code-to-use-dev_groups.patch +++ /dev/null @@ -1,72 +0,0 @@ -From foo@baz Sun Oct 6 13:38:32 PDT 2013 -Date: Sun, 06 Oct 2013 13:38:32 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: bcma: convert bus code to use dev_groups - -The dev_attrs field of struct bus_type is going away soon, dev_groups -should be used instead. This converts the bcma bus code to use the -correct field. - -Cc: Rafał Miłecki <zajec5@gmail.com> -Cc: <linux-wireless@vger.kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/bcma/main.c | 23 ++++++++++++++++------- - 1 file changed, 16 insertions(+), 7 deletions(-) - ---- a/drivers/bcma/main.c -+++ b/drivers/bcma/main.c -@@ -30,28 +30,37 @@ static ssize_t manuf_show(struct device - struct bcma_device *core = container_of(dev, struct bcma_device, dev); - return sprintf(buf, "0x%03X\n", core->id.manuf); - } -+static DEVICE_ATTR_RO(manuf); -+ - static ssize_t id_show(struct device *dev, struct device_attribute *attr, char *buf) - { - struct bcma_device *core = container_of(dev, struct bcma_device, dev); - return sprintf(buf, "0x%03X\n", core->id.id); - } -+static DEVICE_ATTR_RO(id); -+ - static ssize_t rev_show(struct device *dev, struct device_attribute *attr, char *buf) - { - struct bcma_device *core = container_of(dev, struct bcma_device, dev); - return sprintf(buf, "0x%02X\n", core->id.rev); - } -+static DEVICE_ATTR_RO(rev); -+ - static ssize_t class_show(struct device *dev, struct device_attribute *attr, char *buf) - { - struct bcma_device *core = container_of(dev, struct bcma_device, dev); - return sprintf(buf, "0x%X\n", core->id.class); - } --static struct device_attribute bcma_device_attrs[] = { -- __ATTR_RO(manuf), -- __ATTR_RO(id), -- __ATTR_RO(rev), -- __ATTR_RO(class), -- __ATTR_NULL, -+static DEVICE_ATTR_RO(class); -+ -+static struct attribute *bcma_device_attrs[] = { -+ &dev_attr_manuf.attr, -+ &dev_attr_id.attr, -+ &dev_attr_rev.attr, -+ &dev_attr_class.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(bcma_device); - - static struct bus_type bcma_bus_type = { - .name = "bcma", -@@ -59,7 +68,7 @@ static struct bus_type bcma_bus_type = { - .probe = bcma_device_probe, - .remove = bcma_device_remove, - .uevent = bcma_device_uevent, -- .dev_attrs = bcma_device_attrs, -+ .dev_groups = bcma_device_groups, - }; - - static u16 bcma_cc_core_id(struct bcma_bus *bus) diff --git a/d01.patch b/d01.patch index 47df328d43517..08b009b0f5e72 100644 --- a/d01.patch +++ b/d01.patch @@ -12,7 +12,7 @@ --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c -@@ -1888,7 +1888,7 @@ struct hid_dynid { +@@ -1890,7 +1890,7 @@ struct hid_dynid { * Adds a new dynamic hid device ID to this driver, * and causes the driver to probe for all devices again. */ @@ -21,7 +21,7 @@ size_t count) { struct hid_driver *hdrv = container_of(drv, struct hid_driver, driver); -@@ -1920,7 +1920,13 @@ static ssize_t store_new_id(struct devic +@@ -1922,7 +1922,13 @@ static ssize_t store_new_id(struct devic return ret ? : count; } @@ -36,7 +36,7 @@ static void hid_free_dynids(struct hid_driver *hdrv) { -@@ -2080,6 +2086,7 @@ static int hid_uevent(struct device *dev +@@ -2082,6 +2088,7 @@ static int hid_uevent(struct device *dev static struct bus_type hid_bus_type = { .name = "hid", .dev_groups = hid_dev_groups, @@ -44,7 +44,7 @@ .match = hid_bus_match, .probe = hid_device_probe, .remove = hid_device_remove, -@@ -2526,8 +2533,6 @@ EXPORT_SYMBOL_GPL(hid_destroy_device); +@@ -2528,8 +2535,6 @@ EXPORT_SYMBOL_GPL(hid_destroy_device); int __hid_register_driver(struct hid_driver *hdrv, struct module *owner, const char *mod_name) { @@ -53,7 +53,7 @@ hdrv->driver.name = hdrv->name; hdrv->driver.bus = &hid_bus_type; hdrv->driver.owner = owner; -@@ -2536,21 +2541,12 @@ int __hid_register_driver(struct hid_dri +@@ -2538,21 +2543,12 @@ int __hid_register_driver(struct hid_dri INIT_LIST_HEAD(&hdrv->dyn_list); spin_lock_init(&hdrv->dyn_lock); diff --git a/driver-core-remove-dev_attrs-from-struct-class.patch b/driver-core-remove-dev_attrs-from-struct-class.patch deleted file mode 100644 index ad192d9cd1126..0000000000000 --- a/driver-core-remove-dev_attrs-from-struct-class.patch +++ /dev/null @@ -1,103 +0,0 @@ -From foo@baz Tue Jul 9 12:07:03 PDT 2013 -Date: Tue, 09 Jul 2013 12:07:03 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: driver core: remove dev_attrs from struct class - -Now that all in-kernel users of the dev_attrs field are converted to use -dev_groups, we can safely remove dev_attrs from struct class. - -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/base/core.c | 38 +------------------------------------- - include/linux/device.h | 2 -- - 2 files changed, 1 insertion(+), 39 deletions(-) - ---- a/drivers/base/core.c -+++ b/drivers/base/core.c -@@ -455,35 +455,6 @@ static ssize_t online_store(struct devic - } - static DEVICE_ATTR_RW(online); - --static int device_add_attributes(struct device *dev, -- struct device_attribute *attrs) --{ -- int error = 0; -- int i; -- -- if (attrs) { -- for (i = 0; attrs[i].attr.name; i++) { -- error = device_create_file(dev, &attrs[i]); -- if (error) -- break; -- } -- if (error) -- while (--i >= 0) -- device_remove_file(dev, &attrs[i]); -- } -- return error; --} -- --static void device_remove_attributes(struct device *dev, -- struct device_attribute *attrs) --{ -- int i; -- -- if (attrs) -- for (i = 0; attrs[i].attr.name; i++) -- device_remove_file(dev, &attrs[i]); --} -- - static int device_add_bin_attributes(struct device *dev, - struct bin_attribute *attrs) - { -@@ -534,12 +505,9 @@ static int device_add_attrs(struct devic - error = device_add_groups(dev, class->dev_groups); - if (error) - return error; -- error = device_add_attributes(dev, class->dev_attrs); -- if (error) -- goto err_remove_class_groups; - error = device_add_bin_attributes(dev, class->dev_bin_attrs); - if (error) -- goto err_remove_class_attrs; -+ goto err_remove_class_groups; - } - - if (type) { -@@ -566,9 +534,6 @@ static int device_add_attrs(struct devic - err_remove_class_bin_attrs: - if (class) - device_remove_bin_attributes(dev, class->dev_bin_attrs); -- err_remove_class_attrs: -- if (class) -- device_remove_attributes(dev, class->dev_attrs); - err_remove_class_groups: - if (class) - device_remove_groups(dev, class->dev_groups); -@@ -588,7 +553,6 @@ static void device_remove_attrs(struct d - device_remove_groups(dev, type->groups); - - if (class) { -- device_remove_attributes(dev, class->dev_attrs); - device_remove_bin_attributes(dev, class->dev_bin_attrs); - device_remove_groups(dev, class->dev_groups); - } ---- a/include/linux/device.h -+++ b/include/linux/device.h -@@ -325,7 +325,6 @@ int subsys_virtual_register(struct bus_t - * @owner: The module owner. - * @class_attrs: Default attributes of this class. - * @dev_groups: Default attributes of the devices that belong to the class. -- * @dev_attrs: Default attributes of the devices belong to the class. - * @dev_bin_attrs: Default binary attributes of the devices belong to the class. - * @dev_kobj: The kobject that represents this class and links it into the hierarchy. - * @dev_uevent: Called when a device is added, removed from this class, or a -@@ -354,7 +353,6 @@ struct class { - struct module *owner; - - struct class_attribute *class_attrs; -- struct device_attribute *dev_attrs; /* use dev_groups instead */ - const struct attribute_group **dev_groups; - struct bin_attribute *dev_bin_attrs; - struct kobject *dev_kobj; diff --git a/driver-core-remove-dev_bin_attrs-from-struct-class.patch b/driver-core-remove-dev_bin_attrs-from-struct-class.patch deleted file mode 100644 index 158a43b6f1a67..0000000000000 --- a/driver-core-remove-dev_bin_attrs-from-struct-class.patch +++ /dev/null @@ -1,112 +0,0 @@ -From foo@baz Wed Jul 10 12:18:18 PDT 2013 -Date: Wed, 10 Jul 2013 12:18:18 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: driver core: remove dev_bin_attrs from struct class - -No in-kernel code is now using this, they have all be converted over to -using the bin_attrs support in attribute groups, so this field, and the -code in the driver core that was creating/remove the binary files can be -removed. - -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/base/core.c | 41 ++--------------------------------------- - include/linux/device.h | 2 -- - 2 files changed, 2 insertions(+), 41 deletions(-) - ---- a/drivers/base/core.c -+++ b/drivers/base/core.c -@@ -455,35 +455,6 @@ static ssize_t online_store(struct devic - } - static DEVICE_ATTR_RW(online); - --static int device_add_bin_attributes(struct device *dev, -- struct bin_attribute *attrs) --{ -- int error = 0; -- int i; -- -- if (attrs) { -- for (i = 0; attrs[i].attr.name; i++) { -- error = device_create_bin_file(dev, &attrs[i]); -- if (error) -- break; -- } -- if (error) -- while (--i >= 0) -- device_remove_bin_file(dev, &attrs[i]); -- } -- return error; --} -- --static void device_remove_bin_attributes(struct device *dev, -- struct bin_attribute *attrs) --{ -- int i; -- -- if (attrs) -- for (i = 0; attrs[i].attr.name; i++) -- device_remove_bin_file(dev, &attrs[i]); --} -- - int device_add_groups(struct device *dev, const struct attribute_group **groups) - { - return sysfs_create_groups(&dev->kobj, groups); -@@ -505,15 +476,12 @@ static int device_add_attrs(struct devic - error = device_add_groups(dev, class->dev_groups); - if (error) - return error; -- error = device_add_bin_attributes(dev, class->dev_bin_attrs); -- if (error) -- goto err_remove_class_groups; - } - - if (type) { - error = device_add_groups(dev, type->groups); - if (error) -- goto err_remove_class_bin_attrs; -+ goto err_remove_class_groups; - } - - error = device_add_groups(dev, dev->groups); -@@ -531,9 +499,6 @@ static int device_add_attrs(struct devic - err_remove_type_groups: - if (type) - device_remove_groups(dev, type->groups); -- err_remove_class_bin_attrs: -- if (class) -- device_remove_bin_attributes(dev, class->dev_bin_attrs); - err_remove_class_groups: - if (class) - device_remove_groups(dev, class->dev_groups); -@@ -552,10 +517,8 @@ static void device_remove_attrs(struct d - if (type) - device_remove_groups(dev, type->groups); - -- if (class) { -- device_remove_bin_attributes(dev, class->dev_bin_attrs); -+ if (class) - device_remove_groups(dev, class->dev_groups); -- } - } - - static ssize_t dev_show(struct device *dev, struct device_attribute *attr, ---- a/include/linux/device.h -+++ b/include/linux/device.h -@@ -325,7 +325,6 @@ int subsys_virtual_register(struct bus_t - * @owner: The module owner. - * @class_attrs: Default attributes of this class. - * @dev_groups: Default attributes of the devices that belong to the class. -- * @dev_bin_attrs: Default binary attributes of the devices belong to the class. - * @dev_kobj: The kobject that represents this class and links it into the hierarchy. - * @dev_uevent: Called when a device is added, removed from this class, or a - * few other things that generate uevents to add the environment -@@ -354,7 +353,6 @@ struct class { - - struct class_attribute *class_attrs; - const struct attribute_group **dev_groups; -- struct bin_attribute *dev_bin_attrs; - struct kobject *dev_kobj; - - int (*dev_uevent)(struct device *dev, struct kobj_uevent_env *env); diff --git a/driver-core-remove-struct-bus_type.bus_attrs.patch b/driver-core-remove-struct-bus_type.bus_attrs.patch deleted file mode 100644 index e764541e2d4fc..0000000000000 --- a/driver-core-remove-struct-bus_type.bus_attrs.patch +++ /dev/null @@ -1,107 +0,0 @@ -From foo@baz Fri Aug 23 13:10:49 PDT 2013 -Date: Fri, 23 Aug 2013 13:10:49 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: driver-core: remove struct bus_type.bus_attrs - -Now that all in-kernel users of bus_type.bus_attrs have been converted -to use bus_groups instead, the bus_attrs field, and logic surrounding -it, can be removed. - -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/base/bus.c | 42 ------------------------------------------ - include/linux/device.h | 2 -- - 2 files changed, 44 deletions(-) - ---- a/drivers/base/bus.c -+++ b/drivers/base/bus.c -@@ -846,42 +846,6 @@ struct bus_type *find_bus(char *name) - } - #endif /* 0 */ - -- --/** -- * bus_add_attrs - Add default attributes for this bus. -- * @bus: Bus that has just been registered. -- */ -- --static int bus_add_attrs(struct bus_type *bus) --{ -- int error = 0; -- int i; -- -- if (bus->bus_attrs) { -- for (i = 0; bus->bus_attrs[i].attr.name; i++) { -- error = bus_create_file(bus, &bus->bus_attrs[i]); -- if (error) -- goto err; -- } -- } --done: -- return error; --err: -- while (--i >= 0) -- bus_remove_file(bus, &bus->bus_attrs[i]); -- goto done; --} -- --static void bus_remove_attrs(struct bus_type *bus) --{ -- int i; -- -- if (bus->bus_attrs) { -- for (i = 0; bus->bus_attrs[i].attr.name; i++) -- bus_remove_file(bus, &bus->bus_attrs[i]); -- } --} -- - static int bus_add_groups(struct bus_type *bus, - const struct attribute_group **groups) - { -@@ -983,9 +947,6 @@ int bus_register(struct bus_type *bus) - if (retval) - goto bus_probe_files_fail; - -- retval = bus_add_attrs(bus); -- if (retval) -- goto bus_attrs_fail; - retval = bus_add_groups(bus, bus->bus_groups); - if (retval) - goto bus_groups_fail; -@@ -994,8 +955,6 @@ int bus_register(struct bus_type *bus) - return 0; - - bus_groups_fail: -- bus_remove_attrs(bus); --bus_attrs_fail: - remove_probe_files(bus); - bus_probe_files_fail: - kset_unregister(bus->p->drivers_kset); -@@ -1024,7 +983,6 @@ void bus_unregister(struct bus_type *bus - pr_debug("bus: '%s': unregistering\n", bus->name); - if (bus->dev_root) - device_unregister(bus->dev_root); -- bus_remove_attrs(bus); - bus_remove_groups(bus, bus->bus_groups); - remove_probe_files(bus); - kset_unregister(bus->p->drivers_kset); ---- a/include/linux/device.h -+++ b/include/linux/device.h -@@ -63,7 +63,6 @@ extern void bus_remove_file(struct bus_t - * @name: The name of the bus. - * @dev_name: Used for subsystems to enumerate devices like ("foo%u", dev->id). - * @dev_root: Default device to use as the parent. -- * @bus_attrs: Default attributes of the bus. - * @dev_attrs: Default attributes of the devices on the bus. - * @drv_attrs: Default attributes of the device drivers on the bus. - * @bus_groups: Default attributes of the bus. -@@ -106,7 +105,6 @@ struct bus_type { - const char *name; - const char *dev_name; - struct device *dev_root; -- struct bus_attribute *bus_attrs; /* use bus_groups instead */ - struct device_attribute *dev_attrs; /* use dev_groups instead */ - struct driver_attribute *drv_attrs; /* use drv_groups instead */ - const struct attribute_group **bus_groups; diff --git a/driver-core-remove-struct-bus_type.dev_attrs.patch b/driver-core-remove-struct-bus_type.dev_attrs.patch index 24c22f7abb962..f98852c60b9f9 100644 --- a/driver-core-remove-struct-bus_type.dev_attrs.patch +++ b/driver-core-remove-struct-bus_type.dev_attrs.patch @@ -90,7 +90,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> klist_del(&dev->p->knode_bus); --- a/include/linux/device.h +++ b/include/linux/device.h -@@ -63,7 +63,6 @@ extern void bus_remove_file(struct bus_t +@@ -64,7 +64,6 @@ extern void bus_remove_file(struct bus_t * @name: The name of the bus. * @dev_name: Used for subsystems to enumerate devices like ("foo%u", dev->id). * @dev_root: Default device to use as the parent. @@ -98,7 +98,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> * @bus_groups: Default attributes of the bus. * @dev_groups: Default attributes of the devices on the bus. * @drv_groups: Default attributes of the device drivers on the bus. -@@ -104,7 +103,6 @@ struct bus_type { +@@ -105,7 +104,6 @@ struct bus_type { const char *name; const char *dev_name; struct device *dev_root; diff --git a/driver-core-remove-struct-bus_type.drv_attrs.patch b/driver-core-remove-struct-bus_type.drv_attrs.patch deleted file mode 100644 index f94737369f24d..0000000000000 --- a/driver-core-remove-struct-bus_type.drv_attrs.patch +++ /dev/null @@ -1,101 +0,0 @@ -From foo@baz Fri Aug 23 13:27:50 PDT 2013 -Date: Fri, 23 Aug 2013 13:27:50 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: driver-core: remove struct bus_type.drv_attrs - -Now that all in-kernel users of bus_type.drv_attrs have been converted -to use drv_groups instead, the drv_attrs field, and logic surrounding -it, can be removed. - -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/base/bus.c | 40 ++-------------------------------------- - include/linux/device.h | 2 -- - 2 files changed, 2 insertions(+), 40 deletions(-) - ---- a/drivers/base/bus.c -+++ b/drivers/base/bus.c -@@ -591,37 +591,6 @@ void bus_remove_device(struct device *de - bus_put(dev->bus); - } - --static int driver_add_attrs(struct bus_type *bus, struct device_driver *drv) --{ -- int error = 0; -- int i; -- -- if (bus->drv_attrs) { -- for (i = 0; bus->drv_attrs[i].attr.name; i++) { -- error = driver_create_file(drv, &bus->drv_attrs[i]); -- if (error) -- goto err; -- } -- } --done: -- return error; --err: -- while (--i >= 0) -- driver_remove_file(drv, &bus->drv_attrs[i]); -- goto done; --} -- --static void driver_remove_attrs(struct bus_type *bus, -- struct device_driver *drv) --{ -- int i; -- -- if (bus->drv_attrs) { -- for (i = 0; bus->drv_attrs[i].attr.name; i++) -- driver_remove_file(drv, &bus->drv_attrs[i]); -- } --} -- - static int __must_check add_bind_files(struct device_driver *drv) - { - int ret; -@@ -720,16 +689,12 @@ int bus_add_driver(struct device_driver - printk(KERN_ERR "%s: uevent attr (%s) failed\n", - __func__, drv->name); - } -- error = driver_add_attrs(bus, drv); -+ error = driver_add_groups(drv, bus->drv_groups); - if (error) { - /* How the hell do we get out of this pickle? Give up */ -- printk(KERN_ERR "%s: driver_add_attrs(%s) failed\n", -- __func__, drv->name); -- } -- error = driver_add_groups(drv, bus->drv_groups); -- if (error) - printk(KERN_ERR "%s: driver_create_groups(%s) failed\n", - __func__, drv->name); -+ } - - if (!drv->suppress_bind_attrs) { - error = add_bind_files(drv); -@@ -766,7 +731,6 @@ void bus_remove_driver(struct device_dri - - if (!drv->suppress_bind_attrs) - remove_bind_files(drv); -- driver_remove_attrs(drv->bus, drv); - driver_remove_groups(drv, drv->bus->drv_groups); - driver_remove_file(drv, &driver_attr_uevent); - klist_remove(&drv->p->knode_bus); ---- a/include/linux/device.h -+++ b/include/linux/device.h -@@ -64,7 +64,6 @@ extern void bus_remove_file(struct bus_t - * @dev_name: Used for subsystems to enumerate devices like ("foo%u", dev->id). - * @dev_root: Default device to use as the parent. - * @dev_attrs: Default attributes of the devices on the bus. -- * @drv_attrs: Default attributes of the device drivers on the bus. - * @bus_groups: Default attributes of the bus. - * @dev_groups: Default attributes of the devices on the bus. - * @drv_groups: Default attributes of the device drivers on the bus. -@@ -106,7 +105,6 @@ struct bus_type { - const char *dev_name; - struct device *dev_root; - struct device_attribute *dev_attrs; /* use dev_groups instead */ -- struct driver_attribute *drv_attrs; /* use drv_groups instead */ - const struct attribute_group **bus_groups; - const struct attribute_group **dev_groups; - const struct attribute_group **drv_groups; diff --git a/hsi-convert-bus-code-to-use-dev_groups.patch b/hsi-convert-bus-code-to-use-dev_groups.patch deleted file mode 100644 index 5723c2eabd296..0000000000000 --- a/hsi-convert-bus-code-to-use-dev_groups.patch +++ /dev/null @@ -1,46 +0,0 @@ -From foo@baz Sun Oct 6 23:44:02 PDT 2013 -Date: Sun, 06 Oct 2013 23:44:02 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: hsi: convert bus code to use dev_groups - -The dev_attrs field of struct bus_type is going away soon, dev_groups -should be used instead. This converts the hsi code to use the -correct field. - -Cc: Andrew Morton <akpm@linux-foundation.org> -Cc: Kees Cook <keescook@chromium.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/hsi/hsi.c | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - ---- a/drivers/hsi/hsi.c -+++ b/drivers/hsi/hsi.c -@@ -33,11 +33,13 @@ static ssize_t modalias_show(struct devi - { - return sprintf(buf, "hsi:%s\n", dev_name(dev)); - } -+static DEVICE_ATTR_RO(modalias); - --static struct device_attribute hsi_bus_dev_attrs[] = { -- __ATTR_RO(modalias), -- __ATTR_NULL, -+static struct attribute *hsi_bus_dev_attrs[] = { -+ &dev_attr_modalias.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(hsi_bus_dev); - - static int hsi_bus_uevent(struct device *dev, struct kobj_uevent_env *env) - { -@@ -53,7 +55,7 @@ static int hsi_bus_match(struct device * - - static struct bus_type hsi_bus_type = { - .name = "hsi", -- .dev_attrs = hsi_bus_dev_attrs, -+ .dev_groups = hsi_bus_dev_groups, - .match = hsi_bus_match, - .uevent = hsi_bus_uevent, - }; diff --git a/hv-delete-struct-hv_dev_port_info.patch b/hv-delete-struct-hv_dev_port_info.patch deleted file mode 100644 index 0a728ffbcecd1..0000000000000 --- a/hv-delete-struct-hv_dev_port_info.patch +++ /dev/null @@ -1,140 +0,0 @@ -From foo@baz Fri Sep 13 10:12:54 PDT 2013 -Date: Fri, 13 Sep 2013 10:12:54 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: hv: delete struct hv_dev_port_info - -It's no longer needed, and the struct hv_ring_buffer_debug_info -structure shouldn't be "global" so move it to the local .h file instead. - - -Cc: "K. Y. Srinivasan" <kys@microsoft.com> -Cc: Haiyang Zhang <haiyangz@microsoft.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hv/hyperv_vmbus.h | 7 +++++++ - drivers/hv/vmbus_drv.c | 35 ++++++++++------------------------- - include/linux/hyperv.h | 17 ----------------- - 3 files changed, 17 insertions(+), 42 deletions(-) - ---- a/drivers/hv/hyperv_vmbus.h -+++ b/drivers/hv/hyperv_vmbus.h -@@ -514,6 +514,13 @@ struct hv_context { - - extern struct hv_context hv_context; - -+struct hv_ring_buffer_debug_info { -+ u32 current_interrupt_mask; -+ u32 current_read_index; -+ u32 current_write_index; -+ u32 bytes_avail_toread; -+ u32 bytes_avail_towrite; -+}; - - /* Hv Interface */ - ---- a/drivers/hv/vmbus_drv.c -+++ b/drivers/hv/vmbus_drv.c -@@ -47,8 +47,8 @@ static struct completion probe_event; - static int irq; - - struct hv_device_info { -- struct hv_dev_port_info inbound; -- struct hv_dev_port_info outbound; -+ struct hv_ring_buffer_debug_info inbound; -+ struct hv_ring_buffer_debug_info outbound; - }; - - static int vmbus_exists(void) -@@ -63,26 +63,11 @@ static int vmbus_exists(void) - static void get_channel_info(struct hv_device *device, - struct hv_device_info *info) - { -- struct hv_ring_buffer_debug_info inbound; -- struct hv_ring_buffer_debug_info outbound; -- - if (!device->channel) - return; - -- hv_ringbuffer_get_debuginfo(&device->channel->inbound, &inbound); -- hv_ringbuffer_get_debuginfo(&device->channel->outbound, &outbound); -- -- info->inbound.int_mask = inbound.current_interrupt_mask; -- info->inbound.read_idx = inbound.current_read_index; -- info->inbound.write_idx = inbound.current_write_index; -- info->inbound.bytes_avail_toread = inbound.bytes_avail_toread; -- info->inbound.bytes_avail_towrite = inbound.bytes_avail_towrite; -- -- info->outbound.int_mask = outbound.current_interrupt_mask; -- info->outbound.read_idx = outbound.current_read_index; -- info->outbound.write_idx = outbound.current_write_index; -- info->outbound.bytes_avail_toread = outbound.bytes_avail_toread; -- info->outbound.bytes_avail_towrite = outbound.bytes_avail_towrite; -+ hv_ringbuffer_get_debuginfo(&device->channel->inbound, &info->inbound); -+ hv_ringbuffer_get_debuginfo(&device->channel->outbound, &info->outbound); - } - - #define VMBUS_ALIAS_LEN ((sizeof((struct hv_vmbus_device_id *)0)->guid) * 2) -@@ -114,11 +99,11 @@ static ssize_t vmbus_show_device_attr(st - get_channel_info(hv_dev, device_info); - - if (!strcmp(dev_attr->attr.name, "out_intr_mask")) { -- ret = sprintf(buf, "%d\n", device_info->outbound.int_mask); -+ ret = sprintf(buf, "%d\n", device_info->outbound.current_interrupt_mask); - } else if (!strcmp(dev_attr->attr.name, "out_read_index")) { -- ret = sprintf(buf, "%d\n", device_info->outbound.read_idx); -+ ret = sprintf(buf, "%d\n", device_info->outbound.current_read_index); - } else if (!strcmp(dev_attr->attr.name, "out_write_index")) { -- ret = sprintf(buf, "%d\n", device_info->outbound.write_idx); -+ ret = sprintf(buf, "%d\n", device_info->outbound.current_write_index); - } else if (!strcmp(dev_attr->attr.name, "out_read_bytes_avail")) { - ret = sprintf(buf, "%d\n", - device_info->outbound.bytes_avail_toread); -@@ -126,11 +111,11 @@ static ssize_t vmbus_show_device_attr(st - ret = sprintf(buf, "%d\n", - device_info->outbound.bytes_avail_towrite); - } else if (!strcmp(dev_attr->attr.name, "in_intr_mask")) { -- ret = sprintf(buf, "%d\n", device_info->inbound.int_mask); -+ ret = sprintf(buf, "%d\n", device_info->inbound.current_interrupt_mask); - } else if (!strcmp(dev_attr->attr.name, "in_read_index")) { -- ret = sprintf(buf, "%d\n", device_info->inbound.read_idx); -+ ret = sprintf(buf, "%d\n", device_info->inbound.current_read_index); - } else if (!strcmp(dev_attr->attr.name, "in_write_index")) { -- ret = sprintf(buf, "%d\n", device_info->inbound.write_idx); -+ ret = sprintf(buf, "%d\n", device_info->inbound.current_write_index); - } else if (!strcmp(dev_attr->attr.name, "in_read_bytes_avail")) { - ret = sprintf(buf, "%d\n", - device_info->inbound.bytes_avail_toread); ---- a/include/linux/hyperv.h -+++ b/include/linux/hyperv.h -@@ -432,15 +432,6 @@ struct hv_ring_buffer_info { - u32 ring_data_startoffset; - }; - --struct hv_ring_buffer_debug_info { -- u32 current_interrupt_mask; -- u32 current_read_index; -- u32 current_write_index; -- u32 bytes_avail_toread; -- u32 bytes_avail_towrite; --}; -- -- - /* - * - * hv_get_ringbuffer_availbytes() -@@ -1169,14 +1160,6 @@ extern int vmbus_recvpacket_raw(struct v - - extern void vmbus_ontimer(unsigned long data); - --struct hv_dev_port_info { -- u32 int_mask; -- u32 read_idx; -- u32 write_idx; -- u32 bytes_avail_toread; -- u32 bytes_avail_towrite; --}; -- - /* Base driver object */ - struct hv_driver { - const char *name; diff --git a/hv-delete-vmbus_get_debug_info.patch b/hv-delete-vmbus_get_debug_info.patch deleted file mode 100644 index 1cf47adaa2fff..0000000000000 --- a/hv-delete-vmbus_get_debug_info.patch +++ /dev/null @@ -1,108 +0,0 @@ -From foo@baz Fri Sep 13 10:12:49 PDT 2013 -Date: Fri, 13 Sep 2013 10:12:49 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: hv: delete vmbus_get_debug_info() - -It's only used once, only contains 2 function calls, so just make those -calls directly, deleting the function, and the now unneeded structure -entirely. - -Cc: "K. Y. Srinivasan" <kys@microsoft.com> -Cc: Haiyang Zhang <haiyangz@microsoft.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hv/channel.c | 10 ---------- - drivers/hv/vmbus_drv.c | 31 ++++++++++++++----------------- - include/linux/hyperv.h | 8 -------- - 3 files changed, 14 insertions(+), 35 deletions(-) - ---- a/drivers/hv/channel.c -+++ b/drivers/hv/channel.c -@@ -60,16 +60,6 @@ static void vmbus_setevent(struct vmbus_ - } - - /* -- * vmbus_get_debug_info -Retrieve various channel debug info -- */ --void vmbus_get_debug_info(struct vmbus_channel *channel, -- struct vmbus_channel_debug_info *debuginfo) --{ -- hv_ringbuffer_get_debuginfo(&channel->inbound, &debuginfo->inbound); -- hv_ringbuffer_get_debuginfo(&channel->outbound, &debuginfo->outbound); --} -- --/* - * vmbus_open - Open the specified channel. - */ - int vmbus_open(struct vmbus_channel *newchannel, u32 send_ringbuffer_size, ---- a/drivers/hv/vmbus_drv.c -+++ b/drivers/hv/vmbus_drv.c -@@ -63,29 +63,26 @@ static int vmbus_exists(void) - static void get_channel_info(struct hv_device *device, - struct hv_device_info *info) - { -- struct vmbus_channel_debug_info debug_info; -+ struct hv_ring_buffer_debug_info inbound; -+ struct hv_ring_buffer_debug_info outbound; - - if (!device->channel) - return; - -- vmbus_get_debug_info(device->channel, &debug_info); -+ hv_ringbuffer_get_debuginfo(&device->channel->inbound, &inbound); -+ hv_ringbuffer_get_debuginfo(&device->channel->outbound, &outbound); - -- info->inbound.int_mask = debug_info.inbound.current_interrupt_mask; -- info->inbound.read_idx = debug_info.inbound.current_read_index; -- info->inbound.write_idx = debug_info.inbound.current_write_index; -- info->inbound.bytes_avail_toread = -- debug_info.inbound.bytes_avail_toread; -- info->inbound.bytes_avail_towrite = -- debug_info.inbound.bytes_avail_towrite; -+ info->inbound.int_mask = inbound.current_interrupt_mask; -+ info->inbound.read_idx = inbound.current_read_index; -+ info->inbound.write_idx = inbound.current_write_index; -+ info->inbound.bytes_avail_toread = inbound.bytes_avail_toread; -+ info->inbound.bytes_avail_towrite = inbound.bytes_avail_towrite; - -- info->outbound.int_mask = -- debug_info.outbound.current_interrupt_mask; -- info->outbound.read_idx = debug_info.outbound.current_read_index; -- info->outbound.write_idx = debug_info.outbound.current_write_index; -- info->outbound.bytes_avail_toread = -- debug_info.outbound.bytes_avail_toread; -- info->outbound.bytes_avail_towrite = -- debug_info.outbound.bytes_avail_towrite; -+ info->outbound.int_mask = outbound.current_interrupt_mask; -+ info->outbound.read_idx = outbound.current_read_index; -+ info->outbound.write_idx = outbound.current_write_index; -+ info->outbound.bytes_avail_toread = outbound.bytes_avail_toread; -+ info->outbound.bytes_avail_towrite = outbound.bytes_avail_towrite; - } - - #define VMBUS_ALIAS_LEN ((sizeof((struct hv_vmbus_device_id *)0)->guid) * 2) ---- a/include/linux/hyperv.h -+++ b/include/linux/hyperv.h -@@ -902,11 +902,6 @@ enum vmbus_channel_state { - CHANNEL_OPENED_STATE, - }; - --struct vmbus_channel_debug_info { -- struct hv_ring_buffer_debug_info inbound; -- struct hv_ring_buffer_debug_info outbound; --}; -- - /* - * Represents each channel msg on the vmbus connection This is a - * variable-size data structure depending on the msg type itself -@@ -1172,9 +1167,6 @@ extern int vmbus_recvpacket_raw(struct v - u64 *requestid); - - --extern void vmbus_get_debug_info(struct vmbus_channel *channel, -- struct vmbus_channel_debug_info *debug); -- - extern void vmbus_ontimer(unsigned long data); - - struct hv_dev_port_info { diff --git a/hv-make-monitor_pages-a-real-pointer-array.patch b/hv-make-monitor_pages-a-real-pointer-array.patch deleted file mode 100644 index 5bac79530350b..0000000000000 --- a/hv-make-monitor_pages-a-real-pointer-array.patch +++ /dev/null @@ -1,108 +0,0 @@ -From foo@baz Mon Sep 9 14:36:31 PDT 2013 -Date: Mon, 09 Sep 2013 14:36:31 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: hv: make "monitor_pages" a "real" pointer array - -monitor_pages was a void pointer, containing an unknown number of arrays that -we just "knew" were a child and parent array of a specific size. Instead of -that implicit knowledge, let's make them a real pointer, allowing us to have -type safety, and a semblance of sane addressing schemes. - -Cc: "K. Y. Srinivasan" <kys@microsoft.com> -Cc: Haiyang Zhang <haiyangz@microsoft.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hv/channel.c | 10 ++++------ - drivers/hv/connection.c | 21 ++++++++++----------- - drivers/hv/hyperv_vmbus.h | 2 +- - 3 files changed, 15 insertions(+), 18 deletions(-) - ---- a/drivers/hv/channel.c -+++ b/drivers/hv/channel.c -@@ -47,8 +47,8 @@ static void vmbus_setevent(struct vmbus_ - (unsigned long *) vmbus_connection.send_int_page + - (channel->offermsg.child_relid >> 5)); - -- monitorpage = vmbus_connection.monitor_pages; -- monitorpage++; /* Get the child to parent monitor page */ -+ /* Get the child to parent monitor page */ -+ monitorpage = vmbus_connection.monitor_pages[1]; - - sync_set_bit(channel->monitor_bit, - (unsigned long *)&monitorpage->trigger_group -@@ -69,8 +69,7 @@ void vmbus_get_debug_info(struct vmbus_c - u8 monitor_group = (u8)channel->offermsg.monitorid / 32; - u8 monitor_offset = (u8)channel->offermsg.monitorid % 32; - -- monitorpage = (struct hv_monitor_page *)vmbus_connection.monitor_pages; -- -+ monitorpage = vmbus_connection.monitor_pages[0]; - debuginfo->servermonitor_pending = - monitorpage->trigger_group[monitor_group].pending; - debuginfo->servermonitor_latency = -@@ -79,8 +78,7 @@ void vmbus_get_debug_info(struct vmbus_c - monitorpage->parameter[monitor_group] - [monitor_offset].connectionid.u.id; - -- monitorpage++; -- -+ monitorpage = vmbus_connection.monitor_pages[1]; - debuginfo->clientmonitor_pending = - monitorpage->trigger_group[monitor_group].pending; - debuginfo->clientmonitor_latency = ---- a/drivers/hv/connection.c -+++ b/drivers/hv/connection.c -@@ -76,10 +76,8 @@ static int vmbus_negotiate_version(struc - msg->header.msgtype = CHANNELMSG_INITIATE_CONTACT; - msg->vmbus_version_requested = version; - msg->interrupt_page = virt_to_phys(vmbus_connection.int_page); -- msg->monitor_page1 = virt_to_phys(vmbus_connection.monitor_pages); -- msg->monitor_page2 = virt_to_phys( -- (void *)((unsigned long)vmbus_connection.monitor_pages + -- PAGE_SIZE)); -+ msg->monitor_page1 = virt_to_phys(vmbus_connection.monitor_pages[0]); -+ msg->monitor_page2 = virt_to_phys(vmbus_connection.monitor_pages[1]); - - /* - * Add to list before we send the request since we may -@@ -169,9 +167,10 @@ int vmbus_connect(void) - * Setup the monitor notification facility. The 1st page for - * parent->child and the 2nd page for child->parent - */ -- vmbus_connection.monitor_pages = -- (void *)__get_free_pages((GFP_KERNEL|__GFP_ZERO), 1); -- if (vmbus_connection.monitor_pages == NULL) { -+ vmbus_connection.monitor_pages[0] = (void *)__get_free_pages((GFP_KERNEL|__GFP_ZERO), 0); -+ vmbus_connection.monitor_pages[1] = (void *)__get_free_pages((GFP_KERNEL|__GFP_ZERO), 0); -+ if ((vmbus_connection.monitor_pages[0] == NULL) || -+ (vmbus_connection.monitor_pages[1] == NULL)) { - ret = -ENOMEM; - goto cleanup; - } -@@ -229,10 +228,10 @@ cleanup: - vmbus_connection.int_page = NULL; - } - -- if (vmbus_connection.monitor_pages) { -- free_pages((unsigned long)vmbus_connection.monitor_pages, 1); -- vmbus_connection.monitor_pages = NULL; -- } -+ free_pages((unsigned long)vmbus_connection.monitor_pages[0], 1); -+ free_pages((unsigned long)vmbus_connection.monitor_pages[1], 1); -+ vmbus_connection.monitor_pages[0] = NULL; -+ vmbus_connection.monitor_pages[1] = NULL; - - kfree(msginfo); - ---- a/drivers/hv/hyperv_vmbus.h -+++ b/drivers/hv/hyperv_vmbus.h -@@ -612,7 +612,7 @@ struct vmbus_connection { - * 2 pages - 1st page for parent->child notification and 2nd - * is child->parent notification - */ -- void *monitor_pages; -+ struct hv_monitor_page *monitor_pages[2]; - struct list_head chn_msg_list; - spinlock_t channelmsg_lock; - diff --git a/hv-move-class_id-bus-attribute-to-dev_groups.patch b/hv-move-class_id-bus-attribute-to-dev_groups.patch deleted file mode 100644 index bb37fc3a6c341..0000000000000 --- a/hv-move-class_id-bus-attribute-to-dev_groups.patch +++ /dev/null @@ -1,109 +0,0 @@ -From foo@baz Mon Sep 9 14:35:13 PDT 2013 -Date: Mon, 09 Sep 2013 14:35:13 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: hv: move "class_id" bus attribute to dev_groups - -This moves the "class_id" bus attribute to the dev_groups structure, -removing the need for it to be in a temporary structure. - -Cc: "K. Y. Srinivasan" <kys@microsoft.com> -Cc: Haiyang Zhang <haiyangz@microsoft.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hv/channel.c | 2 -- - drivers/hv/vmbus_drv.c | 22 +++++++++++++++------- - include/linux/hyperv.h | 1 - - 3 files changed, 15 insertions(+), 10 deletions(-) - ---- a/drivers/hv/channel.c -+++ b/drivers/hv/channel.c -@@ -69,8 +69,6 @@ void vmbus_get_debug_info(struct vmbus_c - u8 monitor_group = (u8)channel->offermsg.monitorid / 32; - u8 monitor_offset = (u8)channel->offermsg.monitorid % 32; - -- memcpy(&debuginfo->interfacetype, -- &channel->offermsg.offer.if_type, sizeof(uuid_le)); - memcpy(&debuginfo->interface_instance, - &channel->offermsg.offer.if_instance, - sizeof(uuid_le)); ---- a/drivers/hv/vmbus_drv.c -+++ b/drivers/hv/vmbus_drv.c -@@ -47,7 +47,6 @@ static struct completion probe_event; - static int irq; - - struct hv_device_info { -- uuid_le chn_type; - uuid_le chn_instance; - - u32 server_monitor_pending; -@@ -80,8 +79,6 @@ static void get_channel_info(struct hv_d - - vmbus_get_debug_info(device->channel, &debug_info); - -- memcpy(&info->chn_type, &debug_info.interfacetype, -- sizeof(uuid_le)); - memcpy(&info->chn_instance, &debug_info.interface_instance, - sizeof(uuid_le)); - -@@ -139,9 +136,7 @@ static ssize_t vmbus_show_device_attr(st - - get_channel_info(hv_dev, device_info); - -- if (!strcmp(dev_attr->attr.name, "class_id")) { -- ret = sprintf(buf, "{%pUl}\n", device_info->chn_type.b); -- } else if (!strcmp(dev_attr->attr.name, "device_id")) { -+ if (!strcmp(dev_attr->attr.name, "device_id")) { - ret = sprintf(buf, "{%pUl}\n", device_info->chn_instance.b); - } else if (!strcmp(dev_attr->attr.name, "out_intr_mask")) { - ret = sprintf(buf, "%d\n", device_info->outbound.int_mask); -@@ -220,6 +215,18 @@ static ssize_t monitor_id_show(struct de - } - static DEVICE_ATTR_RO(monitor_id); - -+static ssize_t class_id_show(struct device *dev, -+ struct device_attribute *dev_attr, char *buf) -+{ -+ struct hv_device *hv_dev = device_to_hv_device(dev); -+ -+ if (!hv_dev->channel) -+ return -ENODEV; -+ return sprintf(buf, "{%pUl}\n", -+ hv_dev->channel->offermsg.offer.if_type.b); -+} -+static DEVICE_ATTR_RO(class_id); -+ - static ssize_t modalias_show(struct device *dev, - struct device_attribute *dev_attr, char *buf) - { -@@ -231,10 +238,12 @@ static ssize_t modalias_show(struct devi - } - static DEVICE_ATTR_RO(modalias); - -+ - static struct attribute *vmbus_attrs[] = { - &dev_attr_id.attr, - &dev_attr_state.attr, - &dev_attr_monitor_id.attr, -+ &dev_attr_class_id.attr, - &dev_attr_modalias.attr, - NULL, - }; -@@ -242,7 +251,6 @@ ATTRIBUTE_GROUPS(vmbus); - - /* Set up per device attributes in /sys/bus/vmbus/devices/<bus device> */ - static struct device_attribute vmbus_device_attrs[] = { -- __ATTR(class_id, S_IRUGO, vmbus_show_device_attr, NULL), - __ATTR(device_id, S_IRUGO, vmbus_show_device_attr, NULL), - - __ATTR(server_monitor_pending, S_IRUGO, vmbus_show_device_attr, NULL), ---- a/include/linux/hyperv.h -+++ b/include/linux/hyperv.h -@@ -903,7 +903,6 @@ enum vmbus_channel_state { - }; - - struct vmbus_channel_debug_info { -- uuid_le interfacetype; - uuid_le interface_instance; - u32 servermonitor_pending; - u32 servermonitor_latency; diff --git a/hv-move-client-server_monitor_conn_id-bus-attributes-to-dev_groups.patch b/hv-move-client-server_monitor_conn_id-bus-attributes-to-dev_groups.patch deleted file mode 100644 index d23b3229bcb89..0000000000000 --- a/hv-move-client-server_monitor_conn_id-bus-attributes-to-dev_groups.patch +++ /dev/null @@ -1,159 +0,0 @@ -From foo@baz Fri Sep 13 10:12:42 PDT 2013 -Date: Fri, 13 Sep 2013 10:12:42 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: hv: move "client/server_monitor_conn_id" bus attributes to dev_groups - -This moves the "client_monitor_conn_id" and "server_monitor_conn_id" bus -attributes to the dev_groups structure, removing the need for it to be -in a temporary structure. - -Cc: "K. Y. Srinivasan" <kys@microsoft.com> -Cc: Haiyang Zhang <haiyangz@microsoft.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hv/channel.c | 14 ------------ - drivers/hv/vmbus_drv.c | 55 +++++++++++++++++++++++++++++++++---------------- - include/linux/hyperv.h | 3 -- - 3 files changed, 38 insertions(+), 34 deletions(-) - ---- a/drivers/hv/channel.c -+++ b/drivers/hv/channel.c -@@ -65,20 +65,6 @@ static void vmbus_setevent(struct vmbus_ - void vmbus_get_debug_info(struct vmbus_channel *channel, - struct vmbus_channel_debug_info *debuginfo) - { -- struct hv_monitor_page *monitorpage; -- u8 monitor_group = (u8)channel->offermsg.monitorid / 32; -- u8 monitor_offset = (u8)channel->offermsg.monitorid % 32; -- -- monitorpage = vmbus_connection.monitor_pages[0]; -- debuginfo->servermonitor_connectionid = -- monitorpage->parameter[monitor_group] -- [monitor_offset].connectionid.u.id; -- -- monitorpage = vmbus_connection.monitor_pages[1]; -- debuginfo->clientmonitor_connectionid = -- monitorpage->parameter[monitor_group] -- [monitor_offset].connectionid.u.id; -- - hv_ringbuffer_get_debuginfo(&channel->inbound, &debuginfo->inbound); - hv_ringbuffer_get_debuginfo(&channel->outbound, &debuginfo->outbound); - } ---- a/drivers/hv/vmbus_drv.c -+++ b/drivers/hv/vmbus_drv.c -@@ -47,9 +47,6 @@ static struct completion probe_event; - static int irq; - - struct hv_device_info { -- u32 server_monitor_conn_id; -- u32 client_monitor_conn_id; -- - struct hv_dev_port_info inbound; - struct hv_dev_port_info outbound; - }; -@@ -73,10 +70,6 @@ static void get_channel_info(struct hv_d - - vmbus_get_debug_info(device->channel, &debug_info); - -- info->server_monitor_conn_id = debug_info.servermonitor_connectionid; -- -- info->client_monitor_conn_id = debug_info.clientmonitor_connectionid; -- - info->inbound.int_mask = debug_info.inbound.current_interrupt_mask; - info->inbound.read_idx = debug_info.inbound.current_read_index; - info->inbound.write_idx = debug_info.inbound.current_write_index; -@@ -147,12 +140,6 @@ static ssize_t vmbus_show_device_attr(st - } else if (!strcmp(dev_attr->attr.name, "in_write_bytes_avail")) { - ret = sprintf(buf, "%d\n", - device_info->inbound.bytes_avail_towrite); -- } else if (!strcmp(dev_attr->attr.name, "server_monitor_conn_id")) { -- ret = sprintf(buf, "%d\n", -- device_info->server_monitor_conn_id); -- } else if (!strcmp(dev_attr->attr.name, "client_monitor_conn_id")) { -- ret = sprintf(buf, "%d\n", -- device_info->client_monitor_conn_id); - } - - kfree(device_info); -@@ -184,6 +171,14 @@ static u32 channel_latency(struct vmbus_ - return monitor_page->latency[monitor_group][monitor_offset]; - } - -+static u32 channel_conn_id(struct vmbus_channel *channel, -+ struct hv_monitor_page *monitor_page) -+{ -+ u8 monitor_group = channel_monitor_group(channel); -+ u8 monitor_offset = channel_monitor_offset(channel); -+ return monitor_page->parameter[monitor_group][monitor_offset].connectionid.u.id; -+} -+ - static ssize_t id_show(struct device *dev, struct device_attribute *dev_attr, - char *buf) - { -@@ -308,6 +303,34 @@ static ssize_t client_monitor_latency_sh - } - static DEVICE_ATTR_RO(client_monitor_latency); - -+static ssize_t server_monitor_conn_id_show(struct device *dev, -+ struct device_attribute *dev_attr, -+ char *buf) -+{ -+ struct hv_device *hv_dev = device_to_hv_device(dev); -+ -+ if (!hv_dev->channel) -+ return -ENODEV; -+ return sprintf(buf, "%d\n", -+ channel_conn_id(hv_dev->channel, -+ vmbus_connection.monitor_pages[0])); -+} -+static DEVICE_ATTR_RO(server_monitor_conn_id); -+ -+static ssize_t client_monitor_conn_id_show(struct device *dev, -+ struct device_attribute *dev_attr, -+ char *buf) -+{ -+ struct hv_device *hv_dev = device_to_hv_device(dev); -+ -+ if (!hv_dev->channel) -+ return -ENODEV; -+ return sprintf(buf, "%d\n", -+ channel_conn_id(hv_dev->channel, -+ vmbus_connection.monitor_pages[1])); -+} -+static DEVICE_ATTR_RO(client_monitor_conn_id); -+ - static struct attribute *vmbus_attrs[] = { - &dev_attr_id.attr, - &dev_attr_state.attr, -@@ -319,16 +342,14 @@ static struct attribute *vmbus_attrs[] = - &dev_attr_client_monitor_pending.attr, - &dev_attr_server_monitor_latency.attr, - &dev_attr_client_monitor_latency.attr, -+ &dev_attr_server_monitor_conn_id.attr, -+ &dev_attr_client_monitor_conn_id.attr, - NULL, - }; - ATTRIBUTE_GROUPS(vmbus); - - /* Set up per device attributes in /sys/bus/vmbus/devices/<bus device> */ - static struct device_attribute vmbus_device_attrs[] = { -- __ATTR(server_monitor_conn_id, S_IRUGO, vmbus_show_device_attr, NULL), -- -- __ATTR(client_monitor_conn_id, S_IRUGO, vmbus_show_device_attr, NULL), -- - __ATTR(out_intr_mask, S_IRUGO, vmbus_show_device_attr, NULL), - __ATTR(out_read_index, S_IRUGO, vmbus_show_device_attr, NULL), - __ATTR(out_write_index, S_IRUGO, vmbus_show_device_attr, NULL), ---- a/include/linux/hyperv.h -+++ b/include/linux/hyperv.h -@@ -903,9 +903,6 @@ enum vmbus_channel_state { - }; - - struct vmbus_channel_debug_info { -- u32 servermonitor_connectionid; -- u32 clientmonitor_connectionid; -- - struct hv_ring_buffer_debug_info inbound; - struct hv_ring_buffer_debug_info outbound; - }; diff --git a/hv-move-client-server_monitor_latency-bus-attributes-to-dev_groups.patch b/hv-move-client-server_monitor_latency-bus-attributes-to-dev_groups.patch deleted file mode 100644 index cdc3c68540f4a..0000000000000 --- a/hv-move-client-server_monitor_latency-bus-attributes-to-dev_groups.patch +++ /dev/null @@ -1,155 +0,0 @@ -From foo@baz Mon Sep 9 14:41:49 PDT 2013 -Date: Mon, 09 Sep 2013 14:41:49 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: hv: move "client/server_monitor_latency" bus attributes to dev_groups - -This moves the "client_monitor_latency" and "server_monitor_latency" bus -attributes to the dev_groups structure, removing the need for it to be -in a temporary structure. - -Cc: "K. Y. Srinivasan" <kys@microsoft.com> -Cc: Haiyang Zhang <haiyangz@microsoft.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hv/channel.c | 4 ---- - drivers/hv/vmbus_drv.c | 48 ++++++++++++++++++++++++++++++++++++++---------- - include/linux/hyperv.h | 2 -- - 3 files changed, 38 insertions(+), 16 deletions(-) - ---- a/drivers/hv/channel.c -+++ b/drivers/hv/channel.c -@@ -70,15 +70,11 @@ void vmbus_get_debug_info(struct vmbus_c - u8 monitor_offset = (u8)channel->offermsg.monitorid % 32; - - monitorpage = vmbus_connection.monitor_pages[0]; -- debuginfo->servermonitor_latency = -- monitorpage->latency[monitor_group][monitor_offset]; - debuginfo->servermonitor_connectionid = - monitorpage->parameter[monitor_group] - [monitor_offset].connectionid.u.id; - - monitorpage = vmbus_connection.monitor_pages[1]; -- debuginfo->clientmonitor_latency = -- monitorpage->latency[monitor_group][monitor_offset]; - debuginfo->clientmonitor_connectionid = - monitorpage->parameter[monitor_group] - [monitor_offset].connectionid.u.id; ---- a/drivers/hv/vmbus_drv.c -+++ b/drivers/hv/vmbus_drv.c -@@ -47,9 +47,7 @@ static struct completion probe_event; - static int irq; - - struct hv_device_info { -- u32 server_monitor_latency; - u32 server_monitor_conn_id; -- u32 client_monitor_latency; - u32 client_monitor_conn_id; - - struct hv_dev_port_info inbound; -@@ -75,10 +73,8 @@ static void get_channel_info(struct hv_d - - vmbus_get_debug_info(device->channel, &debug_info); - -- info->server_monitor_latency = debug_info.servermonitor_latency; - info->server_monitor_conn_id = debug_info.servermonitor_connectionid; - -- info->client_monitor_latency = debug_info.clientmonitor_latency; - info->client_monitor_conn_id = debug_info.clientmonitor_connectionid; - - info->inbound.int_mask = debug_info.inbound.current_interrupt_mask; -@@ -151,13 +147,9 @@ static ssize_t vmbus_show_device_attr(st - } else if (!strcmp(dev_attr->attr.name, "in_write_bytes_avail")) { - ret = sprintf(buf, "%d\n", - device_info->inbound.bytes_avail_towrite); -- } else if (!strcmp(dev_attr->attr.name, "server_monitor_latency")) { -- ret = sprintf(buf, "%d\n", device_info->server_monitor_latency); - } else if (!strcmp(dev_attr->attr.name, "server_monitor_conn_id")) { - ret = sprintf(buf, "%d\n", - device_info->server_monitor_conn_id); -- } else if (!strcmp(dev_attr->attr.name, "client_monitor_latency")) { -- ret = sprintf(buf, "%d\n", device_info->client_monitor_latency); - } else if (!strcmp(dev_attr->attr.name, "client_monitor_conn_id")) { - ret = sprintf(buf, "%d\n", - device_info->client_monitor_conn_id); -@@ -184,6 +176,14 @@ static u32 channel_pending(struct vmbus_ - return monitor_page->trigger_group[monitor_group].pending; - } - -+static u32 channel_latency(struct vmbus_channel *channel, -+ struct hv_monitor_page *monitor_page) -+{ -+ u8 monitor_group = channel_monitor_group(channel); -+ u8 monitor_offset = channel_monitor_offset(channel); -+ return monitor_page->latency[monitor_group][monitor_offset]; -+} -+ - static ssize_t id_show(struct device *dev, struct device_attribute *dev_attr, - char *buf) - { -@@ -280,6 +280,34 @@ static ssize_t client_monitor_pending_sh - } - static DEVICE_ATTR_RO(client_monitor_pending); - -+static ssize_t server_monitor_latency_show(struct device *dev, -+ struct device_attribute *dev_attr, -+ char *buf) -+{ -+ struct hv_device *hv_dev = device_to_hv_device(dev); -+ -+ if (!hv_dev->channel) -+ return -ENODEV; -+ return sprintf(buf, "%d\n", -+ channel_latency(hv_dev->channel, -+ vmbus_connection.monitor_pages[0])); -+} -+static DEVICE_ATTR_RO(server_monitor_latency); -+ -+static ssize_t client_monitor_latency_show(struct device *dev, -+ struct device_attribute *dev_attr, -+ char *buf) -+{ -+ struct hv_device *hv_dev = device_to_hv_device(dev); -+ -+ if (!hv_dev->channel) -+ return -ENODEV; -+ return sprintf(buf, "%d\n", -+ channel_latency(hv_dev->channel, -+ vmbus_connection.monitor_pages[1])); -+} -+static DEVICE_ATTR_RO(client_monitor_latency); -+ - static struct attribute *vmbus_attrs[] = { - &dev_attr_id.attr, - &dev_attr_state.attr, -@@ -289,16 +317,16 @@ static struct attribute *vmbus_attrs[] = - &dev_attr_modalias.attr, - &dev_attr_server_monitor_pending.attr, - &dev_attr_client_monitor_pending.attr, -+ &dev_attr_server_monitor_latency.attr, -+ &dev_attr_client_monitor_latency.attr, - NULL, - }; - ATTRIBUTE_GROUPS(vmbus); - - /* Set up per device attributes in /sys/bus/vmbus/devices/<bus device> */ - static struct device_attribute vmbus_device_attrs[] = { -- __ATTR(server_monitor_latency, S_IRUGO, vmbus_show_device_attr, NULL), - __ATTR(server_monitor_conn_id, S_IRUGO, vmbus_show_device_attr, NULL), - -- __ATTR(client_monitor_latency, S_IRUGO, vmbus_show_device_attr, NULL), - __ATTR(client_monitor_conn_id, S_IRUGO, vmbus_show_device_attr, NULL), - - __ATTR(out_intr_mask, S_IRUGO, vmbus_show_device_attr, NULL), ---- a/include/linux/hyperv.h -+++ b/include/linux/hyperv.h -@@ -903,9 +903,7 @@ enum vmbus_channel_state { - }; - - struct vmbus_channel_debug_info { -- u32 servermonitor_latency; - u32 servermonitor_connectionid; -- u32 clientmonitor_latency; - u32 clientmonitor_connectionid; - - struct hv_ring_buffer_debug_info inbound; diff --git a/hv-move-client-server_monitor_pending-bus-attributes-to-dev_groups.patch b/hv-move-client-server_monitor_pending-bus-attributes-to-dev_groups.patch deleted file mode 100644 index 6653ba757e3fd..0000000000000 --- a/hv-move-client-server_monitor_pending-bus-attributes-to-dev_groups.patch +++ /dev/null @@ -1,171 +0,0 @@ -From foo@baz Mon Sep 9 14:40:42 PDT 2013 -Date: Mon, 09 Sep 2013 14:40:42 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: hv: move "client/server_monitor_pending" bus attributes to dev_groups - -This moves the "client_monitor_pending" and "server_monitor_pending" bus -attributes to the dev_groups structure, removing the need for it to be -in a temporary structure. - -Cc: "K. Y. Srinivasan" <kys@microsoft.com> -Cc: Haiyang Zhang <haiyangz@microsoft.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hv/channel.c | 4 --- - drivers/hv/vmbus_drv.c | 56 ++++++++++++++++++++++++++++++++++++++++--------- - include/linux/hyperv.h | 2 - - 3 files changed, 46 insertions(+), 16 deletions(-) - ---- a/drivers/hv/channel.c -+++ b/drivers/hv/channel.c -@@ -70,8 +70,6 @@ void vmbus_get_debug_info(struct vmbus_c - u8 monitor_offset = (u8)channel->offermsg.monitorid % 32; - - monitorpage = vmbus_connection.monitor_pages[0]; -- debuginfo->servermonitor_pending = -- monitorpage->trigger_group[monitor_group].pending; - debuginfo->servermonitor_latency = - monitorpage->latency[monitor_group][monitor_offset]; - debuginfo->servermonitor_connectionid = -@@ -79,8 +77,6 @@ void vmbus_get_debug_info(struct vmbus_c - [monitor_offset].connectionid.u.id; - - monitorpage = vmbus_connection.monitor_pages[1]; -- debuginfo->clientmonitor_pending = -- monitorpage->trigger_group[monitor_group].pending; - debuginfo->clientmonitor_latency = - monitorpage->latency[monitor_group][monitor_offset]; - debuginfo->clientmonitor_connectionid = ---- a/drivers/hv/vmbus_drv.c -+++ b/drivers/hv/vmbus_drv.c -@@ -47,10 +47,8 @@ static struct completion probe_event; - static int irq; - - struct hv_device_info { -- u32 server_monitor_pending; - u32 server_monitor_latency; - u32 server_monitor_conn_id; -- u32 client_monitor_pending; - u32 client_monitor_latency; - u32 client_monitor_conn_id; - -@@ -77,11 +75,9 @@ static void get_channel_info(struct hv_d - - vmbus_get_debug_info(device->channel, &debug_info); - -- info->server_monitor_pending = debug_info.servermonitor_pending; - info->server_monitor_latency = debug_info.servermonitor_latency; - info->server_monitor_conn_id = debug_info.servermonitor_connectionid; - -- info->client_monitor_pending = debug_info.clientmonitor_pending; - info->client_monitor_latency = debug_info.clientmonitor_latency; - info->client_monitor_conn_id = debug_info.clientmonitor_connectionid; - -@@ -155,15 +151,11 @@ static ssize_t vmbus_show_device_attr(st - } else if (!strcmp(dev_attr->attr.name, "in_write_bytes_avail")) { - ret = sprintf(buf, "%d\n", - device_info->inbound.bytes_avail_towrite); -- } else if (!strcmp(dev_attr->attr.name, "server_monitor_pending")) { -- ret = sprintf(buf, "%d\n", device_info->server_monitor_pending); - } else if (!strcmp(dev_attr->attr.name, "server_monitor_latency")) { - ret = sprintf(buf, "%d\n", device_info->server_monitor_latency); - } else if (!strcmp(dev_attr->attr.name, "server_monitor_conn_id")) { - ret = sprintf(buf, "%d\n", - device_info->server_monitor_conn_id); -- } else if (!strcmp(dev_attr->attr.name, "client_monitor_pending")) { -- ret = sprintf(buf, "%d\n", device_info->client_monitor_pending); - } else if (!strcmp(dev_attr->attr.name, "client_monitor_latency")) { - ret = sprintf(buf, "%d\n", device_info->client_monitor_latency); - } else if (!strcmp(dev_attr->attr.name, "client_monitor_conn_id")) { -@@ -175,6 +167,23 @@ static ssize_t vmbus_show_device_attr(st - return ret; - } - -+static u8 channel_monitor_group(struct vmbus_channel *channel) -+{ -+ return (u8)channel->offermsg.monitorid / 32; -+} -+ -+static u8 channel_monitor_offset(struct vmbus_channel *channel) -+{ -+ return (u8)channel->offermsg.monitorid % 32; -+} -+ -+static u32 channel_pending(struct vmbus_channel *channel, -+ struct hv_monitor_page *monitor_page) -+{ -+ u8 monitor_group = channel_monitor_group(channel); -+ return monitor_page->trigger_group[monitor_group].pending; -+} -+ - static ssize_t id_show(struct device *dev, struct device_attribute *dev_attr, - char *buf) - { -@@ -243,6 +252,33 @@ static ssize_t modalias_show(struct devi - } - static DEVICE_ATTR_RO(modalias); - -+static ssize_t server_monitor_pending_show(struct device *dev, -+ struct device_attribute *dev_attr, -+ char *buf) -+{ -+ struct hv_device *hv_dev = device_to_hv_device(dev); -+ -+ if (!hv_dev->channel) -+ return -ENODEV; -+ return sprintf(buf, "%d\n", -+ channel_pending(hv_dev->channel, -+ vmbus_connection.monitor_pages[1])); -+} -+static DEVICE_ATTR_RO(server_monitor_pending); -+ -+static ssize_t client_monitor_pending_show(struct device *dev, -+ struct device_attribute *dev_attr, -+ char *buf) -+{ -+ struct hv_device *hv_dev = device_to_hv_device(dev); -+ -+ if (!hv_dev->channel) -+ return -ENODEV; -+ return sprintf(buf, "%d\n", -+ channel_pending(hv_dev->channel, -+ vmbus_connection.monitor_pages[1])); -+} -+static DEVICE_ATTR_RO(client_monitor_pending); - - static struct attribute *vmbus_attrs[] = { - &dev_attr_id.attr, -@@ -251,17 +287,17 @@ static struct attribute *vmbus_attrs[] = - &dev_attr_class_id.attr, - &dev_attr_device_id.attr, - &dev_attr_modalias.attr, -+ &dev_attr_server_monitor_pending.attr, -+ &dev_attr_client_monitor_pending.attr, - NULL, - }; - ATTRIBUTE_GROUPS(vmbus); - - /* Set up per device attributes in /sys/bus/vmbus/devices/<bus device> */ - static struct device_attribute vmbus_device_attrs[] = { -- __ATTR(server_monitor_pending, S_IRUGO, vmbus_show_device_attr, NULL), - __ATTR(server_monitor_latency, S_IRUGO, vmbus_show_device_attr, NULL), - __ATTR(server_monitor_conn_id, S_IRUGO, vmbus_show_device_attr, NULL), - -- __ATTR(client_monitor_pending, S_IRUGO, vmbus_show_device_attr, NULL), - __ATTR(client_monitor_latency, S_IRUGO, vmbus_show_device_attr, NULL), - __ATTR(client_monitor_conn_id, S_IRUGO, vmbus_show_device_attr, NULL), - ---- a/include/linux/hyperv.h -+++ b/include/linux/hyperv.h -@@ -903,10 +903,8 @@ enum vmbus_channel_state { - }; - - struct vmbus_channel_debug_info { -- u32 servermonitor_pending; - u32 servermonitor_latency; - u32 servermonitor_connectionid; -- u32 clientmonitor_pending; - u32 clientmonitor_latency; - u32 clientmonitor_connectionid; - diff --git a/hv-move-device_id-bus-attribute-to-dev_groups.patch b/hv-move-device_id-bus-attribute-to-dev_groups.patch deleted file mode 100644 index a791450ec2a82..0000000000000 --- a/hv-move-device_id-bus-attribute-to-dev_groups.patch +++ /dev/null @@ -1,109 +0,0 @@ -From foo@baz Mon Sep 9 14:36:02 PDT 2013 -Date: Mon, 09 Sep 2013 14:36:02 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: hv: move "device_id" bus attribute to dev_groups - -This moves the "device_id" bus attribute to the dev_groups structure, -removing the need for it to be in a temporary structure. - -Cc: "K. Y. Srinivasan" <kys@microsoft.com> -Cc: Haiyang Zhang <haiyangz@microsoft.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hv/channel.c | 4 ---- - drivers/hv/vmbus_drv.c | 24 ++++++++++++++---------- - include/linux/hyperv.h | 1 - - 3 files changed, 14 insertions(+), 15 deletions(-) - ---- a/drivers/hv/channel.c -+++ b/drivers/hv/channel.c -@@ -69,10 +69,6 @@ void vmbus_get_debug_info(struct vmbus_c - u8 monitor_group = (u8)channel->offermsg.monitorid / 32; - u8 monitor_offset = (u8)channel->offermsg.monitorid % 32; - -- memcpy(&debuginfo->interface_instance, -- &channel->offermsg.offer.if_instance, -- sizeof(uuid_le)); -- - monitorpage = (struct hv_monitor_page *)vmbus_connection.monitor_pages; - - debuginfo->servermonitor_pending = ---- a/drivers/hv/vmbus_drv.c -+++ b/drivers/hv/vmbus_drv.c -@@ -47,8 +47,6 @@ static struct completion probe_event; - static int irq; - - struct hv_device_info { -- uuid_le chn_instance; -- - u32 server_monitor_pending; - u32 server_monitor_latency; - u32 server_monitor_conn_id; -@@ -79,9 +77,6 @@ static void get_channel_info(struct hv_d - - vmbus_get_debug_info(device->channel, &debug_info); - -- memcpy(&info->chn_instance, &debug_info.interface_instance, -- sizeof(uuid_le)); -- - info->server_monitor_pending = debug_info.servermonitor_pending; - info->server_monitor_latency = debug_info.servermonitor_latency; - info->server_monitor_conn_id = debug_info.servermonitor_connectionid; -@@ -136,9 +131,7 @@ static ssize_t vmbus_show_device_attr(st - - get_channel_info(hv_dev, device_info); - -- if (!strcmp(dev_attr->attr.name, "device_id")) { -- ret = sprintf(buf, "{%pUl}\n", device_info->chn_instance.b); -- } else if (!strcmp(dev_attr->attr.name, "out_intr_mask")) { -+ if (!strcmp(dev_attr->attr.name, "out_intr_mask")) { - ret = sprintf(buf, "%d\n", device_info->outbound.int_mask); - } else if (!strcmp(dev_attr->attr.name, "out_read_index")) { - ret = sprintf(buf, "%d\n", device_info->outbound.read_idx); -@@ -227,6 +220,18 @@ static ssize_t class_id_show(struct devi - } - static DEVICE_ATTR_RO(class_id); - -+static ssize_t device_id_show(struct device *dev, -+ struct device_attribute *dev_attr, char *buf) -+{ -+ struct hv_device *hv_dev = device_to_hv_device(dev); -+ -+ if (!hv_dev->channel) -+ return -ENODEV; -+ return sprintf(buf, "{%pUl}\n", -+ hv_dev->channel->offermsg.offer.if_instance.b); -+} -+static DEVICE_ATTR_RO(device_id); -+ - static ssize_t modalias_show(struct device *dev, - struct device_attribute *dev_attr, char *buf) - { -@@ -244,6 +249,7 @@ static struct attribute *vmbus_attrs[] = - &dev_attr_state.attr, - &dev_attr_monitor_id.attr, - &dev_attr_class_id.attr, -+ &dev_attr_device_id.attr, - &dev_attr_modalias.attr, - NULL, - }; -@@ -251,8 +257,6 @@ ATTRIBUTE_GROUPS(vmbus); - - /* Set up per device attributes in /sys/bus/vmbus/devices/<bus device> */ - static struct device_attribute vmbus_device_attrs[] = { -- __ATTR(device_id, S_IRUGO, vmbus_show_device_attr, NULL), -- - __ATTR(server_monitor_pending, S_IRUGO, vmbus_show_device_attr, NULL), - __ATTR(server_monitor_latency, S_IRUGO, vmbus_show_device_attr, NULL), - __ATTR(server_monitor_conn_id, S_IRUGO, vmbus_show_device_attr, NULL), ---- a/include/linux/hyperv.h -+++ b/include/linux/hyperv.h -@@ -903,7 +903,6 @@ enum vmbus_channel_state { - }; - - struct vmbus_channel_debug_info { -- uuid_le interface_instance; - u32 servermonitor_pending; - u32 servermonitor_latency; - u32 servermonitor_connectionid; diff --git a/hv-move-modalias-bus-attribute-to-dev_groups.patch b/hv-move-modalias-bus-attribute-to-dev_groups.patch deleted file mode 100644 index 1043a9efb953d..0000000000000 --- a/hv-move-modalias-bus-attribute-to-dev_groups.patch +++ /dev/null @@ -1,66 +0,0 @@ -From foo@baz Mon Sep 9 14:34:18 PDT 2013 -Date: Mon, 09 Sep 2013 14:34:18 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: hv: move "modalias" bus attribute to dev_groups - -This moves the "state" bus attribute to the dev_groups structure. - -Cc: "K. Y. Srinivasan" <kys@microsoft.com> -Cc: Haiyang Zhang <haiyangz@microsoft.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hv/vmbus_drv.c | 17 ++++++++++++----- - 1 file changed, 12 insertions(+), 5 deletions(-) - ---- a/drivers/hv/vmbus_drv.c -+++ b/drivers/hv/vmbus_drv.c -@@ -131,7 +131,6 @@ static ssize_t vmbus_show_device_attr(st - { - struct hv_device *hv_dev = device_to_hv_device(dev); - struct hv_device_info *device_info; -- char alias_name[VMBUS_ALIAS_LEN + 1]; - int ret = 0; - - device_info = kzalloc(sizeof(struct hv_device_info), GFP_KERNEL); -@@ -144,9 +143,6 @@ static ssize_t vmbus_show_device_attr(st - ret = sprintf(buf, "{%pUl}\n", device_info->chn_type.b); - } else if (!strcmp(dev_attr->attr.name, "device_id")) { - ret = sprintf(buf, "{%pUl}\n", device_info->chn_instance.b); -- } else if (!strcmp(dev_attr->attr.name, "modalias")) { -- print_alias_name(hv_dev, alias_name); -- ret = sprintf(buf, "vmbus:%s\n", alias_name); - } else if (!strcmp(dev_attr->attr.name, "out_intr_mask")) { - ret = sprintf(buf, "%d\n", device_info->outbound.int_mask); - } else if (!strcmp(dev_attr->attr.name, "out_read_index")) { -@@ -224,10 +220,22 @@ static ssize_t monitor_id_show(struct de - } - static DEVICE_ATTR_RO(monitor_id); - -+static ssize_t modalias_show(struct device *dev, -+ struct device_attribute *dev_attr, char *buf) -+{ -+ struct hv_device *hv_dev = device_to_hv_device(dev); -+ char alias_name[VMBUS_ALIAS_LEN + 1]; -+ -+ print_alias_name(hv_dev, alias_name); -+ return sprintf(buf, "vmbus:%s\n", alias_name); -+} -+static DEVICE_ATTR_RO(modalias); -+ - static struct attribute *vmbus_attrs[] = { - &dev_attr_id.attr, - &dev_attr_state.attr, - &dev_attr_monitor_id.attr, -+ &dev_attr_modalias.attr, - NULL, - }; - ATTRIBUTE_GROUPS(vmbus); -@@ -236,7 +244,6 @@ ATTRIBUTE_GROUPS(vmbus); - static struct device_attribute vmbus_device_attrs[] = { - __ATTR(class_id, S_IRUGO, vmbus_show_device_attr, NULL), - __ATTR(device_id, S_IRUGO, vmbus_show_device_attr, NULL), -- __ATTR(modalias, S_IRUGO, vmbus_show_device_attr, NULL), - - __ATTR(server_monitor_pending, S_IRUGO, vmbus_show_device_attr, NULL), - __ATTR(server_monitor_latency, S_IRUGO, vmbus_show_device_attr, NULL), diff --git a/hv-move-monitor_id-bus-attribute-to-dev_groups.patch b/hv-move-monitor_id-bus-attribute-to-dev_groups.patch deleted file mode 100644 index ff3121217e92c..0000000000000 --- a/hv-move-monitor_id-bus-attribute-to-dev_groups.patch +++ /dev/null @@ -1,97 +0,0 @@ -From foo@baz Mon Sep 9 14:31:30 PDT 2013 -Date: Mon, 09 Sep 2013 14:31:30 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: hv: move "monitor_id" bus attribute to dev_groups - -This moves the "state" bus attribute to the dev_groups structure, -removing the need for it to be in a temporary structure. - -Cc: "K. Y. Srinivasan" <kys@microsoft.com> -Cc: Haiyang Zhang <haiyangz@microsoft.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hv/channel.c | 2 -- - drivers/hv/vmbus_drv.c | 18 ++++++++++++------ - include/linux/hyperv.h | 1 - - 3 files changed, 12 insertions(+), 9 deletions(-) - ---- a/drivers/hv/channel.c -+++ b/drivers/hv/channel.c -@@ -77,8 +77,6 @@ void vmbus_get_debug_info(struct vmbus_c - - monitorpage = (struct hv_monitor_page *)vmbus_connection.monitor_pages; - -- debuginfo->monitorid = channel->offermsg.monitorid; -- - debuginfo->servermonitor_pending = - monitorpage->trigger_group[monitor_group].pending; - debuginfo->servermonitor_latency = ---- a/drivers/hv/vmbus_drv.c -+++ b/drivers/hv/vmbus_drv.c -@@ -50,7 +50,6 @@ struct hv_device_info { - uuid_le chn_type; - uuid_le chn_instance; - -- u32 monitor_id; - u32 server_monitor_pending; - u32 server_monitor_latency; - u32 server_monitor_conn_id; -@@ -86,8 +85,6 @@ static void get_channel_info(struct hv_d - memcpy(&info->chn_instance, &debug_info.interface_instance, - sizeof(uuid_le)); - -- info->monitor_id = debug_info.monitorid; -- - info->server_monitor_pending = debug_info.servermonitor_pending; - info->server_monitor_latency = debug_info.servermonitor_latency; - info->server_monitor_conn_id = debug_info.servermonitor_connectionid; -@@ -174,8 +171,6 @@ static ssize_t vmbus_show_device_attr(st - } else if (!strcmp(dev_attr->attr.name, "in_write_bytes_avail")) { - ret = sprintf(buf, "%d\n", - device_info->inbound.bytes_avail_towrite); -- } else if (!strcmp(dev_attr->attr.name, "monitor_id")) { -- ret = sprintf(buf, "%d\n", device_info->monitor_id); - } else if (!strcmp(dev_attr->attr.name, "server_monitor_pending")) { - ret = sprintf(buf, "%d\n", device_info->server_monitor_pending); - } else if (!strcmp(dev_attr->attr.name, "server_monitor_latency")) { -@@ -218,9 +213,21 @@ static ssize_t state_show(struct device - } - static DEVICE_ATTR_RO(state); - -+static ssize_t monitor_id_show(struct device *dev, -+ struct device_attribute *dev_attr, char *buf) -+{ -+ struct hv_device *hv_dev = device_to_hv_device(dev); -+ -+ if (!hv_dev->channel) -+ return -ENODEV; -+ return sprintf(buf, "%d\n", hv_dev->channel->offermsg.monitorid); -+} -+static DEVICE_ATTR_RO(monitor_id); -+ - static struct attribute *vmbus_attrs[] = { - &dev_attr_id.attr, - &dev_attr_state.attr, -+ &dev_attr_monitor_id.attr, - NULL, - }; - ATTRIBUTE_GROUPS(vmbus); -@@ -229,7 +236,6 @@ ATTRIBUTE_GROUPS(vmbus); - static struct device_attribute vmbus_device_attrs[] = { - __ATTR(class_id, S_IRUGO, vmbus_show_device_attr, NULL), - __ATTR(device_id, S_IRUGO, vmbus_show_device_attr, NULL), -- __ATTR(monitor_id, S_IRUGO, vmbus_show_device_attr, NULL), - __ATTR(modalias, S_IRUGO, vmbus_show_device_attr, NULL), - - __ATTR(server_monitor_pending, S_IRUGO, vmbus_show_device_attr, NULL), ---- a/include/linux/hyperv.h -+++ b/include/linux/hyperv.h -@@ -905,7 +905,6 @@ enum vmbus_channel_state { - struct vmbus_channel_debug_info { - uuid_le interfacetype; - uuid_le interface_instance; -- u32 monitorid; - u32 servermonitor_pending; - u32 servermonitor_latency; - u32 servermonitor_connectionid; diff --git a/hv-move-ringbuffer-bus-attributes-to-dev_groups.patch b/hv-move-ringbuffer-bus-attributes-to-dev_groups.patch deleted file mode 100644 index 39c98824c8a13..0000000000000 --- a/hv-move-ringbuffer-bus-attributes-to-dev_groups.patch +++ /dev/null @@ -1,296 +0,0 @@ -From foo@baz Fri Sep 13 10:12:58 PDT 2013 -Date: Fri, 13 Sep 2013 10:12:58 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: hv: move ringbuffer bus attributes to dev_groups - -This moves the ringbuffer bus attributes to the dev_groups structure, -deletes the now unneeded struct hv_device_info, and removes some now -unused functions, and variables as everything is now moved to the -dev_groups structure, dev_attrs is no longer needed. - -Cc: "K. Y. Srinivasan" <kys@microsoft.com> -Cc: Haiyang Zhang <haiyangz@microsoft.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hv/vmbus_drv.c | 230 +++++++++++++++++++++++++++++++------------------ - 1 file changed, 146 insertions(+), 84 deletions(-) - ---- a/drivers/hv/vmbus_drv.c -+++ b/drivers/hv/vmbus_drv.c -@@ -46,11 +46,6 @@ static struct tasklet_struct msg_dpc; - static struct completion probe_event; - static int irq; - --struct hv_device_info { -- struct hv_ring_buffer_debug_info inbound; -- struct hv_ring_buffer_debug_info outbound; --}; -- - static int vmbus_exists(void) - { - if (hv_acpi_dev == NULL) -@@ -59,17 +54,6 @@ static int vmbus_exists(void) - return 0; - } - -- --static void get_channel_info(struct hv_device *device, -- struct hv_device_info *info) --{ -- if (!device->channel) -- return; -- -- hv_ringbuffer_get_debuginfo(&device->channel->inbound, &info->inbound); -- hv_ringbuffer_get_debuginfo(&device->channel->outbound, &info->outbound); --} -- - #define VMBUS_ALIAS_LEN ((sizeof((struct hv_vmbus_device_id *)0)->guid) * 2) - static void print_alias_name(struct hv_device *hv_dev, char *alias_name) - { -@@ -78,56 +62,6 @@ static void print_alias_name(struct hv_d - sprintf(&alias_name[i], "%02x", hv_dev->dev_type.b[i/2]); - } - --/* -- * vmbus_show_device_attr - Show the device attribute in sysfs. -- * -- * This is invoked when user does a -- * "cat /sys/bus/vmbus/devices/<busdevice>/<attr name>" -- */ --static ssize_t vmbus_show_device_attr(struct device *dev, -- struct device_attribute *dev_attr, -- char *buf) --{ -- struct hv_device *hv_dev = device_to_hv_device(dev); -- struct hv_device_info *device_info; -- int ret = 0; -- -- device_info = kzalloc(sizeof(struct hv_device_info), GFP_KERNEL); -- if (!device_info) -- return ret; -- -- get_channel_info(hv_dev, device_info); -- -- if (!strcmp(dev_attr->attr.name, "out_intr_mask")) { -- ret = sprintf(buf, "%d\n", device_info->outbound.current_interrupt_mask); -- } else if (!strcmp(dev_attr->attr.name, "out_read_index")) { -- ret = sprintf(buf, "%d\n", device_info->outbound.current_read_index); -- } else if (!strcmp(dev_attr->attr.name, "out_write_index")) { -- ret = sprintf(buf, "%d\n", device_info->outbound.current_write_index); -- } else if (!strcmp(dev_attr->attr.name, "out_read_bytes_avail")) { -- ret = sprintf(buf, "%d\n", -- device_info->outbound.bytes_avail_toread); -- } else if (!strcmp(dev_attr->attr.name, "out_write_bytes_avail")) { -- ret = sprintf(buf, "%d\n", -- device_info->outbound.bytes_avail_towrite); -- } else if (!strcmp(dev_attr->attr.name, "in_intr_mask")) { -- ret = sprintf(buf, "%d\n", device_info->inbound.current_interrupt_mask); -- } else if (!strcmp(dev_attr->attr.name, "in_read_index")) { -- ret = sprintf(buf, "%d\n", device_info->inbound.current_read_index); -- } else if (!strcmp(dev_attr->attr.name, "in_write_index")) { -- ret = sprintf(buf, "%d\n", device_info->inbound.current_write_index); -- } else if (!strcmp(dev_attr->attr.name, "in_read_bytes_avail")) { -- ret = sprintf(buf, "%d\n", -- device_info->inbound.bytes_avail_toread); -- } else if (!strcmp(dev_attr->attr.name, "in_write_bytes_avail")) { -- ret = sprintf(buf, "%d\n", -- device_info->inbound.bytes_avail_towrite); -- } -- -- kfree(device_info); -- return ret; --} -- - static u8 channel_monitor_group(struct vmbus_channel *channel) - { - return (u8)channel->offermsg.monitorid / 32; -@@ -313,6 +247,142 @@ static ssize_t client_monitor_conn_id_sh - } - static DEVICE_ATTR_RO(client_monitor_conn_id); - -+static ssize_t out_intr_mask_show(struct device *dev, -+ struct device_attribute *dev_attr, char *buf) -+{ -+ struct hv_device *hv_dev = device_to_hv_device(dev); -+ struct hv_ring_buffer_debug_info outbound; -+ -+ if (!hv_dev->channel) -+ return -ENODEV; -+ hv_ringbuffer_get_debuginfo(&hv_dev->channel->outbound, &outbound); -+ return sprintf(buf, "%d\n", outbound.current_interrupt_mask); -+} -+static DEVICE_ATTR_RO(out_intr_mask); -+ -+static ssize_t out_read_index_show(struct device *dev, -+ struct device_attribute *dev_attr, char *buf) -+{ -+ struct hv_device *hv_dev = device_to_hv_device(dev); -+ struct hv_ring_buffer_debug_info outbound; -+ -+ if (!hv_dev->channel) -+ return -ENODEV; -+ hv_ringbuffer_get_debuginfo(&hv_dev->channel->outbound, &outbound); -+ return sprintf(buf, "%d\n", outbound.current_read_index); -+} -+static DEVICE_ATTR_RO(out_read_index); -+ -+static ssize_t out_write_index_show(struct device *dev, -+ struct device_attribute *dev_attr, -+ char *buf) -+{ -+ struct hv_device *hv_dev = device_to_hv_device(dev); -+ struct hv_ring_buffer_debug_info outbound; -+ -+ if (!hv_dev->channel) -+ return -ENODEV; -+ hv_ringbuffer_get_debuginfo(&hv_dev->channel->outbound, &outbound); -+ return sprintf(buf, "%d\n", outbound.current_write_index); -+} -+static DEVICE_ATTR_RO(out_write_index); -+ -+static ssize_t out_read_bytes_avail_show(struct device *dev, -+ struct device_attribute *dev_attr, -+ char *buf) -+{ -+ struct hv_device *hv_dev = device_to_hv_device(dev); -+ struct hv_ring_buffer_debug_info outbound; -+ -+ if (!hv_dev->channel) -+ return -ENODEV; -+ hv_ringbuffer_get_debuginfo(&hv_dev->channel->outbound, &outbound); -+ return sprintf(buf, "%d\n", outbound.bytes_avail_toread); -+} -+static DEVICE_ATTR_RO(out_read_bytes_avail); -+ -+static ssize_t out_write_bytes_avail_show(struct device *dev, -+ struct device_attribute *dev_attr, -+ char *buf) -+{ -+ struct hv_device *hv_dev = device_to_hv_device(dev); -+ struct hv_ring_buffer_debug_info outbound; -+ -+ if (!hv_dev->channel) -+ return -ENODEV; -+ hv_ringbuffer_get_debuginfo(&hv_dev->channel->outbound, &outbound); -+ return sprintf(buf, "%d\n", outbound.bytes_avail_towrite); -+} -+static DEVICE_ATTR_RO(out_write_bytes_avail); -+ -+static ssize_t in_intr_mask_show(struct device *dev, -+ struct device_attribute *dev_attr, char *buf) -+{ -+ struct hv_device *hv_dev = device_to_hv_device(dev); -+ struct hv_ring_buffer_debug_info inbound; -+ -+ if (!hv_dev->channel) -+ return -ENODEV; -+ hv_ringbuffer_get_debuginfo(&hv_dev->channel->inbound, &inbound); -+ return sprintf(buf, "%d\n", inbound.current_interrupt_mask); -+} -+static DEVICE_ATTR_RO(in_intr_mask); -+ -+static ssize_t in_read_index_show(struct device *dev, -+ struct device_attribute *dev_attr, char *buf) -+{ -+ struct hv_device *hv_dev = device_to_hv_device(dev); -+ struct hv_ring_buffer_debug_info inbound; -+ -+ if (!hv_dev->channel) -+ return -ENODEV; -+ hv_ringbuffer_get_debuginfo(&hv_dev->channel->inbound, &inbound); -+ return sprintf(buf, "%d\n", inbound.current_read_index); -+} -+static DEVICE_ATTR_RO(in_read_index); -+ -+static ssize_t in_write_index_show(struct device *dev, -+ struct device_attribute *dev_attr, char *buf) -+{ -+ struct hv_device *hv_dev = device_to_hv_device(dev); -+ struct hv_ring_buffer_debug_info inbound; -+ -+ if (!hv_dev->channel) -+ return -ENODEV; -+ hv_ringbuffer_get_debuginfo(&hv_dev->channel->inbound, &inbound); -+ return sprintf(buf, "%d\n", inbound.current_write_index); -+} -+static DEVICE_ATTR_RO(in_write_index); -+ -+static ssize_t in_read_bytes_avail_show(struct device *dev, -+ struct device_attribute *dev_attr, -+ char *buf) -+{ -+ struct hv_device *hv_dev = device_to_hv_device(dev); -+ struct hv_ring_buffer_debug_info inbound; -+ -+ if (!hv_dev->channel) -+ return -ENODEV; -+ hv_ringbuffer_get_debuginfo(&hv_dev->channel->inbound, &inbound); -+ return sprintf(buf, "%d\n", inbound.bytes_avail_toread); -+} -+static DEVICE_ATTR_RO(in_read_bytes_avail); -+ -+static ssize_t in_write_bytes_avail_show(struct device *dev, -+ struct device_attribute *dev_attr, -+ char *buf) -+{ -+ struct hv_device *hv_dev = device_to_hv_device(dev); -+ struct hv_ring_buffer_debug_info inbound; -+ -+ if (!hv_dev->channel) -+ return -ENODEV; -+ hv_ringbuffer_get_debuginfo(&hv_dev->channel->inbound, &inbound); -+ return sprintf(buf, "%d\n", inbound.bytes_avail_towrite); -+} -+static DEVICE_ATTR_RO(in_write_bytes_avail); -+ -+/* Set up per device attributes in /sys/bus/vmbus/devices/<bus device> */ - static struct attribute *vmbus_attrs[] = { - &dev_attr_id.attr, - &dev_attr_state.attr, -@@ -326,27 +396,20 @@ static struct attribute *vmbus_attrs[] = - &dev_attr_client_monitor_latency.attr, - &dev_attr_server_monitor_conn_id.attr, - &dev_attr_client_monitor_conn_id.attr, -+ &dev_attr_out_intr_mask.attr, -+ &dev_attr_out_read_index.attr, -+ &dev_attr_out_write_index.attr, -+ &dev_attr_out_read_bytes_avail.attr, -+ &dev_attr_out_write_bytes_avail.attr, -+ &dev_attr_in_intr_mask.attr, -+ &dev_attr_in_read_index.attr, -+ &dev_attr_in_write_index.attr, -+ &dev_attr_in_read_bytes_avail.attr, -+ &dev_attr_in_write_bytes_avail.attr, - NULL, - }; - ATTRIBUTE_GROUPS(vmbus); - --/* Set up per device attributes in /sys/bus/vmbus/devices/<bus device> */ --static struct device_attribute vmbus_device_attrs[] = { -- __ATTR(out_intr_mask, S_IRUGO, vmbus_show_device_attr, NULL), -- __ATTR(out_read_index, S_IRUGO, vmbus_show_device_attr, NULL), -- __ATTR(out_write_index, S_IRUGO, vmbus_show_device_attr, NULL), -- __ATTR(out_read_bytes_avail, S_IRUGO, vmbus_show_device_attr, NULL), -- __ATTR(out_write_bytes_avail, S_IRUGO, vmbus_show_device_attr, NULL), -- -- __ATTR(in_intr_mask, S_IRUGO, vmbus_show_device_attr, NULL), -- __ATTR(in_read_index, S_IRUGO, vmbus_show_device_attr, NULL), -- __ATTR(in_write_index, S_IRUGO, vmbus_show_device_attr, NULL), -- __ATTR(in_read_bytes_avail, S_IRUGO, vmbus_show_device_attr, NULL), -- __ATTR(in_write_bytes_avail, S_IRUGO, vmbus_show_device_attr, NULL), -- __ATTR_NULL --}; -- -- - /* - * vmbus_uevent - add uevent for our device - * -@@ -494,7 +557,6 @@ static struct bus_type hv_bus = { - .remove = vmbus_remove, - .probe = vmbus_probe, - .uevent = vmbus_uevent, -- .dev_attrs = vmbus_device_attrs, - .dev_groups = vmbus_groups, - }; - diff --git a/hv-move-state-bus-attribute-to-dev_groups.patch b/hv-move-state-bus-attribute-to-dev_groups.patch deleted file mode 100644 index 7bcefbe85129e..0000000000000 --- a/hv-move-state-bus-attribute-to-dev_groups.patch +++ /dev/null @@ -1,93 +0,0 @@ -From foo@baz Mon Sep 9 14:31:19 PDT 2013 -Date: Mon, 09 Sep 2013 14:31:19 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: hv: move "state" bus attribute to dev_groups - -This moves the "state" bus attribute to the dev_groups structure, -removing the need for it to be in a temporary structure. - -Cc: "K. Y. Srinivasan" <kys@microsoft.com> -Cc: Haiyang Zhang <haiyangz@microsoft.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hv/channel.c | 1 - - drivers/hv/vmbus_drv.c | 17 ++++++++++++----- - include/linux/hyperv.h | 1 - - 3 files changed, 12 insertions(+), 7 deletions(-) - ---- a/drivers/hv/channel.c -+++ b/drivers/hv/channel.c -@@ -69,7 +69,6 @@ void vmbus_get_debug_info(struct vmbus_c - u8 monitor_group = (u8)channel->offermsg.monitorid / 32; - u8 monitor_offset = (u8)channel->offermsg.monitorid % 32; - -- debuginfo->state = channel->state; - memcpy(&debuginfo->interfacetype, - &channel->offermsg.offer.if_type, sizeof(uuid_le)); - memcpy(&debuginfo->interface_instance, ---- a/drivers/hv/vmbus_drv.c -+++ b/drivers/hv/vmbus_drv.c -@@ -47,7 +47,6 @@ static struct completion probe_event; - static int irq; - - struct hv_device_info { -- u32 chn_state; - uuid_le chn_type; - uuid_le chn_instance; - -@@ -82,7 +81,6 @@ static void get_channel_info(struct hv_d - - vmbus_get_debug_info(device->channel, &debug_info); - -- info->chn_state = debug_info.state; - memcpy(&info->chn_type, &debug_info.interfacetype, - sizeof(uuid_le)); - memcpy(&info->chn_instance, &debug_info.interface_instance, -@@ -152,8 +150,6 @@ static ssize_t vmbus_show_device_attr(st - } else if (!strcmp(dev_attr->attr.name, "modalias")) { - print_alias_name(hv_dev, alias_name); - ret = sprintf(buf, "vmbus:%s\n", alias_name); -- } else if (!strcmp(dev_attr->attr.name, "state")) { -- ret = sprintf(buf, "%d\n", device_info->chn_state); - } else if (!strcmp(dev_attr->attr.name, "out_intr_mask")) { - ret = sprintf(buf, "%d\n", device_info->outbound.int_mask); - } else if (!strcmp(dev_attr->attr.name, "out_read_index")) { -@@ -211,15 +207,26 @@ static ssize_t id_show(struct device *de - } - static DEVICE_ATTR_RO(id); - -+static ssize_t state_show(struct device *dev, struct device_attribute *dev_attr, -+ char *buf) -+{ -+ struct hv_device *hv_dev = device_to_hv_device(dev); -+ -+ if (!hv_dev->channel) -+ return -ENODEV; -+ return sprintf(buf, "%d\n", hv_dev->channel->state); -+} -+static DEVICE_ATTR_RO(state); -+ - static struct attribute *vmbus_attrs[] = { - &dev_attr_id.attr, -+ &dev_attr_state.attr, - NULL, - }; - ATTRIBUTE_GROUPS(vmbus); - - /* Set up per device attributes in /sys/bus/vmbus/devices/<bus device> */ - static struct device_attribute vmbus_device_attrs[] = { -- __ATTR(state, S_IRUGO, vmbus_show_device_attr, NULL), - __ATTR(class_id, S_IRUGO, vmbus_show_device_attr, NULL), - __ATTR(device_id, S_IRUGO, vmbus_show_device_attr, NULL), - __ATTR(monitor_id, S_IRUGO, vmbus_show_device_attr, NULL), ---- a/include/linux/hyperv.h -+++ b/include/linux/hyperv.h -@@ -903,7 +903,6 @@ enum vmbus_channel_state { - }; - - struct vmbus_channel_debug_info { -- enum vmbus_channel_state state; - uuid_le interfacetype; - uuid_le interface_instance; - u32 monitorid; diff --git a/hv-use-dev_groups-for-device-attributes.patch b/hv-use-dev_groups-for-device-attributes.patch deleted file mode 100644 index ea77737d38583..0000000000000 --- a/hv-use-dev_groups-for-device-attributes.patch +++ /dev/null @@ -1,105 +0,0 @@ -From foo@baz Mon Sep 9 14:28:31 PDT 2013 -Date: Mon, 09 Sep 2013 14:28:31 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: hv: use dev_groups for device attributes - -This patch is the first in a series that moves the hv bus code to use the -dev_groups field instead of dev_attrs, as dev_attrs is going away in future -kernel releases. - -It moves the id sysfs file to the dev_groups structure, and creates the needed -show/store functions, instead of relying on one "universal" function for this. -By doing this, it removes the need for this to be in a temporary structure. - -Cc: "K. Y. Srinivasan" <kys@microsoft.com> -Cc: Haiyang Zhang <haiyangz@microsoft.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hv/channel.c | 1 - - drivers/hv/vmbus_drv.c | 23 ++++++++++++++++++----- - include/linux/hyperv.h | 1 - - 3 files changed, 18 insertions(+), 7 deletions(-) - ---- a/drivers/hv/channel.c -+++ b/drivers/hv/channel.c -@@ -69,7 +69,6 @@ void vmbus_get_debug_info(struct vmbus_c - u8 monitor_group = (u8)channel->offermsg.monitorid / 32; - u8 monitor_offset = (u8)channel->offermsg.monitorid % 32; - -- debuginfo->relid = channel->offermsg.child_relid; - debuginfo->state = channel->state; - memcpy(&debuginfo->interfacetype, - &channel->offermsg.offer.if_type, sizeof(uuid_le)); ---- a/drivers/hv/vmbus_drv.c -+++ b/drivers/hv/vmbus_drv.c -@@ -47,7 +47,6 @@ static struct completion probe_event; - static int irq; - - struct hv_device_info { -- u32 chn_id; - u32 chn_state; - uuid_le chn_type; - uuid_le chn_instance; -@@ -83,7 +82,6 @@ static void get_channel_info(struct hv_d - - vmbus_get_debug_info(device->channel, &debug_info); - -- info->chn_id = debug_info.relid; - info->chn_state = debug_info.state; - memcpy(&info->chn_type, &debug_info.interfacetype, - sizeof(uuid_le)); -@@ -156,8 +154,6 @@ static ssize_t vmbus_show_device_attr(st - ret = sprintf(buf, "vmbus:%s\n", alias_name); - } else if (!strcmp(dev_attr->attr.name, "state")) { - ret = sprintf(buf, "%d\n", device_info->chn_state); -- } else if (!strcmp(dev_attr->attr.name, "id")) { -- ret = sprintf(buf, "%d\n", device_info->chn_id); - } else if (!strcmp(dev_attr->attr.name, "out_intr_mask")) { - ret = sprintf(buf, "%d\n", device_info->outbound.int_mask); - } else if (!strcmp(dev_attr->attr.name, "out_read_index")) { -@@ -204,9 +200,25 @@ static ssize_t vmbus_show_device_attr(st - return ret; - } - -+static ssize_t id_show(struct device *dev, struct device_attribute *dev_attr, -+ char *buf) -+{ -+ struct hv_device *hv_dev = device_to_hv_device(dev); -+ -+ if (!hv_dev->channel) -+ return -ENODEV; -+ return sprintf(buf, "%d\n", hv_dev->channel->offermsg.child_relid); -+} -+static DEVICE_ATTR_RO(id); -+ -+static struct attribute *vmbus_attrs[] = { -+ &dev_attr_id.attr, -+ NULL, -+}; -+ATTRIBUTE_GROUPS(vmbus); -+ - /* Set up per device attributes in /sys/bus/vmbus/devices/<bus device> */ - static struct device_attribute vmbus_device_attrs[] = { -- __ATTR(id, S_IRUGO, vmbus_show_device_attr, NULL), - __ATTR(state, S_IRUGO, vmbus_show_device_attr, NULL), - __ATTR(class_id, S_IRUGO, vmbus_show_device_attr, NULL), - __ATTR(device_id, S_IRUGO, vmbus_show_device_attr, NULL), -@@ -384,6 +396,7 @@ static struct bus_type hv_bus = { - .probe = vmbus_probe, - .uevent = vmbus_uevent, - .dev_attrs = vmbus_device_attrs, -+ .dev_groups = vmbus_groups, - }; - - static const char *driver_name = "hyperv"; ---- a/include/linux/hyperv.h -+++ b/include/linux/hyperv.h -@@ -903,7 +903,6 @@ enum vmbus_channel_state { - }; - - struct vmbus_channel_debug_info { -- u32 relid; - enum vmbus_channel_state state; - uuid_le interfacetype; - uuid_le interface_instance; diff --git a/i2o-convert-bus-code-to-use-dev_groups.patch b/i2o-convert-bus-code-to-use-dev_groups.patch deleted file mode 100644 index 097268b6aece3..0000000000000 --- a/i2o-convert-bus-code-to-use-dev_groups.patch +++ /dev/null @@ -1,109 +0,0 @@ -From foo@baz Mon Oct 7 18:15:13 PDT 2013 -Date: Mon, 07 Oct 2013 18:15:13 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: i2o: convert bus code to use dev_groups - -The dev_attrs field of struct bus_type is going away soon, dev_groups -should be used instead. This converts the i2o bus code to use the -correct field. - -Cc: Andrew Morton <akpm@linux-foundation.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/message/i2o/core.h | 2 +- - drivers/message/i2o/device.c | 32 +++++++++++++++++++++----------- - drivers/message/i2o/driver.c | 2 +- - 3 files changed, 23 insertions(+), 13 deletions(-) - ---- a/drivers/message/i2o/core.h -+++ b/drivers/message/i2o/core.h -@@ -33,7 +33,7 @@ extern int __init i2o_pci_init(void); - extern void __exit i2o_pci_exit(void); - - /* device */ --extern struct device_attribute i2o_device_attrs[]; -+extern const struct attribute_group *i2o_device_groups[]; - - extern void i2o_device_remove(struct i2o_device *); - extern int i2o_device_parse_lct(struct i2o_controller *); ---- a/drivers/message/i2o/device.c -+++ b/drivers/message/i2o/device.c -@@ -138,45 +138,55 @@ static void i2o_device_release(struct de - } - - /** -- * i2o_device_show_class_id - Displays class id of I2O device -+ * class_id_show - Displays class id of I2O device - * @dev: device of which the class id should be displayed - * @attr: pointer to device attribute - * @buf: buffer into which the class id should be printed - * - * Returns the number of bytes which are printed into the buffer. - */ --static ssize_t i2o_device_show_class_id(struct device *dev, -- struct device_attribute *attr, -- char *buf) -+static ssize_t class_id_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct i2o_device *i2o_dev = to_i2o_device(dev); - - sprintf(buf, "0x%03x\n", i2o_dev->lct_data.class_id); - return strlen(buf) + 1; - } -+static DEVICE_ATTR_RO(class_id); - - /** -- * i2o_device_show_tid - Displays TID of I2O device -+ * tid_show - Displays TID of I2O device - * @dev: device of which the TID should be displayed - * @attr: pointer to device attribute - * @buf: buffer into which the TID should be printed - * - * Returns the number of bytes which are printed into the buffer. - */ --static ssize_t i2o_device_show_tid(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t tid_show(struct device *dev, struct device_attribute *attr, -+ char *buf) - { - struct i2o_device *i2o_dev = to_i2o_device(dev); - - sprintf(buf, "0x%03x\n", i2o_dev->lct_data.tid); - return strlen(buf) + 1; - } -+static DEVICE_ATTR_RO(tid); - - /* I2O device attributes */ --struct device_attribute i2o_device_attrs[] = { -- __ATTR(class_id, S_IRUGO, i2o_device_show_class_id, NULL), -- __ATTR(tid, S_IRUGO, i2o_device_show_tid, NULL), -- __ATTR_NULL -+static struct attribute *i2o_device_attrs[] = { -+ &dev_attr_class_id.attr, -+ &dev_attr_tid.attr, -+ NULL, -+}; -+ -+static const struct attribute_group i2o_device_group = { -+ .attrs = i2o_device_attrs, -+}; -+ -+const struct attribute_group *i2o_device_groups[] = { -+ &i2o_device_group, -+ NULL, - }; - - /** ---- a/drivers/message/i2o/driver.c -+++ b/drivers/message/i2o/driver.c -@@ -62,7 +62,7 @@ static int i2o_bus_match(struct device * - struct bus_type i2o_bus_type = { - .name = "i2o", - .match = i2o_bus_match, -- .dev_attrs = i2o_device_attrs -+ .dev_groups = i2o_device_groups, - }; - - /** diff --git a/ide-convert-bus-code-to-use-dev_groups.patch b/ide-convert-bus-code-to-use-dev_groups.patch deleted file mode 100644 index 728914bc139dd..0000000000000 --- a/ide-convert-bus-code-to-use-dev_groups.patch +++ /dev/null @@ -1,126 +0,0 @@ -From foo@baz Sun Oct 6 13:26:44 PDT 2013 -Date: Sun, 06 Oct 2013 13:26:44 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: ide: convert bus code to use dev_groups - -The dev_attrs field of struct bus_type is going away soon, dev_groups -should be used instead. This converts the ide bus code to use the -correct field. - -Cc: David S. Miller <davem@davemloft.net> -Cc: <linux-ide@vger.kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - -David, I can take this through my driver-core tree if you don't want to -take it through yours, just let me know what works best for you. - - drivers/ide/ide-sysfs.c | 35 ++++++++++++++++++++++++++--------- - drivers/ide/ide.c | 2 +- - include/linux/ide.h | 2 +- - 3 files changed, 28 insertions(+), 11 deletions(-) - ---- a/drivers/ide/ide-sysfs.c -+++ b/drivers/ide/ide-sysfs.c -@@ -25,6 +25,7 @@ static ssize_t media_show(struct device - ide_drive_t *drive = to_ide_device(dev); - return sprintf(buf, "%s\n", ide_media_string(drive)); - } -+static DEVICE_ATTR_RO(media); - - static ssize_t drivename_show(struct device *dev, struct device_attribute *attr, - char *buf) -@@ -32,6 +33,7 @@ static ssize_t drivename_show(struct dev - ide_drive_t *drive = to_ide_device(dev); - return sprintf(buf, "%s\n", drive->name); - } -+static DEVICE_ATTR_RO(drivename); - - static ssize_t modalias_show(struct device *dev, struct device_attribute *attr, - char *buf) -@@ -39,6 +41,7 @@ static ssize_t modalias_show(struct devi - ide_drive_t *drive = to_ide_device(dev); - return sprintf(buf, "ide:m-%s\n", ide_media_string(drive)); - } -+static DEVICE_ATTR_RO(modalias); - - static ssize_t model_show(struct device *dev, struct device_attribute *attr, - char *buf) -@@ -46,6 +49,7 @@ static ssize_t model_show(struct device - ide_drive_t *drive = to_ide_device(dev); - return sprintf(buf, "%s\n", (char *)&drive->id[ATA_ID_PROD]); - } -+static DEVICE_ATTR_RO(model); - - static ssize_t firmware_show(struct device *dev, struct device_attribute *attr, - char *buf) -@@ -53,6 +57,7 @@ static ssize_t firmware_show(struct devi - ide_drive_t *drive = to_ide_device(dev); - return sprintf(buf, "%s\n", (char *)&drive->id[ATA_ID_FW_REV]); - } -+static DEVICE_ATTR_RO(firmware); - - static ssize_t serial_show(struct device *dev, struct device_attribute *attr, - char *buf) -@@ -60,16 +65,28 @@ static ssize_t serial_show(struct device - ide_drive_t *drive = to_ide_device(dev); - return sprintf(buf, "%s\n", (char *)&drive->id[ATA_ID_SERNO]); - } -+static DEVICE_ATTR(serial, 0400, serial_show, NULL); - --struct device_attribute ide_dev_attrs[] = { -- __ATTR_RO(media), -- __ATTR_RO(drivename), -- __ATTR_RO(modalias), -- __ATTR_RO(model), -- __ATTR_RO(firmware), -- __ATTR(serial, 0400, serial_show, NULL), -- __ATTR(unload_heads, 0644, ide_park_show, ide_park_store), -- __ATTR_NULL -+static DEVICE_ATTR(unload_heads, 0644, ide_park_show, ide_park_store); -+ -+static struct attribute *ide_attrs[] = { -+ &dev_attr_media.attr, -+ &dev_attr_drivename.attr, -+ &dev_attr_modalias.attr, -+ &dev_attr_model.attr, -+ &dev_attr_firmware.attr, -+ &dev_attr_serial.attr, -+ &dev_attr_unload_heads.attr, -+ NULL, -+}; -+ -+static const struct attribute_group ide_attr_group = { -+ .attrs = ide_attrs, -+}; -+ -+const struct attribute_group *ide_dev_groups[] = { -+ &ide_attr_group, -+ NULL, - }; - - static ssize_t store_delete_devices(struct device *portdev, ---- a/drivers/ide/ide.c -+++ b/drivers/ide/ide.c -@@ -158,7 +158,7 @@ struct bus_type ide_bus_type = { - .probe = generic_ide_probe, - .remove = generic_ide_remove, - .shutdown = generic_ide_shutdown, -- .dev_attrs = ide_dev_attrs, -+ .dev_groups = ide_dev_groups, - .suspend = generic_ide_suspend, - .resume = generic_ide_resume, - }; ---- a/include/linux/ide.h -+++ b/include/linux/ide.h -@@ -1514,7 +1514,7 @@ static inline void ide_set_max_pio(ide_d - - char *ide_media_string(ide_drive_t *); - --extern struct device_attribute ide_dev_attrs[]; -+extern const struct attribute_group *ide_dev_groups[]; - extern struct bus_type ide_bus_type; - extern struct class *ide_port_class; - diff --git a/input-gameport-convert-bus-code-to-use-dev_groups.patch b/input-gameport-convert-bus-code-to-use-dev_groups.patch deleted file mode 100644 index c388af43bb36f..0000000000000 --- a/input-gameport-convert-bus-code-to-use-dev_groups.patch +++ /dev/null @@ -1,66 +0,0 @@ -From foo@baz Mon Oct 7 18:09:45 PDT 2013 -Date: Mon, 07 Oct 2013 18:09:45 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: input: gameport: convert bus code to use dev_groups - -The dev_attrs field of struct bus_type is going away soon, dev_groups -should be used instead. This converts the gameport bus code to use the -correct field. - -Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> -Cc: <linux-input@vger.kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/input/gameport/gameport.c | 17 ++++++++++------- - 1 file changed, 10 insertions(+), 7 deletions(-) - ---- a/drivers/input/gameport/gameport.c -+++ b/drivers/input/gameport/gameport.c -@@ -422,14 +422,15 @@ static struct gameport *gameport_get_pen - * Gameport port operations - */ - --static ssize_t gameport_show_description(struct device *dev, struct device_attribute *attr, char *buf) -+static ssize_t gameport_description_show(struct device *dev, struct device_attribute *attr, char *buf) - { - struct gameport *gameport = to_gameport_port(dev); - - return sprintf(buf, "%s\n", gameport->name); - } -+static DEVICE_ATTR(description, S_IRUGO, gameport_description_show, NULL); - --static ssize_t gameport_rebind_driver(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) -+static ssize_t drvctl_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) - { - struct gameport *gameport = to_gameport_port(dev); - struct device_driver *drv; -@@ -457,12 +458,14 @@ static ssize_t gameport_rebind_driver(st - - return error ? error : count; - } -+static DEVICE_ATTR_WO(drvctl); - --static struct device_attribute gameport_device_attrs[] = { -- __ATTR(description, S_IRUGO, gameport_show_description, NULL), -- __ATTR(drvctl, S_IWUSR, NULL, gameport_rebind_driver), -- __ATTR_NULL -+static struct attribute *gameport_device_attrs[] = { -+ &dev_attr_description.attr, -+ &dev_attr_drvctl.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(gameport_device); - - static void gameport_release_port(struct device *dev) - { -@@ -750,7 +753,7 @@ static int gameport_bus_match(struct dev - - static struct bus_type gameport_bus = { - .name = "gameport", -- .dev_attrs = gameport_device_attrs, -+ .dev_groups = gameport_device_groups, - .drv_groups = gameport_driver_groups, - .match = gameport_bus_match, - .probe = gameport_driver_probe, diff --git a/input-serio-remove-bus-usage-of-dev_attrs.patch b/input-serio-remove-bus-usage-of-dev_attrs.patch deleted file mode 100644 index 43ba0e10413ab..0000000000000 --- a/input-serio-remove-bus-usage-of-dev_attrs.patch +++ /dev/null @@ -1,112 +0,0 @@ -From foo@baz Mon Oct 7 18:03:09 PDT 2013 -Date: Mon, 07 Oct 2013 18:03:09 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: [PATCH 02/02] input: serio: remove bus usage of dev_attrs - -The dev_attrs field of struct bus_type is going away soon, so move the -remaining sysfs files that are being described with this field to use -dev_groups instead. - -Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> -Cc: <linux-input@vger.kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/input/serio/serio.c | 62 +++++++++++++++++++++----------------------- - 1 file changed, 30 insertions(+), 32 deletions(-) - ---- a/drivers/input/serio/serio.c -+++ b/drivers/input/serio/serio.c -@@ -365,7 +365,7 @@ static ssize_t serio_show_description(st - return sprintf(buf, "%s\n", serio->name); - } - --static ssize_t serio_show_modalias(struct device *dev, struct device_attribute *attr, char *buf) -+static ssize_t modalias_show(struct device *dev, struct device_attribute *attr, char *buf) - { - struct serio *serio = to_serio_port(dev); - -@@ -397,30 +397,7 @@ static ssize_t extra_show(struct device - return sprintf(buf, "%02x\n", serio->id.extra); - } - --static DEVICE_ATTR_RO(type); --static DEVICE_ATTR_RO(proto); --static DEVICE_ATTR_RO(id); --static DEVICE_ATTR_RO(extra); -- --static struct attribute *serio_device_id_attrs[] = { -- &dev_attr_type.attr, -- &dev_attr_proto.attr, -- &dev_attr_id.attr, -- &dev_attr_extra.attr, -- NULL --}; -- --static struct attribute_group serio_id_attr_group = { -- .name = "id", -- .attrs = serio_device_id_attrs, --}; -- --static const struct attribute_group *serio_device_attr_groups[] = { -- &serio_id_attr_group, -- NULL --}; -- --static ssize_t serio_rebind_driver(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) -+static ssize_t drvctl_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) - { - struct serio *serio = to_serio_port(dev); - struct device_driver *drv; -@@ -474,14 +451,36 @@ static ssize_t serio_set_bind_mode(struc - return retval; - } - --static struct device_attribute serio_device_attrs[] = { -- __ATTR(description, S_IRUGO, serio_show_description, NULL), -- __ATTR(modalias, S_IRUGO, serio_show_modalias, NULL), -- __ATTR(drvctl, S_IWUSR, NULL, serio_rebind_driver), -- __ATTR(bind_mode, S_IWUSR | S_IRUGO, serio_show_bind_mode, serio_set_bind_mode), -- __ATTR_NULL -+static DEVICE_ATTR_RO(type); -+static DEVICE_ATTR_RO(proto); -+static DEVICE_ATTR_RO(id); -+static DEVICE_ATTR_RO(extra); -+static DEVICE_ATTR_RO(modalias); -+static DEVICE_ATTR_WO(drvctl); -+static DEVICE_ATTR(description, S_IRUGO, serio_show_description, NULL); -+static DEVICE_ATTR(bind_mode, S_IWUSR | S_IRUGO, serio_show_bind_mode, serio_set_bind_mode); -+ -+static struct attribute *serio_device_id_attrs[] = { -+ &dev_attr_type.attr, -+ &dev_attr_proto.attr, -+ &dev_attr_id.attr, -+ &dev_attr_extra.attr, -+ &dev_attr_modalias.attr, -+ &dev_attr_description.attr, -+ &dev_attr_drvctl.attr, -+ &dev_attr_bind_mode.attr, -+ NULL -+}; -+ -+static struct attribute_group serio_id_attr_group = { -+ .name = "id", -+ .attrs = serio_device_id_attrs, - }; - -+static const struct attribute_group *serio_device_attr_groups[] = { -+ &serio_id_attr_group, -+ NULL -+}; - - static void serio_release_port(struct device *dev) - { -@@ -996,7 +995,6 @@ EXPORT_SYMBOL(serio_interrupt); - - static struct bus_type serio_bus = { - .name = "serio", -- .dev_attrs = serio_device_attrs, - .drv_groups = serio_driver_groups, - .match = serio_bus_match, - .uevent = serio_uevent, diff --git a/input-serio-use-device_attr_ro.patch b/input-serio-use-device_attr_ro.patch deleted file mode 100644 index 9c838730d460e..0000000000000 --- a/input-serio-use-device_attr_ro.patch +++ /dev/null @@ -1,62 +0,0 @@ -From foo@baz Mon Oct 7 18:00:52 PDT 2013 -Date: Mon, 07 Oct 2013 18:00:52 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: [PATCH 01/02] input: serio: use DEVICE_ATTR_RO() - -Convert the serio sysfs fiels to use the DEVICE_ATTR_RO() macros to make -it easier to audit the correct sysfs file permission usage. - -Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> -Cc: <linux-input@vger.kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/input/serio/serio.c | 16 ++++++++-------- - 1 file changed, 8 insertions(+), 8 deletions(-) - ---- a/drivers/input/serio/serio.c -+++ b/drivers/input/serio/serio.c -@@ -373,34 +373,34 @@ static ssize_t serio_show_modalias(struc - serio->id.type, serio->id.proto, serio->id.id, serio->id.extra); - } - --static ssize_t serio_show_id_type(struct device *dev, struct device_attribute *attr, char *buf) -+static ssize_t type_show(struct device *dev, struct device_attribute *attr, char *buf) - { - struct serio *serio = to_serio_port(dev); - return sprintf(buf, "%02x\n", serio->id.type); - } - --static ssize_t serio_show_id_proto(struct device *dev, struct device_attribute *attr, char *buf) -+static ssize_t proto_show(struct device *dev, struct device_attribute *attr, char *buf) - { - struct serio *serio = to_serio_port(dev); - return sprintf(buf, "%02x\n", serio->id.proto); - } - --static ssize_t serio_show_id_id(struct device *dev, struct device_attribute *attr, char *buf) -+static ssize_t id_show(struct device *dev, struct device_attribute *attr, char *buf) - { - struct serio *serio = to_serio_port(dev); - return sprintf(buf, "%02x\n", serio->id.id); - } - --static ssize_t serio_show_id_extra(struct device *dev, struct device_attribute *attr, char *buf) -+static ssize_t extra_show(struct device *dev, struct device_attribute *attr, char *buf) - { - struct serio *serio = to_serio_port(dev); - return sprintf(buf, "%02x\n", serio->id.extra); - } - --static DEVICE_ATTR(type, S_IRUGO, serio_show_id_type, NULL); --static DEVICE_ATTR(proto, S_IRUGO, serio_show_id_proto, NULL); --static DEVICE_ATTR(id, S_IRUGO, serio_show_id_id, NULL); --static DEVICE_ATTR(extra, S_IRUGO, serio_show_id_extra, NULL); -+static DEVICE_ATTR_RO(type); -+static DEVICE_ATTR_RO(proto); -+static DEVICE_ATTR_RO(id); -+static DEVICE_ATTR_RO(extra); - - static struct attribute *serio_device_id_attrs[] = { - &dev_attr_type.attr, diff --git a/ipack-convert-bus-code-to-use-dev_groups.patch b/ipack-convert-bus-code-to-use-dev_groups.patch deleted file mode 100644 index f0864cf6b0a88..0000000000000 --- a/ipack-convert-bus-code-to-use-dev_groups.patch +++ /dev/null @@ -1,62 +0,0 @@ -From foo@baz Sun Oct 6 13:29:07 PDT 2013 -Date: Sun, 06 Oct 2013 13:29:07 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: ipack: convert bus code to use dev_groups - -The dev_attrs field of struct bus_type is going away soon, dev_groups -should be used instead. This converts the ipack bus code to use the -correct field. - -Cc: Samuel Iglesias Gonsalvez <siglesias@igalia.com> -Cc: Jens Taprogge <jens.taprogge@taprogge.org> -Cc: <industrypack-devel@lists.sourceforge.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - -Samuel and Jens, I can take this through my driver-core tree if you -don't want to take it through yours, just let me know what works best -for you. - - drivers/ipack/ipack.c | 22 +++++++++++++++------- - 1 file changed, 15 insertions(+), 7 deletions(-) - ---- a/drivers/ipack/ipack.c -+++ b/drivers/ipack/ipack.c -@@ -180,20 +180,28 @@ static ssize_t modalias_show(struct devi - - ipack_device_attr(id_format, "0x%hhu\n"); - --static struct device_attribute ipack_dev_attrs[] = { -- __ATTR_RO(id), -- __ATTR_RO(id_device), -- __ATTR_RO(id_format), -- __ATTR_RO(id_vendor), -- __ATTR_RO(modalias), -+static DEVICE_ATTR_RO(id); -+static DEVICE_ATTR_RO(id_device); -+static DEVICE_ATTR_RO(id_format); -+static DEVICE_ATTR_RO(id_vendor); -+static DEVICE_ATTR_RO(modalias); -+ -+static struct attribute *ipack_attrs[] = { -+ &dev_attr_id.attr, -+ &dev_attr_id_device.attr, -+ &dev_attr_id_format.attr, -+ &dev_attr_id_vendor.attr, -+ &dev_attr_modalias.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(ipack); - - static struct bus_type ipack_bus_type = { - .name = "ipack", - .probe = ipack_bus_probe, - .match = ipack_bus_match, - .remove = ipack_bus_remove, -- .dev_attrs = ipack_dev_attrs, -+ .dev_groups = ipack_groups, - .uevent = ipack_uevent, - }; - diff --git a/mdio_bus-convert-bus-code-to-use-dev_groups.patch b/mdio_bus-convert-bus-code-to-use-dev_groups.patch deleted file mode 100644 index 956056b882fb5..0000000000000 --- a/mdio_bus-convert-bus-code-to-use-dev_groups.patch +++ /dev/null @@ -1,46 +0,0 @@ -From foo@baz Sun Oct 6 13:31:27 PDT 2013 -Date: Sun, 06 Oct 2013 13:31:27 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: mdio_bus: convert bus code to use dev_groups - -The dev_attrs field of struct bus_type is going away soon, dev_groups -should be used instead. This converts the MDIO bus code to use the -correct field. - -Cc: David S. Miller <davem@davemloft.net> -Cc: Mark Brown <broonie@opensource.wolfsonmicro.com> -Cc: Nick Bowler <nbowler@elliptictech.com> -Cc: <netdev@vger.kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/net/phy/mdio_bus.c | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - ---- a/drivers/net/phy/mdio_bus.c -+++ b/drivers/net/phy/mdio_bus.c -@@ -438,17 +438,19 @@ phy_id_show(struct device *dev, struct d - - return sprintf(buf, "0x%.8lx\n", (unsigned long)phydev->phy_id); - } -+static DEVICE_ATTR_RO(phy_id); - --static struct device_attribute mdio_dev_attrs[] = { -- __ATTR_RO(phy_id), -- __ATTR_NULL -+static struct attribute *mdio_dev_attrs[] = { -+ &dev_attr_phy_id.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(mdio_dev); - - struct bus_type mdio_bus_type = { - .name = "mdio_bus", - .match = mdio_bus_match, - .pm = MDIO_BUS_PM_OPS, -- .dev_attrs = mdio_dev_attrs, -+ .dev_groups = mdio_dev_groups, - }; - EXPORT_SYMBOL(mdio_bus_type); - diff --git a/memstick-convert-bus-code-to-use-dev_groups.patch b/memstick-convert-bus-code-to-use-dev_groups.patch deleted file mode 100644 index 6d5b1b0d2f3a9..0000000000000 --- a/memstick-convert-bus-code-to-use-dev_groups.patch +++ /dev/null @@ -1,52 +0,0 @@ -From foo@baz Mon Oct 7 18:14:24 PDT 2013 -Date: Mon, 07 Oct 2013 18:14:24 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: memstick: convert bus code to use dev_groups - -The dev_attrs field of struct bus_type is going away soon, dev_groups -should be used instead. This converts the memstick bus code to use the -correct field. - -Cc: Andrew Morton <akpm@linux-foundation.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/memstick/core/memstick.c | 18 +++++++++--------- - 1 file changed, 9 insertions(+), 9 deletions(-) - ---- a/drivers/memstick/core/memstick.c -+++ b/drivers/memstick/core/memstick.c -@@ -153,24 +153,24 @@ static ssize_t name##_show(struct device - struct memstick_dev *card = container_of(dev, struct memstick_dev, \ - dev); \ - return sprintf(buf, format, card->id.name); \ --} -+} \ -+static DEVICE_ATTR_RO(name); - - MEMSTICK_ATTR(type, "%02X"); - MEMSTICK_ATTR(category, "%02X"); - MEMSTICK_ATTR(class, "%02X"); - --#define MEMSTICK_ATTR_RO(name) __ATTR(name, S_IRUGO, name##_show, NULL) -- --static struct device_attribute memstick_dev_attrs[] = { -- MEMSTICK_ATTR_RO(type), -- MEMSTICK_ATTR_RO(category), -- MEMSTICK_ATTR_RO(class), -- __ATTR_NULL -+static struct attribute *memstick_dev_attrs[] = { -+ &dev_attr_type.attr, -+ &dev_attr_category.attr, -+ &dev_attr_class.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(memstick_dev); - - static struct bus_type memstick_bus_type = { - .name = "memstick", -- .dev_attrs = memstick_dev_attrs, -+ .dev_groups = memstick_dev_groups, - .match = memstick_bus_match, - .uevent = memstick_uevent, - .probe = memstick_device_probe, diff --git a/mmc-convert-bus-code-to-use-dev_groups.patch b/mmc-convert-bus-code-to-use-dev_groups.patch deleted file mode 100644 index 7cd0a254a74be..0000000000000 --- a/mmc-convert-bus-code-to-use-dev_groups.patch +++ /dev/null @@ -1,103 +0,0 @@ -From foo@baz Sun Oct 6 13:36:04 PDT 2013 -Date: Sun, 06 Oct 2013 13:36:04 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: MMC: convert bus code to use dev_groups - -The dev_attrs field of struct bus_type is going away soon, dev_groups -should be used instead. This converts the MMC bus code to use the -correct field. - -Cc: Chris Ball <cjb@laptop.org> -Cc: Ulf Hansson <ulf.hansson@linaro.org> -Cc: Konstantin Dorfman <kdorfman@codeaurora.org> -Cc: Seungwon Jeon <tgih.jun@samsung.com> -Cc: <linux-mmc@vger.kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/mmc/core/bus.c | 12 +++++++----- - drivers/mmc/core/sdio_bus.c | 19 +++++++++++-------- - 2 files changed, 18 insertions(+), 13 deletions(-) - ---- a/drivers/mmc/core/bus.c -+++ b/drivers/mmc/core/bus.c -@@ -27,7 +27,7 @@ - - #define to_mmc_driver(d) container_of(d, struct mmc_driver, drv) - --static ssize_t mmc_type_show(struct device *dev, -+static ssize_t type_show(struct device *dev, - struct device_attribute *attr, char *buf) - { - struct mmc_card *card = mmc_dev_to_card(dev); -@@ -45,11 +45,13 @@ static ssize_t mmc_type_show(struct devi - return -EFAULT; - } - } -+static DEVICE_ATTR_RO(type); - --static struct device_attribute mmc_dev_attrs[] = { -- __ATTR(type, S_IRUGO, mmc_type_show, NULL), -- __ATTR_NULL, -+static struct attribute *mmc_dev_attrs[] = { -+ &dev_attr_type.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(mmc_dev); - - /* - * This currently matches any MMC driver to any MMC card - drivers -@@ -218,7 +220,7 @@ static const struct dev_pm_ops mmc_bus_p - - static struct bus_type mmc_bus_type = { - .name = "mmc", -- .dev_attrs = mmc_dev_attrs, -+ .dev_groups = mmc_dev_groups, - .match = mmc_bus_match, - .uevent = mmc_bus_uevent, - .probe = mmc_bus_probe, ---- a/drivers/mmc/core/sdio_bus.c -+++ b/drivers/mmc/core/sdio_bus.c -@@ -34,7 +34,8 @@ field##_show(struct device *dev, struct - \ - func = dev_to_sdio_func (dev); \ - return sprintf (buf, format_string, func->field); \ --} -+} \ -+static DEVICE_ATTR_RO(field) - - sdio_config_attr(class, "0x%02x\n"); - sdio_config_attr(vendor, "0x%04x\n"); -@@ -47,14 +48,16 @@ static ssize_t modalias_show(struct devi - return sprintf(buf, "sdio:c%02Xv%04Xd%04X\n", - func->class, func->vendor, func->device); - } -+static DEVICE_ATTR_RO(modalias); - --static struct device_attribute sdio_dev_attrs[] = { -- __ATTR_RO(class), -- __ATTR_RO(vendor), -- __ATTR_RO(device), -- __ATTR_RO(modalias), -- __ATTR_NULL, -+static struct attribute *sdio_dev_attrs[] = { -+ &dev_attr_class.attr, -+ &dev_attr_vendor.attr, -+ &dev_attr_device.attr, -+ &dev_attr_modalias.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(sdio_dev); - - static const struct sdio_device_id *sdio_match_one(struct sdio_func *func, - const struct sdio_device_id *id) -@@ -225,7 +228,7 @@ static const struct dev_pm_ops sdio_bus_ - - static struct bus_type sdio_bus_type = { - .name = "sdio", -- .dev_attrs = sdio_dev_attrs, -+ .dev_groups = sdio_dev_groups, - .match = sdio_bus_match, - .uevent = sdio_bus_uevent, - .probe = sdio_bus_probe, diff --git a/p26.patch b/p26.patch index c711df6ed9ad3..63cc6492ca078 100644 --- a/p26.patch +++ b/p26.patch @@ -5,7 +5,7 @@ --- a/drivers/macintosh/macio_asic.c +++ b/drivers/macintosh/macio_asic.c -@@ -132,7 +132,7 @@ static int macio_device_resume(struct de +@@ -134,7 +134,7 @@ static int macio_device_resume(struct de return 0; } @@ -14,7 +14,7 @@ struct bus_type macio_bus_type = { .name = "macio", -@@ -143,7 +143,7 @@ struct bus_type macio_bus_type = { +@@ -145,7 +145,7 @@ struct bus_type macio_bus_type = { .shutdown = macio_device_shutdown, .suspend = macio_device_suspend, .resume = macio_device_resume, diff --git a/pci-convert-bus-code-to-use-bus_groups.patch b/pci-convert-bus-code-to-use-bus_groups.patch deleted file mode 100644 index f71d9b11507c5..0000000000000 --- a/pci-convert-bus-code-to-use-bus_groups.patch +++ /dev/null @@ -1,66 +0,0 @@ -From foo@baz Fri Aug 23 13:13:27 PDT 2013 -Date: Fri, 23 Aug 2013 13:13:27 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: PCI: convert bus code to use bus_groups - -The bus_attrs field of struct bus_type is going away soon, dev_groups -should be used instead. This converts the PCI bus code to use the -correct field. - -Cc: Bjorn Helgaas <bhelgaas@google.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/pci/pci-driver.c | 2 +- - drivers/pci/pci-sysfs.c | 16 +++++++++++++--- - drivers/pci/pci.h | 2 +- - 3 files changed, 15 insertions(+), 5 deletions(-) - ---- a/drivers/pci/pci-driver.c -+++ b/drivers/pci/pci-driver.c -@@ -1317,7 +1317,7 @@ struct bus_type pci_bus_type = { - .remove = pci_device_remove, - .shutdown = pci_device_shutdown, - .dev_attrs = pci_dev_attrs, -- .bus_attrs = pci_bus_attrs, -+ .bus_groups = pci_bus_groups, - .drv_attrs = pci_drv_attrs, - .pm = PCI_PM_OPS_PTR, - }; ---- a/drivers/pci/pci-sysfs.c -+++ b/drivers/pci/pci-sysfs.c -@@ -302,10 +302,20 @@ static ssize_t bus_rescan_store(struct b - } - return count; - } -+static BUS_ATTR(rescan, (S_IWUSR|S_IWGRP), NULL, bus_rescan_store); - --struct bus_attribute pci_bus_attrs[] = { -- __ATTR(rescan, (S_IWUSR|S_IWGRP), NULL, bus_rescan_store), -- __ATTR_NULL -+struct attribute *pci_bus_attrs[] = { -+ &bus_attr_rescan.attr, -+ NULL, -+}; -+ -+static const struct attribute_group pci_bus_group = { -+ .attrs = pci_bus_attrs, -+}; -+ -+const struct attribute_group *pci_bus_groups[] = { -+ &pci_bus_group, -+ NULL, - }; - - static ssize_t ---- a/drivers/pci/pci.h -+++ b/drivers/pci/pci.h -@@ -156,7 +156,7 @@ static inline int pci_no_d1d2(struct pci - extern struct device_attribute pci_dev_attrs[]; - extern const struct attribute_group *pcibus_groups[]; - extern struct device_type pci_dev_type; --extern struct bus_attribute pci_bus_attrs[]; -+extern const struct attribute_group *pci_bus_groups[]; - - - /** diff --git a/pci-convert-bus-code-to-use-drv_groups.patch b/pci-convert-bus-code-to-use-drv_groups.patch deleted file mode 100644 index dfea6ff49cb6b..0000000000000 --- a/pci-convert-bus-code-to-use-drv_groups.patch +++ /dev/null @@ -1,54 +0,0 @@ -From foo@baz Fri Aug 23 13:59:52 PDT 2013 -Date: Fri, 23 Aug 2013 13:59:52 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: PCI: convert bus code to use drv_groups - -The drv_attrs field of struct bus_type is going away soon, drv_groups -should be used instead. This converts the PCI bus code to use the -correct field. - -Cc: Bjorn Helgaas <bhelgaas@google.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/pci/pci-driver.c | 13 ++++++++----- - 1 file changed, 8 insertions(+), 5 deletions(-) - ---- a/drivers/pci/pci-driver.c -+++ b/drivers/pci/pci-driver.c -@@ -135,6 +135,7 @@ store_new_id(struct device_driver *drive - return retval; - return count; - } -+static DRIVER_ATTR(new_id, S_IWUSR, NULL, store_new_id); - - /** - * store_remove_id - remove a PCI device ID from this driver -@@ -180,12 +181,14 @@ store_remove_id(struct device_driver *dr - return retval; - return count; - } -+static DRIVER_ATTR(remove_id, S_IWUSR, NULL, store_remove_id); - --static struct driver_attribute pci_drv_attrs[] = { -- __ATTR(new_id, S_IWUSR, NULL, store_new_id), -- __ATTR(remove_id, S_IWUSR, NULL, store_remove_id), -- __ATTR_NULL, -+static struct attribute *pci_drv_attrs[] = { -+ &driver_attr_new_id.attr, -+ &driver_attr_remove_id.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(pci_drv); - - /** - * pci_match_id - See if a pci device matches a given pci_id table -@@ -1318,7 +1321,7 @@ struct bus_type pci_bus_type = { - .shutdown = pci_device_shutdown, - .dev_attrs = pci_dev_attrs, - .bus_groups = pci_bus_groups, -- .drv_attrs = pci_drv_attrs, -+ .drv_groups = pci_drv_groups, - .pm = PCI_PM_OPS_PTR, - }; - diff --git a/pcmcia-convert-bus-code-to-use-dev_groups.patch b/pcmcia-convert-bus-code-to-use-dev_groups.patch deleted file mode 100644 index 9842fc2c16ccd..0000000000000 --- a/pcmcia-convert-bus-code-to-use-dev_groups.patch +++ /dev/null @@ -1,150 +0,0 @@ -From foo@baz Sun Oct 6 13:39:27 PDT 2013 -Date: Sun, 06 Oct 2013 13:39:27 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: pcmcia: convert bus code to use dev_groups - -The dev_attrs field of struct bus_type is going away soon, dev_groups -should be used instead. This converts the pcmcia bus code to use the -correct field. - -Cc: Bill Pemberton <wfp5p@virginia.edu> -Cc: <linux-pcmcia@lists.infradead.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/pcmcia/ds.c | 63 +++++++++++++++++++++++++++++++--------------------- - 1 file changed, 38 insertions(+), 25 deletions(-) - ---- a/drivers/pcmcia/ds.c -+++ b/drivers/pcmcia/ds.c -@@ -992,16 +992,17 @@ static ssize_t field##_show (struct devi - { \ - struct pcmcia_device *p_dev = to_pcmcia_dev(dev); \ - return p_dev->test ? sprintf(buf, format, p_dev->field) : -ENODEV; \ --} -+} \ -+static DEVICE_ATTR_RO(field); - - #define pcmcia_device_stringattr(name, field) \ - static ssize_t name##_show (struct device *dev, struct device_attribute *attr, char *buf) \ - { \ - struct pcmcia_device *p_dev = to_pcmcia_dev(dev); \ - return p_dev->field ? sprintf(buf, "%s\n", p_dev->field) : -ENODEV; \ --} -+} \ -+static DEVICE_ATTR_RO(name); - --pcmcia_device_attr(func, socket, "0x%02x\n"); - pcmcia_device_attr(func_id, has_func_id, "0x%02x\n"); - pcmcia_device_attr(manf_id, has_manf_id, "0x%04x\n"); - pcmcia_device_attr(card_id, has_card_id, "0x%04x\n"); -@@ -1010,8 +1011,16 @@ pcmcia_device_stringattr(prod_id2, prod_ - pcmcia_device_stringattr(prod_id3, prod_id[2]); - pcmcia_device_stringattr(prod_id4, prod_id[3]); - --static ssize_t pcmcia_show_resources(struct device *dev, -- struct device_attribute *attr, char *buf) -+static ssize_t function_show(struct device *dev, struct device_attribute *attr, -+ char *buf) -+{ -+ struct pcmcia_device *p_dev = to_pcmcia_dev(dev); -+ return p_dev->socket ? sprintf(buf, "0x%02x\n", p_dev->func) : -ENODEV; -+} -+static DEVICE_ATTR_RO(function); -+ -+static ssize_t resources_show(struct device *dev, -+ struct device_attribute *attr, char *buf) - { - struct pcmcia_device *p_dev = to_pcmcia_dev(dev); - char *str = buf; -@@ -1022,8 +1031,9 @@ static ssize_t pcmcia_show_resources(str - - return str - buf; - } -+static DEVICE_ATTR_RO(resources); - --static ssize_t pcmcia_show_pm_state(struct device *dev, struct device_attribute *attr, char *buf) -+static ssize_t pm_state_show(struct device *dev, struct device_attribute *attr, char *buf) - { - struct pcmcia_device *p_dev = to_pcmcia_dev(dev); - -@@ -1033,8 +1043,8 @@ static ssize_t pcmcia_show_pm_state(stru - return sprintf(buf, "on\n"); - } - --static ssize_t pcmcia_store_pm_state(struct device *dev, struct device_attribute *attr, -- const char *buf, size_t count) -+static ssize_t pm_state_store(struct device *dev, struct device_attribute *attr, -+ const char *buf, size_t count) - { - struct pcmcia_device *p_dev = to_pcmcia_dev(dev); - int ret = 0; -@@ -1049,7 +1059,7 @@ static ssize_t pcmcia_store_pm_state(str - - return ret ? ret : count; - } -- -+static DEVICE_ATTR_RW(pm_state); - - static ssize_t modalias_show(struct device *dev, struct device_attribute *attr, char *buf) - { -@@ -1072,8 +1082,9 @@ static ssize_t modalias_show(struct devi - p_dev->func, p_dev->device_no, - hash[0], hash[1], hash[2], hash[3]); - } -+static DEVICE_ATTR_RO(modalias); - --static ssize_t pcmcia_store_allow_func_id_match(struct device *dev, -+static ssize_t allow_func_id_match_store(struct device *dev, - struct device_attribute *attr, const char *buf, size_t count) - { - struct pcmcia_device *p_dev = to_pcmcia_dev(dev); -@@ -1088,22 +1099,24 @@ static ssize_t pcmcia_store_allow_func_i - - return count; - } -+static DEVICE_ATTR_WO(allow_func_id_match); - --static struct device_attribute pcmcia_dev_attrs[] = { -- __ATTR(function, 0444, func_show, NULL), -- __ATTR(pm_state, 0644, pcmcia_show_pm_state, pcmcia_store_pm_state), -- __ATTR(resources, 0444, pcmcia_show_resources, NULL), -- __ATTR_RO(func_id), -- __ATTR_RO(manf_id), -- __ATTR_RO(card_id), -- __ATTR_RO(prod_id1), -- __ATTR_RO(prod_id2), -- __ATTR_RO(prod_id3), -- __ATTR_RO(prod_id4), -- __ATTR_RO(modalias), -- __ATTR(allow_func_id_match, 0200, NULL, pcmcia_store_allow_func_id_match), -- __ATTR_NULL, -+static struct attribute *pcmcia_dev_attrs[] = { -+ &dev_attr_resources.attr, -+ &dev_attr_pm_state.attr, -+ &dev_attr_function.attr, -+ &dev_attr_func_id.attr, -+ &dev_attr_manf_id.attr, -+ &dev_attr_card_id.attr, -+ &dev_attr_prod_id1.attr, -+ &dev_attr_prod_id2.attr, -+ &dev_attr_prod_id3.attr, -+ &dev_attr_prod_id4.attr, -+ &dev_attr_modalias.attr, -+ &dev_attr_allow_func_id_match.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(pcmcia_dev); - - /* PM support, also needed for reset */ - -@@ -1389,7 +1402,7 @@ struct bus_type pcmcia_bus_type = { - .name = "pcmcia", - .uevent = pcmcia_bus_uevent, - .match = pcmcia_bus_match, -- .dev_attrs = pcmcia_dev_attrs, -+ .dev_groups = pcmcia_dev_groups, - .probe = pcmcia_device_probe, - .remove = pcmcia_device_remove, - .suspend = pcmcia_dev_suspend, diff --git a/pmu_bus-convert-bus-code-to-use-dev_groups.patch b/pmu_bus-convert-bus-code-to-use-dev_groups.patch deleted file mode 100644 index 7e046e942223a..0000000000000 --- a/pmu_bus-convert-bus-code-to-use-dev_groups.patch +++ /dev/null @@ -1,54 +0,0 @@ -From foo@baz Fri Aug 23 14:18:17 PDT 2013 -Date: Fri, 23 Aug 2013 14:18:17 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: pmu_bus: convert bus code to use dev_groups - -The dev_attrs field of struct bus_type is going away soon, dev_groups -should be used instead. This converts the pmu bus code to use -the correct field. - -Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> -Cc: Paul Mackerras <paulus@samba.org> -Cc: Ingo Molnar <mingo@redhat.com> -Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - kernel/events/core.c | 13 ++++++++----- - 1 file changed, 8 insertions(+), 5 deletions(-) - ---- a/kernel/events/core.c -+++ b/kernel/events/core.c -@@ -6292,6 +6292,7 @@ type_show(struct device *dev, struct dev - - return snprintf(page, PAGE_SIZE-1, "%d\n", pmu->type); - } -+static DEVICE_ATTR_RO(type); - - static ssize_t - perf_event_mux_interval_ms_show(struct device *dev, -@@ -6336,17 +6337,19 @@ perf_event_mux_interval_ms_store(struct - - return count; - } -+static DEVICE_ATTR_RW(perf_event_mux_interval_ms); - --static struct device_attribute pmu_dev_attrs[] = { -- __ATTR_RO(type), -- __ATTR_RW(perf_event_mux_interval_ms), -- __ATTR_NULL, -+static struct attribute *pmu_dev_attrs[] = { -+ &dev_attr_type.attr, -+ &dev_attr_perf_event_mux_interval_ms.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(pmu_dev); - - static int pmu_bus_running; - static struct bus_type pmu_bus = { - .name = "event_source", -- .dev_attrs = pmu_dev_attrs, -+ .dev_groups = pmu_dev_groups, - }; - - static void pmu_dev_release(struct device *dev) diff --git a/pnp-convert-bus-code-to-use-dev_groups.patch b/pnp-convert-bus-code-to-use-dev_groups.patch deleted file mode 100644 index b9150be474e93..0000000000000 --- a/pnp-convert-bus-code-to-use-dev_groups.patch +++ /dev/null @@ -1,123 +0,0 @@ -From foo@baz Sun Oct 6 13:34:21 PDT 2013 -Date: Sun, 06 Oct 2013 13:34:21 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: PNP: convert bus code to use dev_groups - -The dev_attrs field of struct bus_type is going away soon, dev_groups -should be used instead. This converts the PNP bus code to use the -correct field. - -Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com> -Cc: Bjorn Helgaas <bhelgaas@google.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/pnp/base.h | 2 +- - drivers/pnp/driver.c | 2 +- - drivers/pnp/interface.c | 43 ++++++++++++++++++++++++++----------------- - 3 files changed, 28 insertions(+), 19 deletions(-) - ---- a/drivers/pnp/base.h -+++ b/drivers/pnp/base.h -@@ -4,7 +4,7 @@ - */ - - extern spinlock_t pnp_lock; --extern struct device_attribute pnp_interface_attrs[]; -+extern const struct attribute_group *pnp_dev_groups[]; - void *pnp_alloc(long size); - - int pnp_register_protocol(struct pnp_protocol *protocol); ---- a/drivers/pnp/driver.c -+++ b/drivers/pnp/driver.c -@@ -246,7 +246,7 @@ struct bus_type pnp_bus_type = { - .remove = pnp_device_remove, - .shutdown = pnp_device_shutdown, - .pm = &pnp_bus_dev_pm_ops, -- .dev_attrs = pnp_interface_attrs, -+ .dev_groups = pnp_dev_groups, - }; - - int pnp_register_driver(struct pnp_driver *drv) ---- a/drivers/pnp/interface.c -+++ b/drivers/pnp/interface.c -@@ -203,8 +203,8 @@ static void pnp_print_option(pnp_info_bu - } - } - --static ssize_t pnp_show_options(struct device *dmdev, -- struct device_attribute *attr, char *buf) -+static ssize_t options_show(struct device *dmdev, struct device_attribute *attr, -+ char *buf) - { - struct pnp_dev *dev = to_pnp_dev(dmdev); - pnp_info_buffer_t *buffer; -@@ -241,10 +241,10 @@ static ssize_t pnp_show_options(struct d - kfree(buffer); - return ret; - } -+static DEVICE_ATTR_RO(options); - --static ssize_t pnp_show_current_resources(struct device *dmdev, -- struct device_attribute *attr, -- char *buf) -+static ssize_t resources_show(struct device *dmdev, -+ struct device_attribute *attr, char *buf) - { - struct pnp_dev *dev = to_pnp_dev(dmdev); - pnp_info_buffer_t *buffer; -@@ -331,9 +331,9 @@ static char *pnp_get_resource_value(char - return buf; - } - --static ssize_t pnp_set_current_resources(struct device *dmdev, -- struct device_attribute *attr, -- const char *ubuf, size_t count) -+static ssize_t resources_store(struct device *dmdev, -+ struct device_attribute *attr, const char *ubuf, -+ size_t count) - { - struct pnp_dev *dev = to_pnp_dev(dmdev); - char *buf = (void *)ubuf; -@@ -434,9 +434,10 @@ done: - return retval; - return count; - } -+static DEVICE_ATTR_RW(resources); - --static ssize_t pnp_show_current_ids(struct device *dmdev, -- struct device_attribute *attr, char *buf) -+static ssize_t id_show(struct device *dmdev, struct device_attribute *attr, -+ char *buf) - { - char *str = buf; - struct pnp_dev *dev = to_pnp_dev(dmdev); -@@ -448,12 +449,20 @@ static ssize_t pnp_show_current_ids(stru - } - return (str - buf); - } -+static DEVICE_ATTR_RO(id); - --struct device_attribute pnp_interface_attrs[] = { -- __ATTR(resources, S_IRUGO | S_IWUSR, -- pnp_show_current_resources, -- pnp_set_current_resources), -- __ATTR(options, S_IRUGO, pnp_show_options, NULL), -- __ATTR(id, S_IRUGO, pnp_show_current_ids, NULL), -- __ATTR_NULL, -+static struct attribute *pnp_dev_attrs[] = { -+ &dev_attr_resources.attr, -+ &dev_attr_options.attr, -+ &dev_attr_id.attr, -+ NULL, -+}; -+ -+static const struct attribute_group pnp_dev_group = { -+ .attrs = pnp_dev_attrs, -+}; -+ -+const struct attribute_group *pnp_dev_groups[] = { -+ &pnp_dev_group, -+ NULL, - }; diff --git a/ppc-ibmebus-convert-bus-code-to-use-bus_groups.patch b/ppc-ibmebus-convert-bus-code-to-use-bus_groups.patch deleted file mode 100644 index 7b6f87799b727..0000000000000 --- a/ppc-ibmebus-convert-bus-code-to-use-bus_groups.patch +++ /dev/null @@ -1,56 +0,0 @@ -From foo@baz Fri Aug 23 13:21:43 PDT 2013 -Date: Fri, 23 Aug 2013 13:21:43 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: PPC: ibmebus: convert bus code to use bus_groups - -The bus_attrs field of struct bus_type is going away soon, dev_groups -should be used instead. This converts the ibmebus bus code to use the -correct field. - -Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> -Cc: Paul Mackerras <paulus@samba.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - arch/powerpc/kernel/ibmebus.c | 14 ++++++++------ - 1 file changed, 8 insertions(+), 6 deletions(-) - ---- a/arch/powerpc/kernel/ibmebus.c -+++ b/arch/powerpc/kernel/ibmebus.c -@@ -292,6 +292,7 @@ out: - return rc; - return count; - } -+static BUS_ATTR(probe, S_IWUSR, NULL, ibmebus_store_probe); - - static ssize_t ibmebus_store_remove(struct bus_type *bus, - const char *buf, size_t count) -@@ -317,13 +318,14 @@ static ssize_t ibmebus_store_remove(stru - return -ENODEV; - } - } -+static BUS_ATTR(remove, S_IWUSR, NULL, ibmebus_store_remove); - -- --static struct bus_attribute ibmebus_bus_attrs[] = { -- __ATTR(probe, S_IWUSR, NULL, ibmebus_store_probe), -- __ATTR(remove, S_IWUSR, NULL, ibmebus_store_remove), -- __ATTR_NULL -+static struct attribute *ibmbus_bus_attrs[] = { -+ &bus_attr_probe.attr, -+ &bus_attr_remove.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(ibmbus_bus); - - static int ibmebus_bus_bus_match(struct device *dev, struct device_driver *drv) - { -@@ -713,7 +715,7 @@ static struct dev_pm_ops ibmebus_bus_dev - struct bus_type ibmebus_bus_type = { - .name = "ibmebus", - .uevent = of_device_uevent_modalias, -- .bus_attrs = ibmebus_bus_attrs, -+ .bus_groups = ibmbus_bus_groups, - .match = ibmebus_bus_bus_match, - .probe = ibmebus_bus_device_probe, - .remove = ibmebus_bus_device_remove, diff --git a/ppc-vio-convert-bus-code-to-use-bus_groups.patch b/ppc-vio-convert-bus-code-to-use-bus_groups.patch deleted file mode 100644 index 9980809a102a9..0000000000000 --- a/ppc-vio-convert-bus-code-to-use-bus_groups.patch +++ /dev/null @@ -1,112 +0,0 @@ -From foo@baz Fri Aug 23 13:21:48 PDT 2013 -Date: Fri, 23 Aug 2013 13:21:48 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: PPC: VIO: convert bus code to use bus_groups - -The bus_attrs field of struct bus_type is going away soon, dev_groups -should be used instead. This converts the VIO bus code to use the -correct field. - -Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> -Cc: Paul Mackerras <paulus@samba.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - arch/powerpc/kernel/vio.c | 64 +++++++++++++++++++++++++--------------------- - 1 file changed, 35 insertions(+), 29 deletions(-) - ---- a/arch/powerpc/kernel/vio.c -+++ b/arch/powerpc/kernel/vio.c -@@ -997,21 +997,36 @@ static struct device_attribute vio_cmo_d - /* sysfs bus functions and data structures for CMO */ - - #define viobus_cmo_rd_attr(name) \ --static ssize_t \ --viobus_cmo_##name##_show(struct bus_type *bt, char *buf) \ -+static ssize_t cmo_##name##_show(struct bus_type *bt, char *buf) \ - { \ - return sprintf(buf, "%lu\n", vio_cmo.name); \ --} -+} \ -+static BUS_ATTR_RO(cmo_##name) - - #define viobus_cmo_pool_rd_attr(name, var) \ - static ssize_t \ --viobus_cmo_##name##_pool_show_##var(struct bus_type *bt, char *buf) \ -+cmo_##name##_##var##_show(struct bus_type *bt, char *buf) \ - { \ - return sprintf(buf, "%lu\n", vio_cmo.name.var); \ -+} \ -+static BUS_ATTR_RO(cmo_##name##_##var) -+ -+viobus_cmo_rd_attr(entitled); -+viobus_cmo_rd_attr(spare); -+viobus_cmo_rd_attr(min); -+viobus_cmo_rd_attr(desired); -+viobus_cmo_rd_attr(curr); -+viobus_cmo_pool_rd_attr(reserve, size); -+viobus_cmo_pool_rd_attr(excess, size); -+viobus_cmo_pool_rd_attr(excess, free); -+ -+static ssize_t cmo_high_show(struct bus_type *bt, char *buf) -+{ -+ return sprintf(buf, "%lu\n", vio_cmo.high); - } - --static ssize_t viobus_cmo_high_reset(struct bus_type *bt, const char *buf, -- size_t count) -+static ssize_t cmo_high_store(struct bus_type *bt, const char *buf, -+ size_t count) - { - unsigned long flags; - -@@ -1021,35 +1036,26 @@ static ssize_t viobus_cmo_high_reset(str - - return count; - } -+static BUS_ATTR_RW(cmo_high); - --viobus_cmo_rd_attr(entitled); --viobus_cmo_pool_rd_attr(reserve, size); --viobus_cmo_pool_rd_attr(excess, size); --viobus_cmo_pool_rd_attr(excess, free); --viobus_cmo_rd_attr(spare); --viobus_cmo_rd_attr(min); --viobus_cmo_rd_attr(desired); --viobus_cmo_rd_attr(curr); --viobus_cmo_rd_attr(high); -- --static struct bus_attribute vio_cmo_bus_attrs[] = { -- __ATTR(cmo_entitled, S_IRUGO, viobus_cmo_entitled_show, NULL), -- __ATTR(cmo_reserve_size, S_IRUGO, viobus_cmo_reserve_pool_show_size, NULL), -- __ATTR(cmo_excess_size, S_IRUGO, viobus_cmo_excess_pool_show_size, NULL), -- __ATTR(cmo_excess_free, S_IRUGO, viobus_cmo_excess_pool_show_free, NULL), -- __ATTR(cmo_spare, S_IRUGO, viobus_cmo_spare_show, NULL), -- __ATTR(cmo_min, S_IRUGO, viobus_cmo_min_show, NULL), -- __ATTR(cmo_desired, S_IRUGO, viobus_cmo_desired_show, NULL), -- __ATTR(cmo_curr, S_IRUGO, viobus_cmo_curr_show, NULL), -- __ATTR(cmo_high, S_IWUSR|S_IRUSR|S_IWGRP|S_IRGRP|S_IROTH, -- viobus_cmo_high_show, viobus_cmo_high_reset), -- __ATTR_NULL -+static struct attribute *vio_bus_attrs[] = { -+ &bus_attr_cmo_entitled.attr, -+ &bus_attr_cmo_spare.attr, -+ &bus_attr_cmo_min.attr, -+ &bus_attr_cmo_desired.attr, -+ &bus_attr_cmo_curr.attr, -+ &bus_attr_cmo_high.attr, -+ &bus_attr_cmo_reserve_size.attr, -+ &bus_attr_cmo_excess_size.attr, -+ &bus_attr_cmo_excess_free.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(vio_bus); - - static void vio_cmo_sysfs_init(void) - { - vio_bus_type.dev_attrs = vio_cmo_dev_attrs; -- vio_bus_type.bus_attrs = vio_cmo_bus_attrs; -+ vio_bus_type.bus_groups = vio_bus_groups; - } - #else /* CONFIG_PPC_SMLPAR */ - int vio_cmo_entitlement_update(size_t new_entitlement) { return 0; } diff --git a/rapidio-convert-bus-code-to-use-bus_groups.patch b/rapidio-convert-bus-code-to-use-bus_groups.patch deleted file mode 100644 index 15790233ddeb2..0000000000000 --- a/rapidio-convert-bus-code-to-use-bus_groups.patch +++ /dev/null @@ -1,65 +0,0 @@ -From foo@baz Fri Aug 23 13:18:15 PDT 2013 -Date: Fri, 23 Aug 2013 13:18:15 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: rapidio: convert bus code to use bus_groups - -The bus_attrs field of struct bus_type is going away soon, dev_groups -should be used instead. This converts the rapidio bus code to use the -correct field. - -Cc: Matt Porter <mporter@kernel.crashing.org> -Cc: Alexandre Bounine <alexandre.bounine@idt.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/rapidio/rio-driver.c | 2 +- - drivers/rapidio/rio-sysfs.c | 16 +++++++++++++--- - drivers/rapidio/rio.h | 2 +- - 3 files changed, 15 insertions(+), 5 deletions(-) - ---- a/drivers/rapidio/rio-driver.c -+++ b/drivers/rapidio/rio-driver.c -@@ -224,7 +224,7 @@ struct bus_type rio_bus_type = { - .name = "rapidio", - .match = rio_match_bus, - .dev_attrs = rio_dev_attrs, -- .bus_attrs = rio_bus_attrs, -+ .bus_groups = rio_bus_groups, - .probe = rio_device_probe, - .remove = rio_device_remove, - .uevent = rio_uevent, ---- a/drivers/rapidio/rio-sysfs.c -+++ b/drivers/rapidio/rio-sysfs.c -@@ -316,8 +316,18 @@ exit: - - return rc; - } -+static BUS_ATTR(scan, (S_IWUSR|S_IWGRP), NULL, bus_scan_store); - --struct bus_attribute rio_bus_attrs[] = { -- __ATTR(scan, (S_IWUSR|S_IWGRP), NULL, bus_scan_store), -- __ATTR_NULL -+static struct attribute *rio_bus_attrs[] = { -+ &bus_attr_scan.attr, -+ NULL, -+}; -+ -+static const struct attribute_group rio_bus_group = { -+ .attrs = rio_bus_attrs, -+}; -+ -+const struct attribute_group *rio_bus_groups[] = { -+ &rio_bus_group, -+ NULL, - }; ---- a/drivers/rapidio/rio.h -+++ b/drivers/rapidio/rio.h -@@ -49,7 +49,7 @@ extern int rio_mport_scan(int mport_id); - - /* Structures internal to the RIO core code */ - extern struct device_attribute rio_dev_attrs[]; --extern struct bus_attribute rio_bus_attrs[]; -+extern const struct attribute_group *rio_bus_groups[]; - - #define RIO_GET_DID(size, x) (size ? (x & 0xffff) : ((x & 0x00ff0000) >> 16)) - #define RIO_SET_DID(size, x) (size ? (x & 0xffff) : ((x & 0x000000ff) << 16)) diff --git a/rapidio-convert-bus-code-to-use-dev_groups.patch b/rapidio-convert-bus-code-to-use-dev_groups.patch deleted file mode 100644 index 9947c9df405f0..0000000000000 --- a/rapidio-convert-bus-code-to-use-dev_groups.patch +++ /dev/null @@ -1,120 +0,0 @@ -From foo@baz Sun Oct 6 13:52:56 PDT 2013 -Date: Sun, 06 Oct 2013 13:52:56 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: rapidio: convert bus code to use dev_groups - -The dev_attrs field of struct bus_type is going away soon, dev_groups -should be used instead. This converts the rapidio bus code to use the -correct field. - -Cc: Matt Porter <mporter@kernel.crashing.org> -Cc: Alexandre Bounine <alexandre.bounine@idt.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/rapidio/rio-driver.c | 2 +- - drivers/rapidio/rio-sysfs.c | 38 ++++++++++++++++++++++++-------------- - drivers/rapidio/rio.h | 2 +- - 3 files changed, 26 insertions(+), 16 deletions(-) - ---- a/drivers/rapidio/rio-driver.c -+++ b/drivers/rapidio/rio-driver.c -@@ -223,7 +223,7 @@ struct device rio_bus = { - struct bus_type rio_bus_type = { - .name = "rapidio", - .match = rio_match_bus, -- .dev_attrs = rio_dev_attrs, -+ .dev_groups = rio_dev_groups, - .bus_groups = rio_bus_groups, - .probe = rio_device_probe, - .remove = rio_device_remove, ---- a/drivers/rapidio/rio-sysfs.c -+++ b/drivers/rapidio/rio-sysfs.c -@@ -27,6 +27,7 @@ field##_show(struct device *dev, struct - \ - return sprintf(buf, format_string, rdev->field); \ - } \ -+static DEVICE_ATTR_RO(field); - - rio_config_attr(did, "0x%04x\n"); - rio_config_attr(vid, "0x%04x\n"); -@@ -54,6 +55,7 @@ static ssize_t routes_show(struct device - - return (str - buf); - } -+static DEVICE_ATTR_RO(routes); - - static ssize_t lprev_show(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -63,6 +65,7 @@ static ssize_t lprev_show(struct device - return sprintf(buf, "%s\n", - (rdev->prev) ? rio_name(rdev->prev) : "root"); - } -+static DEVICE_ATTR_RO(lprev); - - static ssize_t lnext_show(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -83,6 +86,7 @@ static ssize_t lnext_show(struct device - - return str - buf; - } -+static DEVICE_ATTR_RO(lnext); - - static ssize_t modalias_show(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -92,23 +96,29 @@ static ssize_t modalias_show(struct devi - return sprintf(buf, "rapidio:v%04Xd%04Xav%04Xad%04X\n", - rdev->vid, rdev->did, rdev->asm_vid, rdev->asm_did); - } -+static DEVICE_ATTR_RO(modalias); - --struct device_attribute rio_dev_attrs[] = { -- __ATTR_RO(did), -- __ATTR_RO(vid), -- __ATTR_RO(device_rev), -- __ATTR_RO(asm_did), -- __ATTR_RO(asm_vid), -- __ATTR_RO(asm_rev), -- __ATTR_RO(lprev), -- __ATTR_RO(destid), -- __ATTR_RO(modalias), -- __ATTR_NULL, -+static struct attribute *rio_dev_attrs[] = { -+ &dev_attr_did.attr, -+ &dev_attr_vid.attr, -+ &dev_attr_device_rev.attr, -+ &dev_attr_asm_did.attr, -+ &dev_attr_asm_vid.attr, -+ &dev_attr_asm_rev.attr, -+ &dev_attr_lprev.attr, -+ &dev_attr_destid.attr, -+ &dev_attr_modalias.attr, -+ NULL, - }; - --static DEVICE_ATTR(routes, S_IRUGO, routes_show, NULL); --static DEVICE_ATTR(lnext, S_IRUGO, lnext_show, NULL); --static DEVICE_ATTR(hopcount, S_IRUGO, hopcount_show, NULL); -+static const struct attribute_group rio_dev_group = { -+ .attrs = rio_dev_attrs, -+}; -+ -+const struct attribute_group *rio_dev_groups[] = { -+ &rio_dev_group, -+ NULL, -+}; - - static ssize_t - rio_read_config(struct file *filp, struct kobject *kobj, ---- a/drivers/rapidio/rio.h -+++ b/drivers/rapidio/rio.h -@@ -48,7 +48,7 @@ extern struct rio_mport *rio_find_mport( - extern int rio_mport_scan(int mport_id); - - /* Structures internal to the RIO core code */ --extern struct device_attribute rio_dev_attrs[]; -+extern const struct attribute_group *rio_dev_groups[]; - extern const struct attribute_group *rio_bus_groups[]; - - #define RIO_GET_DID(size, x) (size ? (x & 0xffff) : ((x & 0x00ff0000) >> 16)) diff --git a/scsi-fcoe-convert-bus-code-to-use-bus_groups.patch b/scsi-fcoe-convert-bus-code-to-use-bus_groups.patch deleted file mode 100644 index 5c8d4bf355d13..0000000000000 --- a/scsi-fcoe-convert-bus-code-to-use-bus_groups.patch +++ /dev/null @@ -1,46 +0,0 @@ -From foo@baz Fri Aug 23 13:21:55 PDT 2013 -Date: Fri, 23 Aug 2013 13:21:55 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: SCSI: fcoe: convert bus code to use bus_groups - -The bus_attrs field of struct bus_type is going away soon, dev_groups -should be used instead. This converts the fcoe bus code to use the -correct field. - -Cc: Robert Love <robert.w.love@intel.com> -Cc: "James E.J. Bottomley" <JBottomley@parallels.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/scsi/fcoe/fcoe_sysfs.c | 14 +++++++++----- - 1 file changed, 9 insertions(+), 5 deletions(-) - ---- a/drivers/scsi/fcoe/fcoe_sysfs.c -+++ b/drivers/scsi/fcoe/fcoe_sysfs.c -@@ -553,16 +553,20 @@ static struct device_type fcoe_fcf_devic - .release = fcoe_fcf_device_release, - }; - --static struct bus_attribute fcoe_bus_attr_group[] = { -- __ATTR(ctlr_create, S_IWUSR, NULL, fcoe_ctlr_create_store), -- __ATTR(ctlr_destroy, S_IWUSR, NULL, fcoe_ctlr_destroy_store), -- __ATTR_NULL -+static BUS_ATTR(ctlr_create, S_IWUSR, NULL, fcoe_ctlr_create_store); -+static BUS_ATTR(ctlr_destroy, S_IWUSR, NULL, fcoe_ctlr_destroy_store); -+ -+static struct attribute *fcoe_bus_attrs[] = { -+ &bus_attr_ctlr_create.attr, -+ &bus_attr_ctrl_destroy.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(fcoe_bus); - - static struct bus_type fcoe_bus_type = { - .name = "fcoe", - .match = &fcoe_bus_match, -- .bus_attrs = fcoe_bus_attr_group, -+ .bus_groups = fcoe_bus_groups, - }; - - /** diff --git a/serial-8250_pci-add-support-for-fintek-4-8-and-12-port-cards.patch b/serial-8250_pci-add-support-for-fintek-4-8-and-12-port-cards.patch deleted file mode 100644 index 700f5bd04d191..0000000000000 --- a/serial-8250_pci-add-support-for-fintek-4-8-and-12-port-cards.patch +++ /dev/null @@ -1,170 +0,0 @@ -From foo@baz Mon Aug 19 12:48:43 PDT 2013 -Date: Mon, 19 Aug 2013 12:48:43 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: [PATCH]: serial: 8250_pci: add support for Fintek 4, 8, and 12 port cards - -This adds support for Fintek's 4, 8, and 12 port PCIE serial cards. - -Thanks to Fintek for the sample devices, and the spec needed in order to -implement this. - - -Cc: Amanda Ying <amanda_ying@fintek.com.tw> -Cc: Felix Shih <felix_shih@fintek.com.tw> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - - ---- - drivers/tty/serial/8250/8250_pci.c | 112 +++++++++++++++++++++++++++++++++++++ - 1 file changed, 112 insertions(+) - ---- a/drivers/tty/serial/8250/8250_pci.c -+++ b/drivers/tty/serial/8250/8250_pci.c -@@ -1343,6 +1343,71 @@ pci_brcm_trumanage_setup(struct serial_p - return ret; - } - -+static int pci_fintek_setup(struct serial_private *priv, -+ const struct pciserial_board *board, -+ struct uart_8250_port *port, int idx) -+{ -+ struct pci_dev *pdev = priv->dev; -+ unsigned long base; -+ unsigned long iobase; -+ unsigned long ciobase = 0; -+ u8 config_base; -+ -+ /* -+ * We are supposed to be able to read these from the PCI config space, -+ * but the values there don't seem to match what we need to use, so -+ * just use these hard-coded values for now, as they are correct. -+ */ -+ switch (idx) { -+ case 0: iobase = 0xe000; config_base = 0x40; break; -+ case 1: iobase = 0xe008; config_base = 0x48; break; -+ case 2: iobase = 0xe010; config_base = 0x50; break; -+ case 3: iobase = 0xe018; config_base = 0x58; break; -+ case 4: iobase = 0xe020; config_base = 0x60; break; -+ case 5: iobase = 0xe028; config_base = 0x68; break; -+ case 6: iobase = 0xe030; config_base = 0x70; break; -+ case 7: iobase = 0xe038; config_base = 0x78; break; -+ case 8: iobase = 0xe040; config_base = 0x80; break; -+ case 9: iobase = 0xe048; config_base = 0x88; break; -+ case 10: iobase = 0xe050; config_base = 0x90; break; -+ case 11: iobase = 0xe058; config_base = 0x98; break; -+ default: -+ /* Unknown number of ports, get out of here */ -+ return -EINVAL; -+ } -+ -+ if (idx < 4) { -+ base = pci_resource_start(priv->dev, 3); -+ ciobase = (int)(base + (0x8 * idx)); -+ } -+ -+ dev_dbg(&pdev->dev, "%s: idx=%d iobase=0x%lx ciobase=0x%lx config_base=0x%2x\n", -+ __func__, idx, iobase, ciobase, config_base); -+ -+ /* Enable UART I/O port */ -+ pci_write_config_byte(pdev, config_base + 0x00, 0x01); -+ -+ /* Select 128-byte FIFO and 8x FIFO threshold */ -+ pci_write_config_byte(pdev, config_base + 0x01, 0x33); -+ -+ /* LSB UART */ -+ pci_write_config_byte(pdev, config_base + 0x04, (u8)(iobase & 0xff)); -+ -+ /* MSB UART */ -+ pci_write_config_byte(pdev, config_base + 0x05, (u8)((iobase & 0xff00) >> 8)); -+ -+ /* irq number, this usually fails, but the spec says to do it anyway. */ -+ pci_write_config_byte(pdev, config_base + 0x06, pdev->irq); -+ -+ port->port.iotype = UPIO_PORT; -+ port->port.iobase = iobase; -+ port->port.mapbase = 0; -+ port->port.membase = NULL; -+ port->port.regshift = 0; -+ -+ return 0; -+} -+ - static int skip_tx_en_setup(struct serial_private *priv, - const struct pciserial_board *board, - struct uart_8250_port *port, int idx) -@@ -2252,6 +2317,27 @@ static struct pci_serial_quirk pci_seria - .subdevice = PCI_ANY_ID, - .setup = pci_brcm_trumanage_setup, - }, -+ { -+ .vendor = 0x1c29, -+ .device = 0x1104, -+ .subvendor = PCI_ANY_ID, -+ .subdevice = PCI_ANY_ID, -+ .setup = pci_fintek_setup, -+ }, -+ { -+ .vendor = 0x1c29, -+ .device = 0x1108, -+ .subvendor = PCI_ANY_ID, -+ .subdevice = PCI_ANY_ID, -+ .setup = pci_fintek_setup, -+ }, -+ { -+ .vendor = 0x1c29, -+ .device = 0x1112, -+ .subvendor = PCI_ANY_ID, -+ .subdevice = PCI_ANY_ID, -+ .setup = pci_fintek_setup, -+ }, - - /* - * Default "match everything" terminator entry -@@ -2449,6 +2535,9 @@ enum pci_board_num_t { - pbn_omegapci, - pbn_NETMOS9900_2s_115200, - pbn_brcm_trumanage, -+ pbn_fintek_4, -+ pbn_fintek_8, -+ pbn_fintek_12, - }; - - /* -@@ -3199,6 +3288,24 @@ static struct pciserial_board pci_boards - .reg_shift = 2, - .base_baud = 115200, - }, -+ [pbn_fintek_4] = { -+ .num_ports = 4, -+ .uart_offset = 8, -+ .base_baud = 115200, -+ .first_offset = 0x40, -+ }, -+ [pbn_fintek_8] = { -+ .num_ports = 8, -+ .uart_offset = 8, -+ .base_baud = 115200, -+ .first_offset = 0x40, -+ }, -+ [pbn_fintek_12] = { -+ .num_ports = 12, -+ .uart_offset = 8, -+ .base_baud = 115200, -+ .first_offset = 0x40, -+ }, - }; - - static const struct pci_device_id blacklist[] = { -@@ -4916,6 +5023,11 @@ static struct pci_device_id serial_pci_t - 0, - 0, pbn_exar_XR17V358 }, - -+ /* Fintek PCI serial cards */ -+ { PCI_DEVICE(0x1c29, 0x1104), .driver_data = pbn_fintek_4 }, -+ { PCI_DEVICE(0x1c29, 0x1108), .driver_data = pbn_fintek_8 }, -+ { PCI_DEVICE(0x1c29, 0x1112), .driver_data = pbn_fintek_12 }, -+ - /* - * These entries match devices with class COMMUNICATION_SERIAL, - * COMMUNICATION_MODEM or COMMUNICATION_MULTISERIAL diff --git a/serial-8250_pci-clean-up-printk-calls.patch b/serial-8250_pci-clean-up-printk-calls.patch deleted file mode 100644 index ffcff770c6e4d..0000000000000 --- a/serial-8250_pci-clean-up-printk-calls.patch +++ /dev/null @@ -1,138 +0,0 @@ -From foo@baz Fri Sep 13 10:05:17 PDT 2013 -Date: Fri, 13 Sep 2013 10:05:17 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: [PATCH] serial: 8250_pci: clean up printk() calls - -Move the printk() calls to to dev_*() instead, to tie into the dynamic -debugging infrastructure. - -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/tty/serial/8250/8250_pci.c | 40 +++++++++++++++++-------------------- - 1 file changed, 19 insertions(+), 21 deletions(-) - ---- a/drivers/tty/serial/8250/8250_pci.c -+++ b/drivers/tty/serial/8250/8250_pci.c -@@ -9,6 +9,7 @@ - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License. - */ -+#undef DEBUG - #include <linux/module.h> - #include <linux/init.h> - #include <linux/pci.h> -@@ -27,8 +28,6 @@ - - #include "8250.h" - --#undef SERIAL_DEBUG_PCI -- - /* - * init function returns: - * > 0 - number of ports -@@ -63,7 +62,7 @@ static int pci_default_setup(struct seri - - static void moan_device(const char *str, struct pci_dev *dev) - { -- printk(KERN_WARNING -+ dev_err(&dev->dev, - "%s: %s\n" - "Please send the output of lspci -vv, this\n" - "message (0x%04x,0x%04x,0x%04x,0x%04x), the\n" -@@ -233,7 +232,7 @@ static int pci_inteli960ni_init(struct p - /* is firmware started? */ - pci_read_config_dword(dev, 0x44, (void *)&oldval); - if (oldval == 0x00001000L) { /* RESET value */ -- printk(KERN_DEBUG "Local i960 firmware missing"); -+ dev_dbg(&dev->dev, "Local i960 firmware missing\n"); - return -ENODEV; - } - return 0; -@@ -827,7 +826,7 @@ static int pci_netmos_9900_numports(stru - if (sub_serports > 0) { - return sub_serports; - } else { -- printk(KERN_NOTICE "NetMos/Mostech serial driver ignoring port on ambiguous config.\n"); -+ dev_err(&dev->dev, "NetMos/Mostech serial driver ignoring port on ambiguous config.\n"); - return 0; - } - } -@@ -931,7 +930,7 @@ static int pci_ite887x_init(struct pci_d - } - - if (!inta_addr[i]) { -- printk(KERN_ERR "ite887x: could not find iobase\n"); -+ dev_err(&dev->dev, "ite887x: could not find iobase\n"); - return -ENODEV; - } - -@@ -1024,9 +1023,9 @@ static int pci_oxsemi_tornado_init(struc - /* Tornado device */ - if (deviceID == 0x07000200) { - number_uarts = ioread8(p + 4); -- printk(KERN_DEBUG -+ dev_dbg(&dev->dev, - "%d ports detected on Oxford PCI Express device\n", -- number_uarts); -+ number_uarts); - } - pci_iounmap(dev, p); - return number_uarts; -@@ -1349,12 +1348,10 @@ static int skip_tx_en_setup(struct seria - struct uart_8250_port *port, int idx) - { - port->port.flags |= UPF_NO_TXEN_TEST; -- printk(KERN_DEBUG "serial8250: skipping TxEn test for device " -- "[%04x:%04x] subsystem [%04x:%04x]\n", -- priv->dev->vendor, -- priv->dev->device, -- priv->dev->subsystem_vendor, -- priv->dev->subsystem_device); -+ dev_dbg(&priv->dev->dev, -+ "serial8250: skipping TxEn test for device [%04x:%04x] subsystem [%04x:%04x]\n", -+ priv->dev->vendor, priv->dev->device, -+ priv->dev->subsystem_vendor, priv->dev->subsystem_device); - - return pci_default_setup(priv, board, port, idx); - } -@@ -3362,14 +3359,15 @@ pciserial_init_ports(struct pci_dev *dev - if (quirk->setup(priv, board, &uart, i)) - break; - --#ifdef SERIAL_DEBUG_PCI -- printk(KERN_DEBUG "Setup PCI port: port %lx, irq %d, type %d\n", -- uart.port.iobase, uart.port.irq, uart.port.iotype); --#endif -+ dev_dbg(&dev->dev, "Setup PCI port: port %lx, irq %d, type %d\n", -+ uart.port.iobase, uart.port.irq, uart.port.iotype); - - priv->line[i] = serial8250_register_8250_port(&uart); - if (priv->line[i] < 0) { -- printk(KERN_WARNING "Couldn't register serial port %s: %d\n", pci_name(dev), priv->line[i]); -+ dev_err(&dev->dev, -+ "Couldn't register serial port %lx, irq %d, type %d, error %d\n", -+ uart.port.iobase, uart.port.irq, -+ uart.port.iotype, priv->line[i]); - break; - } - } -@@ -3462,7 +3460,7 @@ pciserial_init_one(struct pci_dev *dev, - } - - if (ent->driver_data >= ARRAY_SIZE(pci_boards)) { -- printk(KERN_ERR "pci_init_one: invalid driver_data: %ld\n", -+ dev_err(&dev->dev, "invalid driver_data: %ld\n", - ent->driver_data); - return -EINVAL; - } -@@ -3555,7 +3553,7 @@ static int pciserial_resume_one(struct p - err = pci_enable_device(dev); - /* FIXME: We cannot simply error out here */ - if (err) -- printk(KERN_ERR "pciserial: Unable to re-enable ports, trying to continue.\n"); -+ dev_err(&dev->dev, "Unable to re-enable ports, trying to continue.\n"); - pciserial_resume_ports(priv); - } - return 0; @@ -1,10 +1,6 @@ xen-disable-clock-timer-when-shutting-down.patch -serial-8250_pci-clean-up-printk-calls.patch -serial-8250_pci-add-support-for-fintek-4-8-and-12-port-cards.patch # patches already in my git trees, but still here so I don't loose them. -driver-core-remove-struct-bus_type.bus_attrs.patch -driver-core-remove-struct-bus_type.drv_attrs.patch # usb DEBUG cleanups @@ -24,60 +20,17 @@ driver-core-remove-struct-bus_type.drv_attrs.patch #gregkh/gkh-version.patch -pci-convert-bus-code-to-use-bus_groups.patch -rapidio-convert-bus-code-to-use-bus_groups.patch -ppc-ibmebus-convert-bus-code-to-use-bus_groups.patch -ppc-vio-convert-bus-code-to-use-bus_groups.patch -scsi-fcoe-convert-bus-code-to-use-bus_groups.patch -pci-convert-bus-code-to-use-drv_groups.patch -pmu_bus-convert-bus-code-to-use-dev_groups.patch - - -driver-core-remove-dev_attrs-from-struct-class.patch -driver-core-remove-dev_bin_attrs-from-struct-class.patch - -hv-use-dev_groups-for-device-attributes.patch -hv-move-state-bus-attribute-to-dev_groups.patch -hv-move-monitor_id-bus-attribute-to-dev_groups.patch -hv-move-modalias-bus-attribute-to-dev_groups.patch -hv-move-class_id-bus-attribute-to-dev_groups.patch -hv-move-device_id-bus-attribute-to-dev_groups.patch -hv-make-monitor_pages-a-real-pointer-array.patch -hv-move-client-server_monitor_pending-bus-attributes-to-dev_groups.patch -hv-move-client-server_monitor_latency-bus-attributes-to-dev_groups.patch -hv-move-client-server_monitor_conn_id-bus-attributes-to-dev_groups.patch -hv-delete-vmbus_get_debug_info.patch -hv-delete-struct-hv_dev_port_info.patch -hv-move-ringbuffer-bus-attributes-to-dev_groups.patch + + + pci-convert-bus-code-to-use-dev_groups.patch -mdio_bus-convert-bus-code-to-use-dev_groups.patch -pnp-convert-bus-code-to-use-dev_groups.patch -mmc-convert-bus-code-to-use-dev_groups.patch -uwb-convert-bus-code-to-use-dev_groups.patch -bcma-convert-bus-code-to-use-dev_groups.patch -pcmcia-convert-bus-code-to-use-dev_groups.patch -rapidio-convert-bus-code-to-use-dev_groups.patch -ssb-convert-bus-code-to-use-dev_groups.patch -xenbus-convert-bus-code-to-use-dev_groups.patch -hsi-convert-bus-code-to-use-dev_groups.patch driver-core-remove-struct-bus_type.dev_attrs.patch -input-serio-use-device_attr_ro.patch -input-serio-remove-bus-usage-of-dev_attrs.patch -ide-convert-bus-code-to-use-dev_groups.patch -ipack-convert-bus-code-to-use-dev_groups.patch -input-gameport-convert-bus-code-to-use-dev_groups.patch -spi-convert-bus-code-to-use-dev_groups.patch -virtio-convert-bus-code-to-use-dev_groups.patch -tifm-convert-bus-code-to-use-dev_groups.patch -memstick-convert-bus-code-to-use-dev_groups.patch -i2o-convert-bus-code-to-use-dev_groups.patch -uwb-clean-up-attribute-use-by-using-attribute_groups.patch p18.patch p19.patch diff --git a/spi-convert-bus-code-to-use-dev_groups.patch b/spi-convert-bus-code-to-use-dev_groups.patch deleted file mode 100644 index 90e12654f8604..0000000000000 --- a/spi-convert-bus-code-to-use-dev_groups.patch +++ /dev/null @@ -1,45 +0,0 @@ -From foo@baz Mon Oct 7 18:11:02 PDT 2013 -Date: Mon, 07 Oct 2013 18:11:02 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: spi: convert bus code to use dev_groups - -The dev_attrs field of struct bus_type is going away soon, dev_groups -should be used instead. This converts the spi bus code to use the -correct field. - -Cc: Mark Brown <broonie@kernel.org> -Cc: <linux-spi@vger.kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/spi/spi.c | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - ---- a/drivers/spi/spi.c -+++ b/drivers/spi/spi.c -@@ -58,11 +58,13 @@ modalias_show(struct device *dev, struct - - return sprintf(buf, "%s%s\n", SPI_MODULE_PREFIX, spi->modalias); - } -+static DEVICE_ATTR_RO(modalias); - --static struct device_attribute spi_dev_attrs[] = { -- __ATTR_RO(modalias), -- __ATTR_NULL, -+static struct attribute *spi_dev_attrs[] = { -+ &dev_attr_modalias.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(spi_dev); - - /* modalias support makes "modprobe $MODALIAS" new-style hotplug work, - * and the sysfs version makes coldplug work too. -@@ -229,7 +231,7 @@ static const struct dev_pm_ops spi_pm = - - struct bus_type spi_bus_type = { - .name = "spi", -- .dev_attrs = spi_dev_attrs, -+ .dev_groups = spi_dev_groups, - .match = spi_match_device, - .uevent = spi_uevent, - .pm = &spi_pm, diff --git a/ssb-convert-bus-code-to-use-dev_groups.patch b/ssb-convert-bus-code-to-use-dev_groups.patch deleted file mode 100644 index c6358f0b2098a..0000000000000 --- a/ssb-convert-bus-code-to-use-dev_groups.patch +++ /dev/null @@ -1,66 +0,0 @@ -From foo@baz Sun Oct 6 13:53:48 PDT 2013 -Date: Sun, 06 Oct 2013 13:53:48 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: ssb: convert bus code to use dev_groups - -The dev_attrs field of struct bus_type is going away soon, dev_groups -should be used instead. This converts the ssb bus code to use the -correct field. - -Cc: Michael Buesch <m@bues.ch> -Cc: <netdev@vger.kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/ssb/main.c | 23 +++++++++++++---------- - 1 file changed, 13 insertions(+), 10 deletions(-) - ---- a/drivers/ssb/main.c -+++ b/drivers/ssb/main.c -@@ -374,7 +374,8 @@ static ssize_t \ - attrib##_show(struct device *dev, struct device_attribute *attr, char *buf) \ - { \ - return sprintf(buf, format_string, dev_to_ssb_dev(dev)->field); \ --} -+} \ -+static DEVICE_ATTR_RO(attrib); - - ssb_config_attr(core_num, core_index, "%u\n") - ssb_config_attr(coreid, id.coreid, "0x%04x\n") -@@ -387,16 +388,18 @@ name_show(struct device *dev, struct dev - return sprintf(buf, "%s\n", - ssb_core_name(dev_to_ssb_dev(dev)->id.coreid)); - } -+static DEVICE_ATTR_RO(name); - --static struct device_attribute ssb_device_attrs[] = { -- __ATTR_RO(name), -- __ATTR_RO(core_num), -- __ATTR_RO(coreid), -- __ATTR_RO(vendor), -- __ATTR_RO(revision), -- __ATTR_RO(irq), -- __ATTR_NULL, -+static struct attribute *ssb_device_attrs[] = { -+ &dev_attr_name.attr, -+ &dev_attr_core_num.attr, -+ &dev_attr_coreid.attr, -+ &dev_attr_vendor.attr, -+ &dev_attr_revision.attr, -+ &dev_attr_irq.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(ssb_device); - - static struct bus_type ssb_bustype = { - .name = "ssb", -@@ -407,7 +410,7 @@ static struct bus_type ssb_bustype = { - .suspend = ssb_device_suspend, - .resume = ssb_device_resume, - .uevent = ssb_device_uevent, -- .dev_attrs = ssb_device_attrs, -+ .dev_groups = ssb_device_groups, - }; - - static void ssb_buses_lock(void) diff --git a/tifm-convert-bus-code-to-use-dev_groups.patch b/tifm-convert-bus-code-to-use-dev_groups.patch deleted file mode 100644 index b8cf0af7f089d..0000000000000 --- a/tifm-convert-bus-code-to-use-dev_groups.patch +++ /dev/null @@ -1,41 +0,0 @@ -From foo@baz Mon Oct 7 18:13:26 PDT 2013 -Date: Mon, 07 Oct 2013 18:13:26 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: tifm: convert bus code to use dev_groups - -The dev_attrs field of struct bus_type is going away soon, dev_groups -should be used instead. This converts the tifm bus code to use the -correct field. - -Cc: Alex Dubov <oakad@yahoo.com> -Cc: Arnd Bergmann <arnd@arndb.de> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/misc/tifm_core.c | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - ---- a/drivers/misc/tifm_core.c -+++ b/drivers/misc/tifm_core.c -@@ -145,15 +145,17 @@ static ssize_t type_show(struct device * - struct tifm_dev *sock = container_of(dev, struct tifm_dev, dev); - return sprintf(buf, "%x", sock->type); - } -+static DEVICE_ATTR_RO(type); - --static struct device_attribute tifm_dev_attrs[] = { -- __ATTR(type, S_IRUGO, type_show, NULL), -- __ATTR_NULL -+static struct attribute *tifm_dev_attrs[] = { -+ &dev_attr_type.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(tifm_dev); - - static struct bus_type tifm_bus_type = { - .name = "tifm", -- .dev_attrs = tifm_dev_attrs, -+ .dev_groups = tifm_dev_groups, - .match = tifm_bus_match, - .uevent = tifm_uevent, - .probe = tifm_device_probe, diff --git a/uwb-clean-up-attribute-use-by-using-attribute_groups.patch b/uwb-clean-up-attribute-use-by-using-attribute_groups.patch deleted file mode 100644 index cb1baaa3b450a..0000000000000 --- a/uwb-clean-up-attribute-use-by-using-attribute_groups.patch +++ /dev/null @@ -1,57 +0,0 @@ -From foo@baz Sat Oct 19 20:13:26 PDT 2013 -Date: Sat, 19 Oct 2013 20:13:26 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: UWB: clean up attribute use by using ATTRIBUTE_GROUPS() - -The ATTRIBUTE_GROUPS() macro can be used in the uwb code to reduce the -number of lines of code. - -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/uwb/lc-dev.c | 16 +++------------- - 1 file changed, 3 insertions(+), 13 deletions(-) - ---- a/drivers/uwb/lc-dev.c -+++ b/drivers/uwb/lc-dev.c -@@ -244,7 +244,7 @@ static ssize_t uwb_dev_RSSI_store(struct - static DEVICE_ATTR(RSSI, S_IRUGO | S_IWUSR, uwb_dev_RSSI_show, uwb_dev_RSSI_store); - - --static struct attribute *dev_attrs[] = { -+static struct attribute *uwb_dev_attrs[] = { - &dev_attr_EUI_48.attr, - &dev_attr_DevAddr.attr, - &dev_attr_BPST.attr, -@@ -253,20 +253,10 @@ static struct attribute *dev_attrs[] = { - &dev_attr_RSSI.attr, - NULL, - }; -- --static struct attribute_group dev_attr_group = { -- .attrs = dev_attrs, --}; -- --static const struct attribute_group *groups[] = { -- &dev_attr_group, -- NULL, --}; -+ATTRIBUTE_GROUPS(uwb_dev); - - /** - * Device SYSFS registration -- * -- * - */ - static int __uwb_dev_sys_add(struct uwb_dev *uwb_dev, struct device *parent_dev) - { -@@ -276,7 +266,7 @@ static int __uwb_dev_sys_add(struct uwb_ - /* Device sysfs files are only useful for neighbor devices not - local radio controllers. */ - if (&uwb_dev->rc->uwb_dev != uwb_dev) -- dev->groups = groups; -+ dev->groups = uwb_dev_groups; - dev->parent = parent_dev; - dev_set_drvdata(dev, uwb_dev); - diff --git a/uwb-convert-bus-code-to-use-dev_groups.patch b/uwb-convert-bus-code-to-use-dev_groups.patch deleted file mode 100644 index 362f00870ae6d..0000000000000 --- a/uwb-convert-bus-code-to-use-dev_groups.patch +++ /dev/null @@ -1,55 +0,0 @@ -From foo@baz Sun Oct 6 13:37:35 PDT 2013 -Date: Sun, 06 Oct 2013 13:37:35 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: uwb: convert bus code to use dev_groups - -The dev_attrs field of struct bus_type is going away soon, dev_groups -should be used instead. This converts the uwb bus code to use the -correct field. - -Cc: Bruno Morelli <bruno@evidence.eu.com> -Cc: <linux-usb@vger.kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/uwb/umc-bus.c | 13 ++++++++----- - 1 file changed, 8 insertions(+), 5 deletions(-) - ---- a/drivers/uwb/umc-bus.c -+++ b/drivers/uwb/umc-bus.c -@@ -201,6 +201,7 @@ static ssize_t capability_id_show(struct - - return sprintf(buf, "0x%02x\n", umc->cap_id); - } -+static DEVICE_ATTR_RO(capability_id); - - static ssize_t version_show(struct device *dev, struct device_attribute *attr, char *buf) - { -@@ -208,12 +209,14 @@ static ssize_t version_show(struct devic - - return sprintf(buf, "0x%04x\n", umc->version); - } -+static DEVICE_ATTR_RO(version); - --static struct device_attribute umc_dev_attrs[] = { -- __ATTR_RO(capability_id), -- __ATTR_RO(version), -- __ATTR_NULL, -+static struct attribute *umc_dev_attrs[] = { -+ &dev_attr_capability_id.attr, -+ &dev_attr_version.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(umc_dev); - - struct bus_type umc_bus_type = { - .name = "umc", -@@ -222,7 +225,7 @@ struct bus_type umc_bus_type = { - .remove = umc_device_remove, - .suspend = umc_device_suspend, - .resume = umc_device_resume, -- .dev_attrs = umc_dev_attrs, -+ .dev_groups = umc_dev_groups, - }; - EXPORT_SYMBOL_GPL(umc_bus_type); - diff --git a/virtio-convert-bus-code-to-use-dev_groups.patch b/virtio-convert-bus-code-to-use-dev_groups.patch deleted file mode 100644 index 1e68f1ae1f8b9..0000000000000 --- a/virtio-convert-bus-code-to-use-dev_groups.patch +++ /dev/null @@ -1,88 +0,0 @@ -From foo@baz Mon Oct 7 18:11:58 PDT 2013 -Date: Mon, 07 Oct 2013 18:11:58 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: virtio: convert bus code to use dev_groups - -The dev_attrs field of struct bus_type is going away soon, dev_groups -should be used instead. This converts the virtio bus code to use the -correct field. - -Cc: Rusty Russell <rusty@rustcorp.com.au> -Cc: "Michael S. Tsirkin" <mst@redhat.com> -Cc: <virtualization@lists.linux-foundation.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/virtio/virtio.c | 27 +++++++++++++++++++-------- - 1 file changed, 19 insertions(+), 8 deletions(-) - ---- a/drivers/virtio/virtio.c -+++ b/drivers/virtio/virtio.c -@@ -13,18 +13,24 @@ static ssize_t device_show(struct device - struct virtio_device *dev = dev_to_virtio(_d); - return sprintf(buf, "0x%04x\n", dev->id.device); - } -+static DEVICE_ATTR_RO(device); -+ - static ssize_t vendor_show(struct device *_d, - struct device_attribute *attr, char *buf) - { - struct virtio_device *dev = dev_to_virtio(_d); - return sprintf(buf, "0x%04x\n", dev->id.vendor); - } -+static DEVICE_ATTR_RO(vendor); -+ - static ssize_t status_show(struct device *_d, - struct device_attribute *attr, char *buf) - { - struct virtio_device *dev = dev_to_virtio(_d); - return sprintf(buf, "0x%08x\n", dev->config->get_status(dev)); - } -+static DEVICE_ATTR_RO(status); -+ - static ssize_t modalias_show(struct device *_d, - struct device_attribute *attr, char *buf) - { -@@ -32,6 +38,8 @@ static ssize_t modalias_show(struct devi - return sprintf(buf, "virtio:d%08Xv%08X\n", - dev->id.device, dev->id.vendor); - } -+static DEVICE_ATTR_RO(modalias); -+ - static ssize_t features_show(struct device *_d, - struct device_attribute *attr, char *buf) - { -@@ -47,14 +55,17 @@ static ssize_t features_show(struct devi - len += sprintf(buf+len, "\n"); - return len; - } --static struct device_attribute virtio_dev_attrs[] = { -- __ATTR_RO(device), -- __ATTR_RO(vendor), -- __ATTR_RO(status), -- __ATTR_RO(modalias), -- __ATTR_RO(features), -- __ATTR_NULL -+static DEVICE_ATTR_RO(features); -+ -+static struct attribute *virtio_dev_attrs[] = { -+ &dev_attr_device.attr, -+ &dev_attr_vendor.attr, -+ &dev_attr_status.attr, -+ &dev_attr_modalias.attr, -+ &dev_attr_features.attr, -+ NULL, - }; -+ATTRIBUTE_GROUPS(virtio_dev); - - static inline int virtio_id_match(const struct virtio_device *dev, - const struct virtio_device_id *id) -@@ -165,7 +176,7 @@ static int virtio_dev_remove(struct devi - static struct bus_type virtio_bus = { - .name = "virtio", - .match = virtio_dev_match, -- .dev_attrs = virtio_dev_attrs, -+ .dev_groups = virtio_dev_groups, - .uevent = virtio_uevent, - .probe = virtio_dev_probe, - .remove = virtio_dev_remove, diff --git a/xenbus-convert-bus-code-to-use-dev_groups.patch b/xenbus-convert-bus-code-to-use-dev_groups.patch deleted file mode 100644 index 1b3c9626aafe6..0000000000000 --- a/xenbus-convert-bus-code-to-use-dev_groups.patch +++ /dev/null @@ -1,104 +0,0 @@ -From foo@baz Sun Oct 6 23:40:53 PDT 2013 -Date: Sun, 06 Oct 2013 23:40:53 -0700 -To: Greg KH <gregkh@linuxfoundation.org> -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Subject: xenbus: convert bus code to use dev_groups - -The dev_attrs field of struct bus_type is going away soon, dev_groups -should be used instead. This converts the xenbus code to use the -correct field. - -Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> -Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com> -Cc: David Vrabel <david.vrabel@citrix.com> -Cc: <xen-devel@lists.xenproject.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/xen/xenbus/xenbus_probe.c | 24 ++++++++++++++++++------ - drivers/xen/xenbus/xenbus_probe.h | 2 +- - drivers/xen/xenbus/xenbus_probe_backend.c | 2 +- - drivers/xen/xenbus/xenbus_probe_frontend.c | 2 +- - 4 files changed, 21 insertions(+), 9 deletions(-) - ---- a/drivers/xen/xenbus/xenbus_probe.c -+++ b/drivers/xen/xenbus/xenbus_probe.c -@@ -384,12 +384,14 @@ static ssize_t nodename_show(struct devi - { - return sprintf(buf, "%s\n", to_xenbus_device(dev)->nodename); - } -+static DEVICE_ATTR_RO(nodename); - - static ssize_t devtype_show(struct device *dev, - struct device_attribute *attr, char *buf) - { - return sprintf(buf, "%s\n", to_xenbus_device(dev)->devicetype); - } -+static DEVICE_ATTR_RO(devtype); - - static ssize_t modalias_show(struct device *dev, - struct device_attribute *attr, char *buf) -@@ -397,14 +399,24 @@ static ssize_t modalias_show(struct devi - return sprintf(buf, "%s:%s\n", dev->bus->name, - to_xenbus_device(dev)->devicetype); - } -+static DEVICE_ATTR_RO(modalias); - --struct device_attribute xenbus_dev_attrs[] = { -- __ATTR_RO(nodename), -- __ATTR_RO(devtype), -- __ATTR_RO(modalias), -- __ATTR_NULL -+static struct attribute *xenbus_dev_attrs[] = { -+ &dev_attr_nodename.attr, -+ &dev_attr_devtype.attr, -+ &dev_attr_modalias.attr, -+ NULL, - }; --EXPORT_SYMBOL_GPL(xenbus_dev_attrs); -+ -+static const struct attribute_group xenbus_dev_group = { -+ .attrs = xenbus_dev_attrs, -+}; -+ -+const struct attribute_group *xenbus_dev_groups[] = { -+ &xenbus_dev_group, -+ NULL, -+}; -+EXPORT_SYMBOL_GPL(xenbus_dev_groups); - - int xenbus_probe_node(struct xen_bus_type *bus, - const char *type, ---- a/drivers/xen/xenbus/xenbus_probe.h -+++ b/drivers/xen/xenbus/xenbus_probe.h -@@ -54,7 +54,7 @@ enum xenstore_init { - XS_LOCAL, - }; - --extern struct device_attribute xenbus_dev_attrs[]; -+extern const struct attribute_group *xenbus_dev_groups[]; - - extern int xenbus_match(struct device *_dev, struct device_driver *_drv); - extern int xenbus_dev_probe(struct device *_dev); ---- a/drivers/xen/xenbus/xenbus_probe_backend.c -+++ b/drivers/xen/xenbus/xenbus_probe_backend.c -@@ -200,7 +200,7 @@ static struct xen_bus_type xenbus_backen - .probe = xenbus_dev_probe, - .remove = xenbus_dev_remove, - .shutdown = xenbus_dev_shutdown, -- .dev_attrs = xenbus_dev_attrs, -+ .dev_groups = xenbus_dev_groups, - }, - }; - ---- a/drivers/xen/xenbus/xenbus_probe_frontend.c -+++ b/drivers/xen/xenbus/xenbus_probe_frontend.c -@@ -154,7 +154,7 @@ static struct xen_bus_type xenbus_fronte - .probe = xenbus_frontend_dev_probe, - .remove = xenbus_dev_remove, - .shutdown = xenbus_dev_shutdown, -- .dev_attrs = xenbus_dev_attrs, -+ .dev_groups = xenbus_dev_groups, - - .pm = &xenbus_pm_ops, - }, |