[linux-dvb] idea on how to break the static dependencies on demodulator modules

Trent Piepho xyzzy at speakeasy.org
Fri Apr 28 09:18:54 CEST 2006


On Thu, 27 Apr 2006, Johannes Stezenbach wrote:
> On Wed, Apr 26, 2006 at 04:57:41PM -0700, Trent Piepho wrote:
> >
> > It would be a pain to impliment dvb_detach.  It needs the xxxx_attach() symbol
> > as an argument, it's not possible to use a function pointer.
>
> How about using symbol_put_addr()?

That would make it a lot easier.  You would just need to add an 'attach'
method to the dvb_frontend structure and pass that pointer to
symbol_put_addr().  I think you could get away with passing a pointer to any
function in the frontend module, it doesn't have to be the same one you got
with symbol_get() since the reference count is for the whole module, not
individual symbol.

But....  There are no users of symbol_put_addr(), and there is a reason!  Ever
since this patch:

Fix race between CONFIG_DEBUG_SLABALLOC and modules
Sun, 27 Jun 2004 17:55:19 +0000 (17:55 +0000)
http://www.kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=92b3db26d31cf21b70e3c1eadc56c179506d8fbe

using symbol_put_addr() will hang your kernel.  So, probably best not to use
it.



More information about the linux-dvb mailing list