Re: [PATCH 14/36] PCI: convert class code to use dev_groups

From: Bjorn Helgaas
Date: Thu Jul 25 2013 - 14:09:27 EST


On Wed, Jul 24, 2013 at 03:05:17PM -0700, Greg Kroah-Hartman wrote:
> The dev_attrs field of struct class is going away soon, dev_groups
> should be used instead. This converts the PCI class code to use the
> correct field.
>
> Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> ---
>
> Bjorn, feel free to take this through your tree, or ACK it and I can take it
> through mine.

Applied to my pci/misc branch for v3.12, thanks!

>
> drivers/pci/pci-sysfs.c | 32 +++++++++++++++++++++-----------
> drivers/pci/pci.h | 2 +-
> drivers/pci/probe.c | 2 +-
> 3 files changed, 23 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
> index c0dbe1f6..7128cfdd 100644
> --- a/drivers/pci/pci-sysfs.c
> +++ b/drivers/pci/pci-sysfs.c
> @@ -131,19 +131,19 @@ static ssize_t pci_bus_show_cpuaffinity(struct device *dev,
> return ret;
> }
>
> -static inline ssize_t pci_bus_show_cpumaskaffinity(struct device *dev,
> - struct device_attribute *attr,
> - char *buf)
> +static ssize_t cpuaffinity_show(struct device *dev,
> + struct device_attribute *attr, char *buf)
> {
> return pci_bus_show_cpuaffinity(dev, 0, attr, buf);
> }
> +static DEVICE_ATTR_RO(cpuaffinity);
>
> -static inline ssize_t pci_bus_show_cpulistaffinity(struct device *dev,
> - struct device_attribute *attr,
> - char *buf)
> +static ssize_t cpulistaffinity_show(struct device *dev,
> + struct device_attribute *attr, char *buf)
> {
> return pci_bus_show_cpuaffinity(dev, 1, attr, buf);
> }
> +static DEVICE_ATTR_RO(cpulistaffinity);
>
> /* show resources */
> static ssize_t
> @@ -379,6 +379,7 @@ dev_bus_rescan_store(struct device *dev, struct device_attribute *attr,
> }
> return count;
> }
> +static DEVICE_ATTR(rescan, (S_IWUSR|S_IWGRP), NULL, dev_bus_rescan_store);
>
> #if defined(CONFIG_PM_RUNTIME) && defined(CONFIG_ACPI)
> static ssize_t d3cold_allowed_store(struct device *dev,
> @@ -514,11 +515,20 @@ struct device_attribute pci_dev_attrs[] = {
> __ATTR_NULL,
> };
>
> -struct device_attribute pcibus_dev_attrs[] = {
> - __ATTR(rescan, (S_IWUSR|S_IWGRP), NULL, dev_bus_rescan_store),
> - __ATTR(cpuaffinity, S_IRUGO, pci_bus_show_cpumaskaffinity, NULL),
> - __ATTR(cpulistaffinity, S_IRUGO, pci_bus_show_cpulistaffinity, NULL),
> - __ATTR_NULL,
> +static struct attribute *pcibus_attrs[] = {
> + &dev_attr_rescan.attr,
> + &dev_attr_cpuaffinity.attr,
> + &dev_attr_cpulistaffinity.attr,
> + NULL,
> +};
> +
> +static const struct attribute_group pcibus_group = {
> + .attrs = pcibus_attrs,
> +};
> +
> +const struct attribute_group *pcibus_groups[] = {
> + &pcibus_group,
> + NULL,
> };
>
> static ssize_t
> diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
> index d1182c4a..816c297f 100644
> --- a/drivers/pci/pci.h
> +++ b/drivers/pci/pci.h
> @@ -151,7 +151,7 @@ static inline int pci_no_d1d2(struct pci_dev *dev)
>
> }
> extern struct device_attribute pci_dev_attrs[];
> -extern struct device_attribute pcibus_dev_attrs[];
> +extern const struct attribute_group *pcibus_groups[];
> extern struct device_type pci_dev_type;
> extern struct bus_attribute pci_bus_attrs[];
>
> diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
> index 46ada5c0..cf57fe79 100644
> --- a/drivers/pci/probe.c
> +++ b/drivers/pci/probe.c
> @@ -96,7 +96,7 @@ static void release_pcibus_dev(struct device *dev)
> static struct class pcibus_class = {
> .name = "pci_bus",
> .dev_release = &release_pcibus_dev,
> - .dev_attrs = pcibus_dev_attrs,
> + .dev_groups = pcibus_groups,
> };
>
> static int __init pcibus_class_init(void)
> --
> 1.8.3.rc0.20.gb99dd2e
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/