lkml.org 
[lkml]   [2006]   [Sep]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] Reset file->f_op in snd_card_file_remove()
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@yahoo.de>

snd_card_file_remove() is not a right place to do that, IMO.

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.


Takashi
>
>
>
> --- rt3/sound/core/init.c 2006-09-23 20:03:18.000000000 +0200
> +++ rt3-kw/sound/core/init.c 2006-09-27 20:44:54.000000000 +0200
> @@ -722,6 +722,7 @@ int snd_card_file_remove(struct snd_card
> mfile = card->files;
> while (mfile) {
> if (mfile->file == file) {
> + file->f_op = NULL;
> if (pfile)
> pfile->next = mfile->next;
> else
>
>
>
>
>
> ___________________________________________________________
> 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@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-09-28 12:11    [W:0.053 / U:0.684 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site