Subject: Re: SYSFS "errors"

From: Borislav Petkov <[email-masked]>
Date: Tue, 19 Feb 2013 14:06:26 +0100

On Tue, Feb 19, 2013 at 09:46:40AM -0300, Mauro Carvalho Chehab wrote:
> Ah, now I see what you're meaning. That would require to dynamically
> create a per-mci DEVICE_ATTR().

Dude, look at the code, we do that already. And you're using it with
dev_attr_sdram_scrub_rate.

Simply change the permissions of the attribute before calling
device_create_file.

pseudo:

	umode_t mode = 0;

	if (mci->set...)
		mode |= S_IWUSR;

	if (mci->get...)
		mode |= S_IRUGO;

	dev_attr_sdram_scrub_rate.attr.mode = mode;

	device_create_file(&mci->dev, &dev_attr_sdram_scrub_rate);

> No, on both cases, open() will return an error (-ENOENT against -EPERM).

What if it is a shell script doing:

cat /sys/devices/system/edac/mc/mc0/sdram_scrub_rate

or similar?

Simply fixing the permissions fixes *all* possible cases.

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--