Re: kernel BUG at fs/sysfs/dir.c:20!

From: Greg KH
Date: Thu Nov 04 2004 - 18:06:20 EST


On Thu, Nov 04, 2004 at 01:44:14PM -0800, Maneesh Soni wrote:
> On Thu, Nov 04, 2004 at 12:52:38PM -0800, Greg KH wrote:
> > Hi,
> >
> > I get the following BUG in the sysfs code when I do:
> > - plug in a usb-serial device.
> > - open the port with 'cat /dev/ttyUSB0'
> > - unplug the device.
> > - stop the 'cat' process with control-C
> >
> > This used to work just fine before your big sysfs changes.
> >
> > Anything I should look at testing?
> >
>
> Hi Greg,
>
> I was about to talk to you. There is a similar problem reported by
> s390 people where we see parent kobject (directory) going away before
> child kobject (sub-directory). It seems kobject code is able to handle
> this, but not the sysfs. What could be happening that in sysfs_remove_dir()
> of parent directory, we try to remove its contents. It works well with
> the regular files as it is the final removal for sysfs_dirent corresponding
> to the files. But in case of sub-directory we are doing an extra sysfs_put().
> Once while removing parent and the other one being the one from when
> sysfs_remove_dir() is called for the child.
>
> The following patch worked for the s390 people, I hope same will work in
> this case also.
>
>
> o Do not remove sysfs_dirents corresponding to the sub-directory in
> sysfs_remove_dir(). They will be removed in the sysfs_remove_dir() call
> for the specific sub-directory.

Nice, this fixes the BUG() for me. I've applied it to my trees.

thanks for the quick response.

greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/