From: Hartmut Hackmann <hartmut.hackmann@t-online.de>
To: Linux and Kernel Video <video4linux-list@redhat.com>
Cc: stable@kernel.org, Brian Marete <bgmarete@gmail.com>,
David Liontooth <liontooth@cogweb.net>,
linux-kernel@vger.kernel.org,
Mauro Carvalho Chehab <mchehab@infradead.org>
Subject: Re: [2.6.16] saa7134 disable_ir oops
Date: Fri, 07 Apr 2006 23:40:26 +0200 [thread overview]
Message-ID: <4436DC4A.1060604@t-online.de> (raw)
In-Reply-To: <20060407133628.GG10864@master.mivlgu.local>
Hi,
Sergey Vlasov wrote:
> On Fri, Apr 07, 2006 at 10:16:10AM -0300, Mauro Carvalho Chehab wrote:
>
>>Em Qui, 2006-04-06 ?s 20:20 +0400, Sergey Vlasov escreveu:
>>
>>>On Fri, 24 Mar 2006 14:00:46 -0800 David Liontooth wrote:
>>
>>>Does the following patch fix things?
>>>
>>
>>Applied at v4l-dvb tree. Thanks.
>
>
> IMHO this patch should also be added to 2.6.16-stable - it fixes oops in
> configurations which worked fine with older kernels.
>
> -----------------------------------------------------------------------
>
> saa7134: Fix oops with disable_ir=1
>
> When disable_ir=1 parameter is used, or when saa7134_input_init1()
> fails for any other reason, dev->remote will remain NULL, and the
> driver will oops in saa7134_hwinit2(). Therefore dev->remote must be
> checked before dereferencing.
>
> Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
>
> --- linux-2.6.16.orig/drivers/media/video/saa7134/saa7134-core.c 2006-03-20 08:53:29 +0300
> +++ linux-2.6.16/drivers/media/video/saa7134/saa7134-core.c 2006-04-06 20:00:56 +0400
> @@ -543,6 +543,8 @@ static irqreturn_t saa7134_irq(int irq,
> if (report & SAA7134_IRQ_REPORT_GPIO16) {
> switch (dev->has_remote) {
> case SAA7134_REMOTE_GPIO:
> + if (!dev->remote)
> + break;
> if (dev->remote->mask_keydown & 0x10000) {
> saa7134_input_irq(dev);
> }
> @@ -559,6 +561,8 @@ static irqreturn_t saa7134_irq(int irq,
> if (report & SAA7134_IRQ_REPORT_GPIO18) {
> switch (dev->has_remote) {
> case SAA7134_REMOTE_GPIO:
> + if (!dev->remote)
> + break;
> if ((dev->remote->mask_keydown & 0x40000) ||
> (dev->remote->mask_keyup & 0x40000)) {
> saa7134_input_irq(dev);
> @@ -671,7 +675,7 @@ static int saa7134_hwinit2(struct saa713
> SAA7134_IRQ2_INTE_PE |
> SAA7134_IRQ2_INTE_AR;
>
> - if (dev->has_remote == SAA7134_REMOTE_GPIO) {
> + if (dev->has_remote == SAA7134_REMOTE_GPIO && dev->remote) {
> if (dev->remote->mask_keydown & 0x10000)
> irq2_mask |= SAA7134_IRQ2_INTE_GPIO16;
> else if (dev->remote->mask_keydown & 0x40000)
>
Let's think this over, please.
1) The problem originally was that a card type with remote control was
forced for a card that doesn't have one.
2) On the other hand you are right, this situation should not cause an oops.
The code should be that GPIO irqs should be completely ignored unless a handler
has been installed, so the
if (dev->has_remote)
is completely wrong and should be repaced by something explictly initialized,
maybe the dev->remote pointer does the trick better.
I never worked seriously on this fraction of the driver, so there might be a
better solution.
Comments?
Hartmut
prev parent reply other threads:[~2006-04-07 21:41 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-03-24 22:00 [2.6.16] saa7134 disable_ir oops David Liontooth
2006-04-06 16:20 ` Sergey Vlasov
2006-04-07 1:03 ` David Liontooth
2006-04-07 17:19 ` Sergey Vlasov
2006-04-07 13:16 ` Mauro Carvalho Chehab
2006-04-07 13:36 ` Sergey Vlasov
2006-04-07 21:40 ` Hartmut Hackmann [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4436DC4A.1060604@t-online.de \
--to=hartmut.hackmann@t-online.de \
--cc=bgmarete@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=liontooth@cogweb.net \
--cc=mchehab@infradead.org \
--cc=stable@kernel.org \
--cc=video4linux-list@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox