On Sat, Oct 29, 2016 at 09:37:07PM +0200, Julia Lawall wrote: > Use DEVICE_ATTR_RW for read-write attributes. This simplifies the > source code, improves readbility, and reduces the chance of > inconsistencies. > > The semantic patch that makes this change is as follows: > (http://coccinelle.lip6.fr/) > > // <smpl> > @rw@ > declarer name DEVICE_ATTR; > identifier x,x_show,x_store; > @@ > > DEVICE_ATTR(x, \(0644\|S_IRUGO|S_IWUSR\), x_show, x_store); > > @script:ocaml@ > x << rw.x; > x_show << rw.x_show; > x_store << rw.x_store; > @@ > > if not (x^"_show" = x_show && x^"_store" = x_store) > then Coccilib.include_match false > > @@ > declarer name DEVICE_ATTR_RW; > identifier rw.x,rw.x_show,rw.x_store; > @@ > > - DEVICE_ATTR(x, \(0644\|S_IRUGO|S_IWUSR\), x_show, x_store); > + DEVICE_ATTR_RW(x); > // </smpl> > > Signed-off-by: Julia Lawall <Julia.Lawall@xxxxxxx> I applied this to pci/aspm to follow the herd, although it looks pretty similar to the ill-fated "Replace numeric parameter like 0444 with macro" series (http://lwn.net/Articles/696229/). Maybe this is different because everybody except me knows what ATTR_RW means? To me, "0644" contained more information than "_RW" does. I do certainly like the removal of the "_show" and "_store" redundancy. > --- > drivers/pci/pcie/aspm.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c > index 0ec649d..3b14d9e 100644 > --- a/drivers/pci/pcie/aspm.c > +++ b/drivers/pci/pcie/aspm.c > @@ -886,8 +886,8 @@ static ssize_t clk_ctl_store(struct device *dev, > return n; > } > > -static DEVICE_ATTR(link_state, 0644, link_state_show, link_state_store); > -static DEVICE_ATTR(clk_ctl, 0644, clk_ctl_show, clk_ctl_store); > +static DEVICE_ATTR_RW(link_state); > +static DEVICE_ATTR_RW(clk_ctl); > > static char power_group[] = "power"; > void pcie_aspm_create_sysfs_dev_files(struct pci_dev *pdev) > -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html