V4L/DVB (10219): saa7134: Prevent Oops due to stale IRQ status when enabling interrupts
authorAndy Walls <awalls@radix.net>
Sat, 10 Jan 2009 21:04:45 +0000 (18:04 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Thu, 29 Jan 2009 10:35:38 +0000 (08:35 -0200)
commit7ef5e025535ee220d7ba45dcd82f05ddce8c3e4c
tree6914684de5874aa3a1fd93aff3443b8f2169b961
parentcd8f894eacf13996d920fdd2aef1afc55156b191
V4L/DVB (10219): saa7134: Prevent Oops due to stale IRQ status when enabling interrupts

When enabling a shared IRQ line, then saa7134_irq handler could be invoked
before the driver had completely set up internal structures, due to a shared
interrupt line firing.  Clear the saa7134 interrupt status reg, before
requesting the irq line, so that stale IRQ status isn't processed before the
internal structures are set up.

Marcin Slusarz recently brought this Oops to the attention of the v4l-dvb
lists and provided an initial analysis by investigating reports found here:

http://kerneloops.org/guilty.php?guilty=mute_input_7133&version=2.6.27-release&start=1802240&end=1835007&class=oops

Reported-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/saa7134/saa7134-core.c