2001-02-08 06:18:55

by Mauricio Martinez

[permalink] [raw]
Subject: Module usage count - sound


Kernel 2.4.1

I have sound support, OSS and my soundcard (sb) configured as modules

If I just play a sound on /dev/dsp, I get the following after the program
exits:

mixcoac:~> cat /proc/modules
sb 2000 0 (autoclean)
sb_lib 33504 0 (autoclean) [sb]
uart401 6224 0 (autoclean) [sb_lib]
sound 55280 0 (autoclean) [sb_lib uart401]
soundcore 3664 5 (autoclean) [sb_lib sound]

This means that the sound modules are not longer used and thus,
removable. Everything OK so far.

The problem occurs when /dev/dsp is blocked by the above described
process, and another process (say SOX, XMMS and such) attempts to write
to the same device. After the two of them finish, the usage count is not
reset for some reason, like

mixcoac:~> cat /proc/modules
sb 2000 1 (autoclean)
sb_lib 33504 0 (autoclean) [sb]
uart401 6224 0 (autoclean) [sb_lib]
sound 55280 0 (autoclean) [sb_lib uart401]
soundcore 3664 5 (autoclean) [sb_lib sound]

So, the module cannot be removed and stays loaded forever.

This problem is 100% reproductable.

What's wrong? any ideas?

---------------------------------------------------------------------------
Mauricio Mart?nez Northeastern University [email protected]