Messages in this thread | ![/](/images/icornerl.gif) | | From | Paolo Ornati <> | Subject | Re: 2.5.70 freeze unloading module "snd" | Date | Fri, 13 Jun 2003 11:42:22 +0200 |
| |
On Thursday 12 June 2003 18:32, Paolo Ornati wrote: > Hi, > I'm trying ALSA on linux 2.5.70, it works fine but... when I try to unload > module "snd" the kernel freeze without any message. > Interrupts are enabled (I try this with the keyboard's leds :-), then I > can't do anything but press the reset button. > > I'm using module-init-tools 0.9.12 and my config is: > ...
Today I've tried the same thing (unload module "snd") on 2.5.69 without any problem... so there is something wrong in patch-2.5.70.
Using some "printk" I found this:
sound/core/sound.c static void __exit alsa_sound_exit(void) { ... if (unregister_chrdev(major, "alsa") != 0) <-- kernel freeze! snd_printk(KERN_ERR "unable to unregister major device number %d\n", major); ... }
SO I think that the problem is in last changes to "fs/char_dev.c"... Viro, according to the changelog it seems that these changes are yours...
<viro@www.linux.org.uk> [PATCH] cdev-cidr, part 1 New object: struct cdev. It contains a kobject, a pointer to file_operations and a pointer to owner module. These guys have a search structure of the same sort as gendisks and chrdev_open() picks file_operations from them. Intended use: embed such animal in driver-owned structure (e.g. tty_driver) and register it as associated with given range of device numbers. Generic code will do lookup for such object and use it for the rest. The behaviour of register_chrdev() is _not_ changed - it allocates struct cdev and registers it; any old driver will work as if nothing had changed. ...
Viro, what do you think?
BYE, Paolo - 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/
| ![\](/images/icornerr.gif) |