[linux-dvb] Unable to remove stv0299
Oliver Endriss
o.endriss at gmx.de
Tue Aug 8 18:32:31 CEST 2006
Oliver Endriss wrote:
> Andrew de Quincey wrote:
> >
> > > > @Andrew:
> > > > Imho the problem is that
> > > > - dvb_attach calls symbol_request(fe_attach)
> > > > - dvb_detach calls symbol_put_addr(fe_release)
> > > > i.e. two different symbols are used...
> > > >
> > > > What do you think?
> > >
> > > Crap, looks like something got lost in that /LONG/ discussion, because
> > > thats never going to work is it?
> >
> > Actually, no, this should work...
> >
> > symbol_request() looks up the module containing the given symbol and does a
> > module_get() on it.
> >
> > symbol_put_addr() looks up the module containing the given /addresss/ and does
> > a module_put() on it... so it /should/ be working; in fact it was. But
> > obviously it ain't for you guys for some reason.
> >
> > Trent fixed a nasty bug in symbol_put_addr() for 2.6.17.. perhaps theres still
> > another one lurking?
>
> Hm - does it work for you? Which kernel version are you using?
> The changelog of the kernel does not list any fixes for 2.6.17.[1-8] in
> that area.
>
> Here it does not work with plain 2.6.17 and
> - DVB-S full-featured card Rev 2.1 (stv0299)
> - Activy GR budget (tda8083)
>
> Btw, it works if I do a symbol_put_addr(xxx_attach) instead of
> symbol_put_addr(xxx_release).
> I think I have to do some kernel debugging...
This fixes the bug: symbol_put_addr was never called.
diff -r 010579b32a57 linux/drivers/media/dvb/dvb-core/dvb_frontend.c
--- a/linux/drivers/media/dvb/dvb-core/dvb_frontend.c Tue Aug 8 02:05:11 2006 +0200
+++ b/linux/drivers/media/dvb/dvb-core/dvb_frontend.c Tue Aug 8 18:22:24 2006 +0200
@@ -1119,7 +1119,7 @@ int dvb_unregister_frontend(struct dvb_f
}
EXPORT_SYMBOL(dvb_unregister_frontend);
-#ifdef CONFIG_DVB_DETACH
+#ifdef CONFIG_DVB_CORE_ATTACH
void dvb_frontend_detach(struct dvb_frontend* fe)
{
void *ptr;
I'll do the the check-in later this evening.
Oliver
--
--------------------------------------------------------
VDR Remote Plugin available at
http://www.escape-edv.de/endriss/vdr/
--------------------------------------------------------
More information about the linux-dvb
mailing list