device_remove_file and disconnect
From: matthieu castet
Date: Wed Jun 29 2005 - 12:03:18 EST
Hi,
I have a question about sysfs interface.
If you open a sysfs file created by a module, then remove it (rmmoding
the module that create this sysfs file), then try to read the opened
file, you often get strange result (segdefault or oppps).
I attach a small program to test it : open your sysfs file with it
`wait_read /sysfs/file', rmmod the module, and press enter.
I was wondering if it is to user of sysfs to prevent that (with mutex,
...) or it is a sysfs bug ?
If it is the first case, I fear that lot's of modules are broken.
Regards,
Matthieu
PS : CC me as I am not subscribed to lkml.
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
int main(int argc, char *argv[])
{
char c;
char buf[1024];
int fd, i, n;
if (argc != 2)
return -1;
fd = open(argv[1], O_RDONLY);
if (fd < 0) {
perror("wait_read - open fail");
return -1;
}
c = getc(stdin);
n = read(fd, buf, 1024);
for (i = 0; i < n; i++)
putc(buf[i], stdout);
if (n < 0)
perror("wait_read - read fail");
else
putc('\n', stdout);
close(fd);
}