From: Greg KH This fixes an oops when a kobject is unregistered before it's child is. The usb-serial devices show this bug very easily (yank out a device while its port is opened...) Patch was originally written by Mike Gorse fs/sysfs/dir.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) diff -puN fs/sysfs/dir.c~sysfs-oops-fix fs/sysfs/dir.c --- 25/fs/sysfs/dir.c~sysfs-oops-fix 2003-12-22 20:19:01.000000000 -0800 +++ 25-akpm/fs/sysfs/dir.c 2003-12-22 20:19:01.000000000 -0800 @@ -83,7 +83,8 @@ static void remove_dir(struct dentry * d struct dentry * parent = dget(d->d_parent); down(&parent->d_inode->i_sem); d_delete(d); - simple_rmdir(parent->d_inode,d); + if (d->d_inode) + simple_rmdir(parent->d_inode,d); pr_debug(" o %s removing done (%d)\n",d->d_name.name, atomic_read(&d->d_count)); _