aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-11-13 16:31:36 +0900
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-11-13 16:31:36 +0900
commit7fa8fb124d5339a4e0d20d0a97a6b63731ce97d3 (patch)
tree5761a78996b2f07f160c7a1e91b3a0f387272c4c
parent52894f7f35f3c6ad2b3362f021cdee69797d7a79 (diff)
downloadpatches-7fa8fb124d5339a4e0d20d0a97a6b63731ce97d3.tar.gz
remove patches upstream now
-rw-r--r--bcma-convert-bus-code-to-use-dev_groups.patch72
-rw-r--r--d01.patch10
-rw-r--r--driver-core-remove-dev_attrs-from-struct-class.patch103
-rw-r--r--driver-core-remove-dev_bin_attrs-from-struct-class.patch112
-rw-r--r--driver-core-remove-struct-bus_type.bus_attrs.patch107
-rw-r--r--driver-core-remove-struct-bus_type.dev_attrs.patch4
-rw-r--r--driver-core-remove-struct-bus_type.drv_attrs.patch101
-rw-r--r--hsi-convert-bus-code-to-use-dev_groups.patch46
-rw-r--r--hv-delete-struct-hv_dev_port_info.patch140
-rw-r--r--hv-delete-vmbus_get_debug_info.patch108
-rw-r--r--hv-make-monitor_pages-a-real-pointer-array.patch108
-rw-r--r--hv-move-class_id-bus-attribute-to-dev_groups.patch109
-rw-r--r--hv-move-client-server_monitor_conn_id-bus-attributes-to-dev_groups.patch159
-rw-r--r--hv-move-client-server_monitor_latency-bus-attributes-to-dev_groups.patch155
-rw-r--r--hv-move-client-server_monitor_pending-bus-attributes-to-dev_groups.patch171
-rw-r--r--hv-move-device_id-bus-attribute-to-dev_groups.patch109
-rw-r--r--hv-move-modalias-bus-attribute-to-dev_groups.patch66
-rw-r--r--hv-move-monitor_id-bus-attribute-to-dev_groups.patch97
-rw-r--r--hv-move-ringbuffer-bus-attributes-to-dev_groups.patch296
-rw-r--r--hv-move-state-bus-attribute-to-dev_groups.patch93
-rw-r--r--hv-use-dev_groups-for-device-attributes.patch105
-rw-r--r--i2o-convert-bus-code-to-use-dev_groups.patch109
-rw-r--r--ide-convert-bus-code-to-use-dev_groups.patch126
-rw-r--r--input-gameport-convert-bus-code-to-use-dev_groups.patch66
-rw-r--r--input-serio-remove-bus-usage-of-dev_attrs.patch112
-rw-r--r--input-serio-use-device_attr_ro.patch62
-rw-r--r--ipack-convert-bus-code-to-use-dev_groups.patch62
-rw-r--r--mdio_bus-convert-bus-code-to-use-dev_groups.patch46
-rw-r--r--memstick-convert-bus-code-to-use-dev_groups.patch52
-rw-r--r--mmc-convert-bus-code-to-use-dev_groups.patch103
-rw-r--r--p26.patch4
-rw-r--r--pci-convert-bus-code-to-use-bus_groups.patch66
-rw-r--r--pci-convert-bus-code-to-use-drv_groups.patch54
-rw-r--r--pcmcia-convert-bus-code-to-use-dev_groups.patch150
-rw-r--r--pmu_bus-convert-bus-code-to-use-dev_groups.patch54
-rw-r--r--pnp-convert-bus-code-to-use-dev_groups.patch123
-rw-r--r--ppc-ibmebus-convert-bus-code-to-use-bus_groups.patch56
-rw-r--r--ppc-vio-convert-bus-code-to-use-bus_groups.patch112
-rw-r--r--rapidio-convert-bus-code-to-use-bus_groups.patch65
-rw-r--r--rapidio-convert-bus-code-to-use-dev_groups.patch120
-rw-r--r--scsi-fcoe-convert-bus-code-to-use-bus_groups.patch46
-rw-r--r--serial-8250_pci-add-support-for-fintek-4-8-and-12-port-cards.patch170
-rw-r--r--serial-8250_pci-clean-up-printk-calls.patch138
-rw-r--r--series53
-rw-r--r--spi-convert-bus-code-to-use-dev_groups.patch45
-rw-r--r--ssb-convert-bus-code-to-use-dev_groups.patch66
-rw-r--r--tifm-convert-bus-code-to-use-dev_groups.patch41
-rw-r--r--uwb-clean-up-attribute-use-by-using-attribute_groups.patch57
-rw-r--r--uwb-convert-bus-code-to-use-dev_groups.patch55
-rw-r--r--virtio-convert-bus-code-to-use-dev_groups.patch88
-rw-r--r--xenbus-convert-bus-code-to-use-dev_groups.patch104
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;
diff --git a/series b/series
index d68fcbf1b092a..9f6c734737fbb 100644
--- a/series
+++ b/series
@@ -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,
- },