Commit f937331b authored by Wolfram Sang's avatar Wolfram Sang Committed by Linus Torvalds

init dynamic bin_attribute structures

Commit 6992f533 ("sysfs: Use one lockdep
class per sysfs attribute.") introduced this requirement.  First, at25
was fixed manually.  Then, other occurences were found with coccinelle
and the following semantic patch.  Results were reviewed and fixed up:

    @ init @
    identifier struct_name, bin;
    @@

    	struct struct_name {
    		...
    		struct bin_attribute bin;
    		...
    	};

    @ main extends init @
    expression E;
    statement S;
    identifier name, err;
    @@

    (
    	struct struct_name *name;
    |
    -	struct struct_name *name = NULL;
    +	struct struct_name *name;
    )
    	...
    (
    	sysfs_bin_attr_init(&name->bin);
    |
    +	sysfs_bin_attr_init(&name->bin);
    	if (sysfs_create_bin_file(E, &name->bin))
    		S
    |
    +	sysfs_bin_attr_init(&name->bin);
    	err = sysfs_create_bin_file(E, &name->bin);
    )
Signed-off-by: default avatarWolfram Sang <w.sang@pengutronix.de>
Cc: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 181427a7
...@@ -956,6 +956,7 @@ void __init txx9_sramc_init(struct resource *r) ...@@ -956,6 +956,7 @@ void __init txx9_sramc_init(struct resource *r)
if (!dev->base) if (!dev->base)
goto exit; goto exit;
dev->dev.cls = &txx9_sramc_sysdev_class; dev->dev.cls = &txx9_sramc_sysdev_class;
sysfs_bin_attr_init(&dev->bindata_attr);
dev->bindata_attr.attr.name = "bindata"; dev->bindata_attr.attr.name = "bindata";
dev->bindata_attr.attr.mode = S_IRUSR | S_IWUSR; dev->bindata_attr.attr.mode = S_IRUSR | S_IWUSR;
dev->bindata_attr.read = txx9_sram_read; dev->bindata_attr.read = txx9_sram_read;
......
...@@ -347,6 +347,7 @@ static int at25_probe(struct spi_device *spi) ...@@ -347,6 +347,7 @@ static int at25_probe(struct spi_device *spi)
* that's sensitive for read and/or write, like ethernet addresses, * that's sensitive for read and/or write, like ethernet addresses,
* security codes, board-specific manufacturing calibrations, etc. * security codes, board-specific manufacturing calibrations, etc.
*/ */
sysfs_bin_attr_init(&at25->bin);
at25->bin.attr.name = "eeprom"; at25->bin.attr.name = "eeprom";
at25->bin.attr.mode = S_IRUSR; at25->bin.attr.mode = S_IRUSR;
at25->bin.read = at25_bin_read; at25->bin.read = at25_bin_read;
......
...@@ -184,6 +184,7 @@ static int __devinit ds1742_rtc_probe(struct platform_device *pdev) ...@@ -184,6 +184,7 @@ static int __devinit ds1742_rtc_probe(struct platform_device *pdev)
pdata->size_nvram = pdata->size - RTC_SIZE; pdata->size_nvram = pdata->size - RTC_SIZE;
pdata->ioaddr_rtc = ioaddr + pdata->size_nvram; pdata->ioaddr_rtc = ioaddr + pdata->size_nvram;
sysfs_bin_attr_init(&pdata->nvram_attr);
pdata->nvram_attr.attr.name = "nvram"; pdata->nvram_attr.attr.name = "nvram";
pdata->nvram_attr.attr.mode = S_IRUGO | S_IWUSR; pdata->nvram_attr.attr.mode = S_IRUGO | S_IWUSR;
pdata->nvram_attr.read = ds1742_nvram_read; pdata->nvram_attr.read = ds1742_nvram_read;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment