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

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

 



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 <[email protected]>

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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux