Re: [BUG 2.6.17-git] kmem_cache_create: duplicate cache scsi_cmd_cache

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Fri, 12 May 2006, Linus Torvalds wrote:
> 
> On Fri, 12 May 2006, Russell King wrote:
> > 
> > From: Todd Blumer <todd@xxxxxxxxxxxxxx>
> > On a PXA27x handheld (iPAQ hx4700), when we eject a mounted SD memory
> > card, we get a kernel panic (kernel trying to clean up non-existent
> > device). One hack patch to avoid the panic is:
> > 
> > --- fs/partitions/check.c       10 Apr 2006 22:57:27 -0000      1.15
> > +++ fs/partitions/check.c       4 May 2006 20:30:15 -0000
> > @@ -491,6 +491,7 @@
> >                         kfree(disk_name);
> >                 }
> >                 put_device(disk->driverfs_dev);
> > +               disk->driverfs_dev = 0; /* HACK - what's the right solution? */
> >         }
> >         kobject_uevent(&disk->kobj, KOBJ_REMOVE);
> >         kobject_del(&disk->kobj);
> 
> Btw, on the face it of, I really think that this patch is correct 
> regardless of any other issues.

.. and I suspect it also shows what the "other issues" are.

Shouldn't that KOBJ_REMOVE uevent happen _before_ we do all the freeing of 
the backing dev object? That KOBJ_REMOVE thing actually seems to want to 
report the pathname for the disk it removes. Preferably before the thing 
is gone and can't be reported on..

Ie shouldn't the diff be something like this?

		Linus
---
diff --git a/fs/partitions/check.c b/fs/partitions/check.c
index 45ae7dd..7ef1f09 100644
--- a/fs/partitions/check.c
+++ b/fs/partitions/check.c
@@ -533,6 +533,7 @@ void del_gendisk(struct gendisk *disk)
 
 	devfs_remove_disk(disk);
 
+	kobject_uevent(&disk->kobj, KOBJ_REMOVE);
 	if (disk->holder_dir)
 		kobject_unregister(disk->holder_dir);
 	if (disk->slave_dir)
@@ -545,7 +546,7 @@ void del_gendisk(struct gendisk *disk)
 			kfree(disk_name);
 		}
 		put_device(disk->driverfs_dev);
+		disk->driverfs_dev = NULL;
 	}
-	kobject_uevent(&disk->kobj, KOBJ_REMOVE);
 	kobject_del(&disk->kobj);
 }
-
: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux