[lkml]   [2003]   [Mar]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH]Fix to the new sysfs bin file support

On 5 Mar 2003, Rusty Lynch wrote:

> I happen to notice the new binary file support in sysfs and had to take
> for a spin. If I understand this correct my write file will need to
> allocate the buffer->data, but then I have no way of freeing that memory
> since I don't get a release callback.

Hm, good point. Perhaps a better way to do it would be:

allocate buffer
fill buffer


sync with driver

free buffer

Once the buffer is filled, then the user could read()/seek() on it to
their hearts' content, without having to call the driver back.

On a write, the user would end up modifying the desired bits of the
buffer, then sysfs would call the ->write() method, passing the entire

All this assumes that the buffer will not change while the file is open,
but for these purposes, I think that's ok to make.

> Here is a patch that:
> * makes sysfs cleanup the buffer->data allocated by the attribute write
> functions
> * fixes a bug that causes the kernel to oops when somebody attempts to
> write to the file.


> BTW, would you be totally opposed to a patch that added open, release,
> and ioctl to the list of functions supported by sysfs binary files?

->ioctl() - No.

Why ->open() and ->release()? If we free the buffer in our release(), then
why do you need a notification?

> Another question... How would a driver know that the various write and
> read calls are coming from the same open, or would there be a way for a
> driver to make it so that only one thing can open the sysfs file at a
> time?

I don't think you could know that a ->read() came from the same process as
the previous ->read(). Why would you need to know that?



To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:33    [W:0.053 / U:21.396 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site