[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