]> git.baikalelectronics.ru Git - kernel.git/commit
V4L/DVB (10572): Revert commit f82515f3a9765a6e10b6820cdc5894756450d6e7
authorMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 16 Feb 2009 18:27:44 +0000 (15:27 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 17 Feb 2009 12:43:09 +0000 (09:43 -0300)
commit7b0779967ff0a13b38a0d44972c575f13e774540
tree099fa9489d0dedc247204b432ad25f35d10e5934
parent9d354c6509afef59ef649fc1134959cf0f386e38
V4L/DVB (10572): Revert commit f82515f3a9765a6e10b6820cdc5894756450d6e7

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: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/dvb-core/dmxdev.c
drivers/media/dvb/dvb-core/dvb_demux.c