Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

wusbcore: dev-sysfs: use permission-specific DEVICE_ATTR variants

Use DEVICE_ATTR_WO for write ony attributes and DEVICE_ATTR_RO for read
only attributes. This simplifies the source code, improves readbility,
and reduces the chance of inconsistencies.

The semantic patch for the RO case is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@ro@
declarer name DEVICE_ATTR;
identifier x,x_show;
@@

DEVICE_ATTR(x, \(0444\|S_IRUGO\), x_show, NULL);

@script:ocaml@
x << ro.x;
x_show << ro.x_show;
@@

if not (x^"_show" = x_show) then Coccilib.include_match false

@@
declarer name DEVICE_ATTR_RO;
identifier ro.x,ro.x_show;
@@

- DEVICE_ATTR(x, \(0444\|S_IRUGO\), x_show, NULL);
+ DEVICE_ATTR_RO(x);
// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Julia Lawall and committed by
Greg Kroah-Hartman
4d055647 d79cda04

+3 -3
+3 -3
drivers/usb/wusbcore/dev-sysfs.c
··· 53 53 wusbhc_put(wusbhc); 54 54 return size; 55 55 } 56 - static DEVICE_ATTR(wusb_disconnect, 0200, NULL, wusb_disconnect_store); 56 + static DEVICE_ATTR_WO(wusb_disconnect); 57 57 58 58 static ssize_t wusb_cdid_show(struct device *dev, 59 59 struct device_attribute *attr, char *buf) ··· 69 69 wusb_dev_put(wusb_dev); 70 70 return result + 1; 71 71 } 72 - static DEVICE_ATTR(wusb_cdid, 0444, wusb_cdid_show, NULL); 72 + static DEVICE_ATTR_RO(wusb_cdid); 73 73 74 74 static ssize_t wusb_ck_store(struct device *dev, 75 75 struct device_attribute *attr, ··· 105 105 wusbhc_put(wusbhc); 106 106 return result < 0 ? result : size; 107 107 } 108 - static DEVICE_ATTR(wusb_ck, 0200, NULL, wusb_ck_store); 108 + static DEVICE_ATTR_WO(wusb_ck); 109 109 110 110 static struct attribute *wusb_dev_attrs[] = { 111 111 &dev_attr_wusb_disconnect.attr,