• Mauro Carvalho Chehab's avatar
    V4L/DVB (10572): Revert commit dda06a8e · 28100165
    Mauro Carvalho Chehab authored
    On Mon, 02 Feb 2009, Hartmut wrote:
    
    This change set is wrong. The affected functions cannot be called from
    an interrupt context, because they may process large buffers. In this
    case, interrupts are disabled for a long time. Functions, like
    dvb_dmx_swfilter_packets(), could be called only from a tasklet.
    
    This change set does hide some strong design bugs in dm1105.c and
    au0828-dvb.c.
    
    Please revert this change set and do fix the bugs in dm1105.c and
    au0828-dvb.c (and other files).
    
    On Sun, 15 Feb 2009, Oliver Endriss wrote:
    
    This changeset _must_ be reverted! It breaks all kernels since 2.6.27
    for applications which use DVB and require a low interrupt latency.
    
    It is a very bad idea to call the demuxer to process data buffers with
    interrupts disabled!
    
    On Mon, 16 Feb 2009, Trent Piepho wrote:
    
    I agree, this is bad.  The demuxer is far too much work to be done with
    IRQs off.  IMHO, even doing it under a spin-lock is excessive.  It should
    be a mutex.  Drivers should use a work-queue to feed the demuxer.
    
    Thank you for testing this changeset and discovering the issues on it.
    
    Cc: Trent Piepho <xyzzy@speakeasy.org>
    Cc: Hartmut <e9hack@googlemail.com>
    Cc: Oliver Endriss <o.endriss@gmx.de>
    Cc: Andreas Oberritter <obi@linuxtv.org>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
    28100165
dvb_demux.c 28.7 KB