Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Fix for the data reception problem



yeah, good work patch fix the problem for me, too

bye


----- Original Message ----- 
From: "Michael Holzt" <kju@fqdn.org>
To: <linux-dvb@linuxtv.org>
Sent: Sunday, September 17, 2000 3:54 PM
Subject: Fix for the data reception problem


> Ok, i took some time to dig through the sources of driver 0.7 and found
> the bug which occured now. This bug is existant in old drivers too(!),
> but wasn't catched there (instead some internal data structures where
> used using wrong pointers, ouch!)
> 
> The calculation of the bit filter in use in function debiirq, file
> dvb.c is somewhat wrong. I get filters 128, 130 ... where the maximum
> allowed value is 31 (the card can only handle 32 bitfilters). The new
> driver catches this bug in line 575
>                 if ((handle>=MAXFILT) || !dvb->hfilter[handle])
>                         break;
> where the old driver just accessed internal structures using this wrong
> index
>                 if (dvb->filter_flags[handle]&FILTER_MEM)
> [...]
> 
> 
> 
> As the bitfilter can go up to 31 maximum as indicated above, i changed
> line 516 in dvb.c to read
>         int handle=(type>>8) & 0x1F;
> instead of
>         int handle=(type>>8);
> 
> 
> This fixes the bug for me, although i'm not absolutely sure if this
> really fixes the source of the problems or probably only the place
> where it occures.
> 
> Our friends at convergence need to check this.
> 
> -- 
> Greetings
> Michael
> 



Home | Main Index | Thread Index