Re: [PATCH] Reset file->f_op in snd_card_file_remove()

From: karsten wiese
Date: Thu Sep 28 2006 - 07:39:27 EST


--- Takashi Iwai <tiwai@xxxxxxx> schrieb:

> At Wed, 27 Sep 2006 21:27:51 +0200,
> Karsten Wiese wrote:
> >
> > Hi
> >
> > This patch helps prevent an oops on 2.6.18-rt3,
> > when my usb usx2y soundcard disconnects.
> > Physically disconnects or "rmmod uhci_hc" both oops 1in7.
> >
> > With this patch still no oops after > 1000 disconnects.
> >
> > Please apply/comment.
> >
> > thanks,
> > Karsten
> >
> > ===
> >
> > Reset file->f_op in snd_card_file_remove()
> >
> > When passing here in response to an usb disconnect,
> > file->f_op has been replaced with a kmalloc()ed version,
> > that would only allow releases.
> >
> > It will be free()ed later on in snd_card_free().
> > Here it happened sometimes, that the free()ed, not NULLed file->f_op
> > caused an oops in module_put() called by fops_put() still later on.
> >
> > Signed-off-by: Karsten Wiese <annabellesgarden@xxxxxxxx>
>
> snd_card_file_remove() is not a right place to do that, IMO.
>
you are right, patch is wrong: it causes snd_hwdep's use count corruption.

> Could you check whether this problem still happens on post-2.6.18?
> There are a lot of fixes in this area after 2.6.18.
>
i'm now running 2.6.18-rt3 + alsa-driver-1.0.13rc1 and problem seams to be gone.

Karsten






___________________________________________________________
Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: http://mail.yahoo.de
-
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/