[PATCH 10/16] powerpc: vio: use dev_groups and not dev_attrs for bus_type

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH 10/16] powerpc: vio: use dev_groups and not dev_attrs for bus_type

Greg Kroah-Hartman
The dev_attrs field has long been "depreciated" and is finally being
removed, so move the driver to use the "correct" dev_groups field
instead for struct bus_type.

Cc: Benjamin Herrenschmidt <[hidden email]>
Cc: Paul Mackerras <[hidden email]>
Cc: Michael Ellerman <[hidden email]>
Cc: Vineet Gupta <[hidden email]>
Cc: Bart Van Assche <[hidden email]>
Cc: Robin Murphy <[hidden email]>
Cc: Joerg Roedel <[hidden email]>
Cc: Johan Hovold <[hidden email]>
Cc: Alexey Kardashevskiy <[hidden email]>
Cc: Krzysztof Kozlowski <[hidden email]>
Cc: <[hidden email]>
Signed-off-by: Greg Kroah-Hartman <[hidden email]>
---
 arch/powerpc/platforms/pseries/vio.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/platforms/pseries/vio.c b/arch/powerpc/platforms/pseries/vio.c
index 28b09fd797ec..fd6595598662 100644
--- a/arch/powerpc/platforms/pseries/vio.c
+++ b/arch/powerpc/platforms/pseries/vio.c
@@ -1537,6 +1537,7 @@ static ssize_t name_show(struct device *dev,
 {
  return sprintf(buf, "%s\n", to_vio_dev(dev)->name);
 }
+static DEVICE_ATTR_RO(name);
 
 static ssize_t devspec_show(struct device *dev,
  struct device_attribute *attr, char *buf)
@@ -1545,6 +1546,7 @@ static ssize_t devspec_show(struct device *dev,
 
  return sprintf(buf, "%s\n", of_node_full_name(of_node));
 }
+static DEVICE_ATTR_RO(devspec);
 
 static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
      char *buf)
@@ -1566,6 +1568,7 @@ static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
 
  return sprintf(buf, "vio:T%sS%s\n", vio_dev->type, cp);
 }
