On Mon, 7 May 2007, System Administrator wrote:

> my previous suggestion, dvb_frontend_detach would still try to call
> symbol_put_addr on xc3028_release even though there was no previous
> symbol_request call for that symbol.  That would cause the "Used by"
> reference counter for xc3028_tuner to become a negative value meaning
> that the module could not be unloaded.

The kernel reference counting is done at the module level, not the symbol
level.

Normally what happens is that when dvb_attach() is used to, it does a
symbol_get() on the attach_XXX() function.  At release time, the symbol_put()
is done on at the release_XXX() function.  Since both functions should be in
the same module, it has the desired effect.

If you're seeing the counter wrap around, dvb_attach() was probably not used
in the first place, or the is an extra symbol_put() in there some place.

_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

Reply via email to