[linux-dvb] [PATCH] budget_av / dvb_ca_en50221: fixes ci/cam handling especially on SMP machines
Oliver Endriss
o.endriss at gmx.de
Sat Aug 23 22:58:39 CEST 2008
Matthias Dahl wrote:
> Hi Oliver.
>
> I can happily report that with the following two patches applied, I haven't
> seen a single case where the cam stopped working due to i/o errors or
> anything like it.
>
> The budget_av patch is basically your patch just a bit extended which I
> thought was necessary to cover all relevant cases. Works just fine.
>
> The dvb_ca_en50221 patch introduces the concept of slot lock that means, you
> can either read or write to a slot but concurrent i/o on a slot is no longer
> allowed. This case was already thought of and partly taken care of but
> unfortunately due to the missing locking mechanism, it just made the race
> condition harder to trigger but not impossible... especially on SMP systems
> where this is easier to hit. That's way I introduced a mutex. I left the
> original check in there but it actually never should get triggered anymore.
> Right now actually, if it gets triggered, one could assume the ci/cam is in
> an undefined state and trigger a reinit, like it's done on a few other
> places.
>
> Could you please apply those patches to the dvb tree and maybe get into the
> official 2.6.27? Those bugs haven been around for quite some time now and
> without the patches, they are not so hard to trigger.
Finally I had some time to review your patches.
budget-av:
Could you please elaborate why
- ciintf_slot_ts_enable
- ciintf_slot_shutdown
require locking? I cannot see that.
ciintf_slot_reset:
Ok, although I doubt that it will make any difference, because the
routine will kill tuner and CI interface anyway...
ciintf_poll_slot_status:
Hm, I think my version was also correct.
dvb_ca_en50221.c:
Ok. but I need your signed-off-by for this patch.
Btw, wouldn't it be better to remove the locking stuff from budget-av.c,
and do all locking in dvb_ca_en50221.c?
Imho this would be a far better solution (only one mutex, not two).
Could you implement that?
CU
Oliver
--
----------------------------------------------------------------
VDR Remote Plugin 0.4.0: http://www.escape-edv.de/endriss/vdr/
----------------------------------------------------------------
More information about the linux-dvb
mailing list