+static DEVICE_ATTR_RO(modalias);
 
 static struct device_attribute vio_dev_attrs[] = {
  __ATTR_RO(name),
@@ -1573,6 +1576,13 @@ static struct device_attribute vio_dev_attrs[] = {
  __ATTR_RO(modalias),
  __ATTR_NULL
 };
+static struct attribute *vio_dev_attrs[] = {
+ &dev_attr_name.attr,
+ &dev_attr_devspec.attr,
+ &dev_attr_modalias.attr,
+ NULL,
+};
+ATTRIBUTE_GROUPS(vio_dev);
 
 void vio_unregister_device(struct vio_dev *viodev)
 {
@@ -1608,7 +1618,7 @@ static int vio_hotplug(struct device *dev, struct kobj_uevent_env *env)
 
 struct bus_type vio_bus_type = {
  .name = "vio",
- .dev_attrs = vio_dev_attrs,
+ .dev_groups = vio_dev_groups,
  .uevent = vio_hotplug,
  .match = vio_bus_match,
  .probe = vio_bus_probe,
--
2.13.0

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH 10/16] powerpc: vio: use dev_groups and not dev_attrs for bus_type

Greg Kroah-Hartman
On Tue, Jun 06, 2017 at 09:22:15PM +0200, Greg Kroah-Hartman wrote:

> The dev_attrs field has long been "depreciated" and is finally being
> removed, so move the driver to use the "correct" dev_groups field
> instead for struct bus_type.
>
> Cc: Benjamin Herrenschmidt <[hidden email]>
> Cc: Paul Mackerras <[hidden email]>
> Cc: Michael Ellerman <[hidden email]>
> Cc: Vineet Gupta <[hidden email]>
> Cc: Bart Van Assche <[hidden email]>
> Cc: Robin Murphy <[hidden email]>
> Cc: Joerg Roedel <[hidden email]>
> Cc: Johan Hovold <[hidden email]>
> Cc: Alexey Kardashevskiy <[hidden email]>
> Cc: Krzysztof Kozlowski <[hidden email]>
> Cc: <[hidden email]>
> Signed-off-by: Greg Kroah-Hartman <[hidden email]>
> ---
>  arch/powerpc/platforms/pseries/vio.c | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/platforms/pseries/vio.c b/arch/powerpc/platforms/pseries/vio.c
> index 28b09fd797ec..fd6595598662 100644
> --- a/arch/powerpc/platforms/pseries/vio.c
> +++ b/arch/powerpc/platforms/pseries/vio.c
> @@ -1537,6 +1537,7 @@ static ssize_t name_show(struct device *dev,
>  {
>   return sprintf(buf, "%s\n", to_vio_dev(dev)->name);
>  }
> +static DEVICE_ATTR_RO(name);
>  
>  static ssize_t devspec_show(struct device *dev,
>   struct device_attribute *attr, char *buf)
> @@ -1545,6 +1546,7 @@ static ssize_t devspec_show(struct device *dev,
>  
>   return sprintf(buf, "%s\n", of_node_full_name(of_node));
>  }
> +static DEVICE_ATTR_RO(devspec);
>  
>  static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
>       char *buf)
> @@ -1566,6 +1568,7 @@ static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
>  
>   return sprintf(buf, "vio:T%sS%s\n", vio_dev->type, cp);
>  }
> +static DEVICE_ATTR_RO(modalias);
>  
>  static struct device_attribute vio_dev_attrs[] = {
>   __ATTR_RO(name),
> @@ -1573,6 +1576,13 @@ static struct device_attribute vio_dev_attrs[] = {
>   __ATTR_RO(modalias),
>   __ATTR_NULL
>  };
> +static struct attribute *vio_dev_attrs[] = {

Hm, this feels wrong, odd that 0-day passed it.  I should be deleting
the above vio_dev_attrs field as well.  Is powerpc really a dead
platform?  :)

thanks,

greg k-h
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH 10/16] powerpc: vio: use dev_groups and not dev_attrs for bus_type

Benjamin Herrenschmidt
On Tue, 2017-06-06 at 21:30 +0200, Greg Kroah-Hartman wrote:

> >  
> >   static struct device_attribute vio_dev_attrs[] = {
> >        __ATTR_RO(name),
> > @@ -1573,6 +1576,13 @@ static struct device_attribute vio_dev_attrs[] = {
> >        __ATTR_RO(modalias),
> >        __ATTR_NULL
> >   };
> > +static struct attribute *vio_dev_attrs[] = {
>
> Hm, this feels wrong, odd that 0-day passed it.  I should be deleting
> the above vio_dev_attrs field as well.  Is powerpc really a dead
> platform?  :)

Haha, not yet no, and the above is actually still quite actively
in use as it's part of our hypervisor virtual IO infrastructure.

Cheers,
Ben.

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH 10/16] powerpc: vio: use dev_groups and not dev_attrs for bus_type

Greg Kroah-Hartman
On Wed, Jun 07, 2017 at 09:04:41AM +1000, Benjamin Herrenschmidt wrote:

> On Tue, 2017-06-06 at 21:30 +0200, Greg Kroah-Hartman wrote:
> > >  
> > >   static struct device_attribute vio_dev_attrs[] = {
> > >        __ATTR_RO(name),
> > > @@ -1573,6 +1576,13 @@ static struct device_attribute vio_dev_attrs[] = {
> > >        __ATTR_RO(modalias),
> > >        __ATTR_NULL
> > >   };
> > > +static struct attribute *vio_dev_attrs[] = {
> >
> > Hm, this feels wrong, odd that 0-day passed it.  I should be deleting
> > the above vio_dev_attrs field as well.  Is powerpc really a dead
> > platform?  :)
>
> Haha, not yet no, and the above is actually still quite actively
> in use as it's part of our hypervisor virtual IO infrastructure.

Ok, let me fix this, right after I emailed 0-day sent me the build error :)
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH 10/16] powerpc: vio: use dev_groups and not dev_attrs for bus_type

Benjamin Herrenschmidt
On Wed, 2017-06-07 at 07:45 +0200, Greg Kroah-Hartman wrote:

