Re: sdhci driver produces kernel oops on ejecting the card

From: Mikkel Erup
Date: Tue Apr 11 2006 - 15:44:06 EST


> --- Russell King <rmk+lkml@xxxxxxxxxxxxxxxx> wrote:
>
> > So the
> > only place for sane
> > refcounting seems to be genhd.c, as per the patch
> > below.
> >
> > Comments?
> >
> > diff -up -x BitKeeper -x ChangeSet -x SCCS -x _xlk
> -x
> > *.orig -x *.rej -x .git a/block/genhd.c
> > b/block/genhd.c
> > --- a/block/genhd.c Sat Feb 18 10:31:37 2006
> > +++ b/block/genhd.c Fri Apr 7 15:22:21 2006
> > @@ -262,6 +262,7 @@ static int exact_lock(dev_t
> dev,
> > void *d
> > */
> > void add_disk(struct gendisk *disk)
> > {
> > + get_device(disk->driverfs_dev);
> > disk->flags |= GENHD_FL_UP;
> > blk_register_region(MKDEV(disk->major,
> > disk->first_minor),
> > disk->minors, NULL, exact_match,
> exact_lock,
> > disk);
> > @@ -507,6 +508,7 @@ static struct attribute *
> > default_attrs[
> > static void disk_release(struct kobject * kobj)
> > {
> > struct gendisk *disk = to_disk(kobj);
> > + put_device(disk->driverfs_dev);
> > kfree(disk->random);
> > kfree(disk->part);
> > free_disk_stats(disk);
>
> I can confirm that this patch is working.
> The 2.6.16-git20 kernel doesn't oops on
> ejecting the card after the patch is applied.
>
> Mikkel

I didn't see anything regarding this on sdchi-devel or lkml for a
week or so, so I thought I'd just make sure it's not forgotten.
This patch works really well for me. The kernel no longer oopses
on ejecting the card because a NULL pointer is no longer
dereferenced and I think the patch should be considered.

Mikkel

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
-
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/