From: Maxim Levitsky <maximlevitsky@gmail.com>
To: benh@kernel.crashing.org
Cc: linuxppc-dev list <linuxppc-dev@ozlabs.org>,
akpm <akpm@linux-foundation.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Linux Kernel list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] synchronize_irq needs a barrier
Date: Sat, 20 Oct 2007 08:06:41 +0200 [thread overview]
Message-ID: <200710200806.41562.maximlevitsky@gmail.com> (raw)
In-Reply-To: <1192859184.6745.8.camel@pasglop>
On Saturday 20 October 2007 07:46:24 Benjamin Herrenschmidt wrote:
>
> > I probably need to add this synchronize_irq() logic in dmfe.c too, but I probably do it later,
> > I think I am overestimating this race, since most drivers don't do dev->insuspend checks in IRQ handler.
> > Maybe even just use free_irq() after all....
>
> Most drivers are probably underestimating the race :-)
>
> free_irq() would work provided that you did the masking on chip before
> (and unmask only after request_irq on the way back in). But it's a bit
> like using a 10 tons truck to crush an ant...
Agreed.
So, I will add synchronize_irq() to both saa7134, and dmfe, the two drivers that their .suspend/.resume
routines were written by me.
I already added a synchronize_irq() plus few more fixes to the driver , but those patches are still in v4l tree.
I now has this:
saa_writel(SAA7134_IRQ1, 0);
saa_writel(SAA7134_IRQ2, 0);
saa_writel(SAA7134_MAIN_CTRL, 0);
synchronize_irq(pci_dev->irq);
dev->insuspend = 1;
and I will probably need (with the synchronize_irq patch applied)
/* Disable interrupts, DMA, and rest of the chip*/
saa_writel(SAA7134_IRQ1, 0);
saa_writel(SAA7134_IRQ2, 0);
saa_writel(SAA7134_MAIN_CTRL, 0);
dev->insuspend = 1;
synchronize_irq(pci_dev->irq);
/* ACK pending interrupts just in case*/
saa_writel(SAA7134_IRQ_REPORT,saa_readl(SAA7134_IRQ_REPORT));
......
This should be bullet-proof.
>
> Ben.
>
>
>
Best regards,
Maxim Levitsky
WARNING: multiple messages have this Message-ID (diff)
From: Maxim Levitsky <maximlevitsky@gmail.com>
To: benh@kernel.crashing.org
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
akpm <akpm@linux-foundation.org>,
Linux Kernel list <linux-kernel@vger.kernel.org>,
linuxppc-dev list <linuxppc-dev@ozlabs.org>
Subject: Re: [PATCH] synchronize_irq needs a barrier
Date: Sat, 20 Oct 2007 08:06:41 +0200 [thread overview]
Message-ID: <200710200806.41562.maximlevitsky@gmail.com> (raw)
In-Reply-To: <1192859184.6745.8.camel@pasglop>
On Saturday 20 October 2007 07:46:24 Benjamin Herrenschmidt wrote:
>
> > I probably need to add this synchronize_irq() logic in dmfe.c too, but I probably do it later,
> > I think I am overestimating this race, since most drivers don't do dev->insuspend checks in IRQ handler.
> > Maybe even just use free_irq() after all....
>
> Most drivers are probably underestimating the race :-)
>
> free_irq() would work provided that you did the masking on chip before
> (and unmask only after request_irq on the way back in). But it's a bit
> like using a 10 tons truck to crush an ant...
Agreed.
So, I will add synchronize_irq() to both saa7134, and dmfe, the two drivers that their .suspend/.resume
routines were written by me.
I already added a synchronize_irq() plus few more fixes to the driver , but those patches are still in v4l tree.
I now has this:
saa_writel(SAA7134_IRQ1, 0);
saa_writel(SAA7134_IRQ2, 0);
saa_writel(SAA7134_MAIN_CTRL, 0);
synchronize_irq(pci_dev->irq);
dev->insuspend = 1;
and I will probably need (with the synchronize_irq patch applied)
/* Disable interrupts, DMA, and rest of the chip*/
saa_writel(SAA7134_IRQ1, 0);
saa_writel(SAA7134_IRQ2, 0);
saa_writel(SAA7134_MAIN_CTRL, 0);
dev->insuspend = 1;
synchronize_irq(pci_dev->irq);
/* ACK pending interrupts just in case*/
saa_writel(SAA7134_IRQ_REPORT,saa_readl(SAA7134_IRQ_REPORT));
......
This should be bullet-proof.
>
> Ben.
>
>
>
Best regards,
Maxim Levitsky
next prev parent reply other threads:[~2007-10-20 6:07 UTC|newest]
Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-18 1:25 [PATCH] synchronize_irq needs a barrier Benjamin Herrenschmidt
2007-10-18 1:25 ` Benjamin Herrenschmidt
2007-10-18 1:45 ` Andrew Morton
2007-10-18 1:45 ` Andrew Morton
2007-10-18 1:55 ` Benjamin Herrenschmidt
2007-10-18 1:55 ` Benjamin Herrenschmidt
2007-10-18 2:12 ` Linus Torvalds
2007-10-18 2:12 ` Linus Torvalds
2007-10-18 2:40 ` Benjamin Herrenschmidt
2007-10-18 2:40 ` Benjamin Herrenschmidt
2007-10-18 2:57 ` Benjamin Herrenschmidt
2007-10-18 2:57 ` Benjamin Herrenschmidt
2007-10-18 14:56 ` Herbert Xu
2007-10-18 14:56 ` Herbert Xu
2007-10-18 22:05 ` Benjamin Herrenschmidt
2007-10-18 22:05 ` Benjamin Herrenschmidt
2007-10-18 22:52 ` Linus Torvalds
2007-10-18 22:52 ` Linus Torvalds
2007-10-18 23:17 ` Benjamin Herrenschmidt
2007-10-18 23:17 ` Benjamin Herrenschmidt
2007-10-18 23:39 ` Linus Torvalds
2007-10-18 23:39 ` Linus Torvalds
2007-10-18 23:52 ` Benjamin Herrenschmidt
2007-10-18 23:52 ` Benjamin Herrenschmidt
2007-10-19 2:32 ` Herbert Xu
2007-10-19 2:32 ` Herbert Xu
2007-10-19 2:52 ` Nick Piggin
2007-10-19 2:52 ` Nick Piggin
2007-10-19 3:28 ` Herbert Xu
2007-10-19 3:28 ` Herbert Xu
2007-10-19 4:49 ` Nick Piggin
2007-10-19 4:49 ` Nick Piggin
2007-10-19 2:55 ` Linus Torvalds
2007-10-19 2:55 ` Linus Torvalds
2007-10-19 3:26 ` Linus Torvalds
2007-10-19 3:26 ` Linus Torvalds
2007-10-19 4:11 ` Benjamin Herrenschmidt
2007-10-19 4:11 ` Benjamin Herrenschmidt
2007-10-19 4:26 ` Benjamin Herrenschmidt
2007-10-19 4:26 ` Benjamin Herrenschmidt
2007-10-19 5:53 ` Herbert Xu
2007-10-19 5:53 ` Herbert Xu
2007-10-19 4:20 ` Herbert Xu
2007-10-19 4:20 ` Herbert Xu
2007-10-19 4:29 ` Benjamin Herrenschmidt
2007-10-19 4:29 ` Benjamin Herrenschmidt
2007-10-19 4:35 ` Benjamin Herrenschmidt
2007-10-19 4:35 ` Benjamin Herrenschmidt
2007-10-19 4:48 ` Herbert Xu
2007-10-19 4:48 ` Herbert Xu
2007-10-19 4:58 ` Benjamin Herrenschmidt
2007-10-19 4:58 ` Benjamin Herrenschmidt
2007-10-21 21:10 ` Benjamin Herrenschmidt
2007-10-21 21:10 ` Benjamin Herrenschmidt
2007-10-23 3:26 ` [IRQ]: Fix synchronize_irq races with IRQ handler Herbert Xu
2007-10-23 3:26 ` Herbert Xu
2007-10-19 5:36 ` [NET]: Fix possible dev_deactivate race condition Herbert Xu
2007-10-19 5:36 ` Herbert Xu
2007-10-19 5:38 ` David Miller
2007-10-19 5:38 ` David Miller
2007-10-19 7:35 ` Peter Zijlstra
2007-10-19 7:35 ` Peter Zijlstra
2007-10-19 9:29 ` Herbert Xu
2007-10-19 9:29 ` Herbert Xu
2007-10-18 14:35 ` [PATCH] synchronize_irq needs a barrier Herbert Xu
2007-10-18 14:35 ` Herbert Xu
2007-10-18 21:35 ` Benjamin Herrenschmidt
2007-10-18 21:35 ` Benjamin Herrenschmidt
2007-10-20 2:02 ` Maxim Levitsky
2007-10-20 2:02 ` Maxim Levitsky
2007-10-20 2:25 ` Linus Torvalds
2007-10-20 2:25 ` Linus Torvalds
2007-10-20 3:10 ` Maxim Levitsky
2007-10-20 3:10 ` Maxim Levitsky
2007-10-20 4:06 ` Benjamin Herrenschmidt
2007-10-20 4:06 ` Benjamin Herrenschmidt
2007-10-20 4:04 ` Benjamin Herrenschmidt
2007-10-20 4:04 ` Benjamin Herrenschmidt
2007-10-20 4:09 ` Benjamin Herrenschmidt
2007-10-20 4:09 ` Benjamin Herrenschmidt
2007-10-20 3:37 ` Herbert Xu
2007-10-20 3:37 ` Herbert Xu
2007-10-20 3:56 ` Benjamin Herrenschmidt
2007-10-20 3:56 ` Benjamin Herrenschmidt
2007-10-20 4:24 ` Maxim Levitsky
2007-10-20 4:24 ` Maxim Levitsky
2007-10-20 5:04 ` Benjamin Herrenschmidt
2007-10-20 5:04 ` Benjamin Herrenschmidt
2007-10-20 5:36 ` Maxim Levitsky
2007-10-20 5:36 ` Maxim Levitsky
2007-10-20 5:46 ` Benjamin Herrenschmidt
2007-10-20 5:46 ` Benjamin Herrenschmidt
2007-10-20 6:06 ` Maxim Levitsky [this message]
2007-10-20 6:06 ` Maxim Levitsky
2007-10-20 6:13 ` Benjamin Herrenschmidt
2007-10-20 6:13 ` Benjamin Herrenschmidt
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=200710200806.41562.maximlevitsky@gmail.com \
--to=maximlevitsky@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=benh@kernel.crashing.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=torvalds@linux-foundation.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.