> On Wed, Jun 07, 2017 at 09:04:41AM +1000, Benjamin Herrenschmidt wrote:
> > On Tue, 2017-06-06 at 21:30 +0200, Greg Kroah-Hartman wrote:
> > > >  
> > > >   static struct device_attribute vio_dev_attrs[] = {
> > > >        __ATTR_RO(name),
> > > > @@ -1573,6 +1576,13 @@ static struct device_attribute vio_dev_attrs[] = {
> > > >        __ATTR_RO(modalias),
> > > >        __ATTR_NULL
> > > >   };
> > > > +static struct attribute *vio_dev_attrs[] = {
> > >
> > > Hm, this feels wrong, odd that 0-day passed it.  I should be deleting
> > > the above vio_dev_attrs field as well.  Is powerpc really a dead
> > > platform?  :)
> >
> > Haha, not yet no, and the above is actually still quite actively
> > in use as it's part of our hypervisor virtual IO infrastructure.
>
> Ok, let me fix this, right after I emailed 0-day sent me the build error :)

Thanks !

Cheers,
Ben.

Reply | Threaded
Open this post in threaded view
|

[PATCH 10/16 v2] powerpc: vio: use dev_groups and not dev_attrs for bus_type

Greg Kroah-Hartman
In reply to this post by Greg Kroah-Hartman
From: Greg Kroah-Hartman <[hidden email]>

The dev_attrs field has long been "depreciated" and is finally being
removed, so move the driver to use the "correct" dev_groups field
instead for struct bus_type.

Cc: Benjamin Herrenschmidt <[hidden email]>
Cc: Paul Mackerras <[hidden email]>
Cc: Michael Ellerman <[hidden email]>
Cc: Vineet Gupta <[hidden email]>
Cc: Bart Van Assche <[hidden email]>
Cc: Robin Murphy <[hidden email]>
Cc: Joerg Roedel <[hidden email]>
Cc: Johan Hovold <[hidden email]>
Cc: Alexey Kardashevskiy <[hidden email]>
Cc: Krzysztof Kozlowski <[hidden email]>
Cc: <[hidden email]>
Signed-off-by: Greg Kroah-Hartman <[hidden email]>
---

v2 - actually remove the old attribute list

 arch/powerpc/platforms/pseries/vio.c | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/arch/powerpc/platforms/pseries/vio.c b/arch/powerpc/platforms/pseries/vio.c
index 28b09fd797ec..b4f679e3ca3a 100644
--- a/arch/powerpc/platforms/pseries/vio.c
+++ b/arch/powerpc/platforms/pseries/vio.c
@@ -1537,6 +1537,7 @@ static ssize_t name_show(struct device *dev,
 {
  return sprintf(buf, "%s\n", to_vio_dev(dev)->name);
 }
+static DEVICE_ATTR_RO(name);
 
 static ssize_t devspec_show(struct device *dev,
  struct device_attribute *attr, char *buf)
@@ -1545,6 +1546,7 @@ static ssize_t devspec_show(struct device *dev,
 
  return sprintf(buf, "%s\n", of_node_full_name(of_node));
 }
+static DEVICE_ATTR_RO(devspec);
 
 static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
      char *buf)
@@ -1566,13 +1568,15 @@ static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
 
  return sprintf(buf, "vio:T%sS%s\n", vio_dev->type, cp);
 }
+static DEVICE_ATTR_RO(modalias);
 
-static struct device_attribute vio_dev_attrs[] = {
- __ATTR_RO(name),
- __ATTR_RO(devspec),
- __ATTR_RO(modalias),
- __ATTR_NULL
+static struct attribute *vio_dev_attrs[] = {
+ &dev_attr_name.attr,
+ &dev_attr_devspec.attr,
+ &dev_attr_modalias.attr,
+ NULL,
 };
+ATTRIBUTE_GROUPS(vio_dev);
 
 void vio_unregister_device(struct vio_dev *viodev)
 {
@@ -1608,7 +1612,7 @@ static int vio_hotplug(struct device *dev, struct kobj_uevent_env *env)
 
 struct bus_type vio_bus_type = {
  .name = "vio",
- .dev_attrs = vio_dev_attrs,
+ .dev_groups = vio_dev_groups,
  .uevent = vio_hotplug,
  .match = vio_bus_match,
  .probe = vio_bus_probe,
--
2.13.0