2014-10-30 16:31:41

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH] PCI: fix name of 'enable' sysfs file

From: Greg Kroah-Hartman <[email protected]>

Back in commit 5136b2da770d ("PCI: convert bus code to use dev_groups"),
I misstyped the 'enable' sysfs file as 'enabled', which broke the
userspace api. This patch fixes that issue by renaming the file back.

Reported-by: Jeff Epler <[email protected]>
Cc: stable <[email protected]> # 3.13
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---

Jeff, if you could test this to make sure I got it right, that would be
great. Again, sorry about this, it was a dumb typo on my part.

diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index 92b6d9ab00e4..2c6643fdc0cf 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -185,7 +185,7 @@ static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
}
static DEVICE_ATTR_RO(modalias);

-static ssize_t enabled_store(struct device *dev, struct device_attribute *attr,
+static ssize_t enable_store(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count)
{
struct pci_dev *pdev = to_pci_dev(dev);
@@ -210,7 +210,7 @@ static ssize_t enabled_store(struct device *dev, struct device_attribute *attr,
return result < 0 ? result : count;
}

-static ssize_t enabled_show(struct device *dev, struct device_attribute *attr,
+static ssize_t enable_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
struct pci_dev *pdev;
@@ -218,7 +218,7 @@ static ssize_t enabled_show(struct device *dev, struct device_attribute *attr,
pdev = to_pci_dev(dev);
return sprintf(buf, "%u\n", atomic_read(&pdev->enable_cnt));
}
-static DEVICE_ATTR_RW(enabled);
+static DEVICE_ATTR_RW(enable);

#ifdef CONFIG_NUMA
static ssize_t numa_node_show(struct device *dev, struct device_attribute *attr,
@@ -563,7 +563,7 @@ static struct attribute *pci_dev_attrs[] = {
#endif
&dev_attr_dma_mask_bits.attr,
&dev_attr_consistent_dma_mask_bits.attr,
- &dev_attr_enabled.attr,
+ &dev_attr_enable.attr,
&dev_attr_broken_parity_status.attr,
&dev_attr_msi_bus.attr,
#if defined(CONFIG_PM_RUNTIME) && defined(CONFIG_ACPI)


2014-10-30 16:50:46

by Jiri Kosina

[permalink] [raw]
Subject: Re: [PATCH] PCI: fix name of 'enable' sysfs file

On Thu, 30 Oct 2014, Greg Kroah-Hartman wrote:

> From: Greg Kroah-Hartman <[email protected]>
>
> Back in commit 5136b2da770d ("PCI: convert bus code to use dev_groups"),
> I misstyped the 'enable' sysfs file as 'enabled', which broke the
> userspace api. This patch fixes that issue by renaming the file back.

But this is in turn 3.13 -> 3.18 userspace interface breakage ... I don't
think there is other graceful way out of this than creating a symlink so
that both variants work, right?

--
Jiri Kosina
SUSE Labs

2014-10-30 16:58:06

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] PCI: fix name of 'enable' sysfs file

On Thu, Oct 30, 2014 at 05:50:41PM +0100, Jiri Kosina wrote:
> On Thu, 30 Oct 2014, Greg Kroah-Hartman wrote:
>
> > From: Greg Kroah-Hartman <[email protected]>
> >
> > Back in commit 5136b2da770d ("PCI: convert bus code to use dev_groups"),
> > I misstyped the 'enable' sysfs file as 'enabled', which broke the
> > userspace api. This patch fixes that issue by renaming the file back.
>
> But this is in turn 3.13 -> 3.18 userspace interface breakage ... I don't
> think there is other graceful way out of this than creating a symlink so
> that both variants work, right?

Given that no one noticed that this was broken until now, I really doubt
that anyone wrote code for the new file name. I recommend just fixing
it back, and getting it into all stable kernel trees and moving on.

A symlink for such a foolish mistake seems like a bigger mistake :)

thanks,

greg k-h

2014-10-30 17:36:29

by Bjorn Helgaas

[permalink] [raw]
Subject: Re: [PATCH] PCI: fix name of 'enable' sysfs file

On Thu, Oct 30, 2014 at 09:30:28AM -0700, Greg Kroah-Hartman wrote:
> From: Greg Kroah-Hartman <[email protected]>
>
> Back in commit 5136b2da770d ("PCI: convert bus code to use dev_groups"),
> I misstyped the 'enable' sysfs file as 'enabled', which broke the
> userspace api. This patch fixes that issue by renaming the file back.
>
> Reported-by: Jeff Epler <[email protected]>
> Cc: stable <[email protected]> # 3.13
> Signed-off-by: Greg Kroah-Hartman <[email protected]>

I applied this to for-linus for v3.18. If a symlink turns out to be
needed, we can also add that. Jeff, if you test this, I'll update it with
your Tested-by.

> ---
>
> Jeff, if you could test this to make sure I got it right, that would be
> great. Again, sorry about this, it was a dumb typo on my part.
>
> diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
> index 92b6d9ab00e4..2c6643fdc0cf 100644
> --- a/drivers/pci/pci-sysfs.c
> +++ b/drivers/pci/pci-sysfs.c
> @@ -185,7 +185,7 @@ static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
> }
> static DEVICE_ATTR_RO(modalias);
>
> -static ssize_t enabled_store(struct device *dev, struct device_attribute *attr,
> +static ssize_t enable_store(struct device *dev, struct device_attribute *attr,
> const char *buf, size_t count)
> {
> struct pci_dev *pdev = to_pci_dev(dev);
> @@ -210,7 +210,7 @@ static ssize_t enabled_store(struct device *dev, struct device_attribute *attr,
> return result < 0 ? result : count;
> }
>
> -static ssize_t enabled_show(struct device *dev, struct device_attribute *attr,
> +static ssize_t enable_show(struct device *dev, struct device_attribute *attr,
> char *buf)
> {
> struct pci_dev *pdev;
> @@ -218,7 +218,7 @@ static ssize_t enabled_show(struct device *dev, struct device_attribute *attr,
> pdev = to_pci_dev(dev);
> return sprintf(buf, "%u\n", atomic_read(&pdev->enable_cnt));
> }
> -static DEVICE_ATTR_RW(enabled);
> +static DEVICE_ATTR_RW(enable);
>
> #ifdef CONFIG_NUMA
> static ssize_t numa_node_show(struct device *dev, struct device_attribute *attr,
> @@ -563,7 +563,7 @@ static struct attribute *pci_dev_attrs[] = {
> #endif
> &dev_attr_dma_mask_bits.attr,
> &dev_attr_consistent_dma_mask_bits.attr,
> - &dev_attr_enabled.attr,
> + &dev_attr_enable.attr,
> &dev_attr_broken_parity_status.attr,
> &dev_attr_msi_bus.attr,
> #if defined(CONFIG_PM_RUNTIME) && defined(CONFIG_ACPI)

2014-10-30 21:23:58

by Jeff Epler

[permalink] [raw]
Subject: Re: [PATCH] PCI: fix name of 'enable' sysfs file

On Thu, Oct 30, 2014 at 09:30:28AM -0700, Greg Kroah-Hartman wrote:
> From: Greg Kroah-Hartman <[email protected]>
>
> Back in commit 5136b2da770d ("PCI: convert bus code to use dev_groups"),
> I misstyped the 'enable' sysfs file as 'enabled', which broke the
> userspace api. This patch fixes that issue by renaming the file back.
>
> Reported-by: Jeff Epler <[email protected]>
> Cc: stable <[email protected]> # 3.13
> Signed-off-by: Greg Kroah-Hartman <[email protected]>

Tested-by: Jeff Epler <[email protected]>

(with the caveat that, since LinuxCNC uses the -rt kernel, I tested this
change manually backported to 3.14-rt)

Thanks again for your fast action on this.

Jeff