Message ID | 20141030163028.GA22250@kroah.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
On Thu, 30 Oct 2014, Greg Kroah-Hartman wrote: > From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > > 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?
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 <gregkh@linuxfoundation.org> > > > > 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 -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Oct 30, 2014 at 09:30:28AM -0700, Greg Kroah-Hartman wrote: > From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > > 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 <jepler@unpythonic.net> > Cc: stable <stable@vger.kernel.org> # 3.13 > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> 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) -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Oct 30, 2014 at 09:30:28AM -0700, Greg Kroah-Hartman wrote: > From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > > 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 <jepler@unpythonic.net> > Cc: stable <stable@vger.kernel.org> # 3.13 > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Tested-by: Jeff Epler <jepler@unpythonic.net> (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 -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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)