aboutsummaryrefslogtreecommitdiffstats
path: root/ppc-vio-convert-bus-code-to-use-bus_groups.patch
diff options
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-08-23 13:25:27 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-08-23 13:25:27 -0700
commitf2fea6a31b09a12fe4d9e9e3f9a8e2be017ad611 (patch)
treec16afc7b5e4b92cb361c6d2b3ec6f0e9a780a476 /ppc-vio-convert-bus-code-to-use-bus_groups.patch
parente930b8544abee8d7894d5f55af16cb5e7be25f9f (diff)
downloadpatches-f2fea6a31b09a12fe4d9e9e3f9a8e2be017ad611.tar.gz
updates
Diffstat (limited to 'ppc-vio-convert-bus-code-to-use-bus_groups.patch')
-rw-r--r--ppc-vio-convert-bus-code-to-use-bus_groups.patch112
1 files changed, 112 insertions, 0 deletions
diff --git a/ppc-vio-convert-bus-code-to-use-bus_groups.patch b/ppc-vio-convert-bus-code-to-use-bus_groups.patch
new file mode 100644
index 00000000000000..9980809a102a98
--- /dev/null
+++ b/ppc-vio-convert-bus-code-to-use-bus_groups.patch
@@ -0,0 +1,112 @@
+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; }