All of lore.kernel.org
 help / color / mirror / Atom feed
From: u.kleine-koenig@pengutronix.de (Uwe Kleine-König)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] warn about shared irqs requesting IRQF_DISABLED registered with setup_irq
Date: Sat, 28 Nov 2009 21:03:44 +0100	[thread overview]
Message-ID: <20091128200344.GA1272@pengutronix.de> (raw)
In-Reply-To: <alpine.LFD.2.00.0911272234460.24119@localhost.localdomain>

On Fri, Nov 27, 2009 at 11:18:00PM +0100, Thomas Gleixner wrote:
> On Fri, 27 Nov 2009, Uwe Kleine-K?nig wrote:
> 
> > IRQF_DISABLED is not guaranteed on shared irqs.  There is already a
> > warning in place for irqs registered with request_irq (introduced in
> > 470c66239ef03).  Move it to __setup_irq, this way it triggers for both
> > request_irq and setup_irq.
> > 
> > One irq that is now warned about is the timer tick on at91 (ARCH=arm).
> 
> And how does that help ? The interrupt is shared between the timer and
> the debug port. There is nothing you can do about that.
> 
> The interupt handlers are called in order of setup. The AT91 timer
> irq is set up first and if that's not the case then it needs to be
> fixed and the only way to catch it is in the affected interrupt
> handler.
Russell already suggests to save (and restore) irqs in the handler
before (and after resp.) calling the clockevent functions.

Should it use the raw_ variants?
 
> Applying your patch does not change the hardware and will just result
> in useless, annoying and confusing dmesg warnings.
My patch wasn't mainly to help in the at91 case.  I just thought that a
warning that is triggered with request_irq and request_threaded_irq
shouldn't be skipped when using setup_irq.

Maybe the warning should only be printed if there's a mismatch between
different actions of the same irq regarding IRQF_DISABLED?!

I will prepare a patch for both (i.e. fixing the at91 ISRs and the
warning about IRQF_DISABLED | IRQF_SHARED) but probably only on Monday.
 
Best regards
Uwe

-- 
Pengutronix e.K.                              | Uwe Kleine-K?nig            |
Industrial Linux Solutions                    | http://www.pengutronix.de/  |

WARNING: multiple messages have this Message-ID (diff)
From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: LKML <linux-kernel@vger.kernel.org>,
	David Brownell <dbrownell@users.sourceforge.net>,
	Andrew Morton <akpm@linux-foundation.org>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Ingo Molnar <mingo@elte.hu>, Nicolas Pitre <nico@marvell.com>,
	Eric Miao <eric.y.miao@gmail.com>,
	John Stultz <johnstul@us.ibm.com>,
	Rusty Russell <rusty@rustcorp.com.au>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] warn about shared irqs requesting IRQF_DISABLED registered with setup_irq
Date: Sat, 28 Nov 2009 21:03:44 +0100	[thread overview]
Message-ID: <20091128200344.GA1272@pengutronix.de> (raw)
In-Reply-To: <alpine.LFD.2.00.0911272234460.24119@localhost.localdomain>

On Fri, Nov 27, 2009 at 11:18:00PM +0100, Thomas Gleixner wrote:
> On Fri, 27 Nov 2009, Uwe Kleine-König wrote:
> 
> > IRQF_DISABLED is not guaranteed on shared irqs.  There is already a
> > warning in place for irqs registered with request_irq (introduced in
> > 470c66239ef03).  Move it to __setup_irq, this way it triggers for both
> > request_irq and setup_irq.
> > 
> > One irq that is now warned about is the timer tick on at91 (ARCH=arm).
> 
> And how does that help ? The interrupt is shared between the timer and
> the debug port. There is nothing you can do about that.
> 
> The interupt handlers are called in order of setup. The AT91 timer
> irq is set up first and if that's not the case then it needs to be
> fixed and the only way to catch it is in the affected interrupt
> handler.
Russell already suggests to save (and restore) irqs in the handler
before (and after resp.) calling the clockevent functions.

Should it use the raw_ variants?
 
> Applying your patch does not change the hardware and will just result
> in useless, annoying and confusing dmesg warnings.
My patch wasn't mainly to help in the at91 case.  I just thought that a
warning that is triggered with request_irq and request_threaded_irq
shouldn't be skipped when using setup_irq.

Maybe the warning should only be printed if there's a mismatch between
different actions of the same irq regarding IRQF_DISABLED?!

I will prepare a patch for both (i.e. fixing the at91 ISRs and the
warning about IRQF_DISABLED | IRQF_SHARED) but probably only on Monday.
 
Best regards
Uwe

-- 
Pengutronix e.K.                              | Uwe Kleine-König            |
Industrial Linux Solutions                    | http://www.pengutronix.de/  |

  reply	other threads:[~2009-11-28 20:03 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-21  7:39 [PATCH] Don't disable irqs in set_next_event and set_mode callbacks Uwe Kleine-König
2009-09-21  9:04 ` Russell King - ARM Linux
2009-09-21  9:16   ` Uwe Kleine-König
2009-09-21  9:30     ` Russell King - ARM Linux
2009-09-21 10:48       ` Alessandro Rubini
2009-09-21 12:32 ` Kristoffer Ericson
2009-09-23 19:01   ` Eric Miao
2009-09-23 21:04 ` Remy Bohmer
2009-11-26 10:26 ` [RESENT PATCH] " Uwe Kleine-König
2009-11-26 10:50   ` Russell King - ARM Linux
2009-11-26 11:31     ` Russell King - ARM Linux
2009-11-27 10:44       ` Uwe Kleine-König
2009-11-27 19:08         ` Thomas Gleixner
2009-11-27 19:58         ` Russell King - ARM Linux
2009-11-27 20:38           ` Uwe Kleine-König
2009-11-27 20:44             ` Russell King - ARM Linux
2009-11-27 21:31               ` Thomas Gleixner
2009-11-27 21:59                 ` Russell King - ARM Linux
2009-11-27 22:20                   ` Thomas Gleixner
2009-11-27 21:10           ` [PATCH] warn about shared irqs requesting IRQF_DISABLED registered with setup_irq Uwe Kleine-König
2009-11-27 21:10             ` Uwe Kleine-König
2009-11-27 22:18             ` Thomas Gleixner
2009-11-27 22:18               ` Thomas Gleixner
2009-11-28 20:03               ` Uwe Kleine-König [this message]
2009-11-28 20:03                 ` Uwe Kleine-König
2009-11-28 21:50                 ` Thomas Gleixner
2009-11-28 21:50                   ` Thomas Gleixner
2009-11-28 22:13                   ` David Brownell
2009-11-28 22:13                     ` David Brownell
2009-11-29  2:31                   ` Jamie Lokier
2009-11-29  2:31                     ` Jamie Lokier
2009-11-29 10:26                     ` Uwe Kleine-König
2009-11-29 10:26                       ` Uwe Kleine-König
2009-11-29 15:18                       ` Jamie Lokier
2009-11-29 15:18                         ` Jamie Lokier
2009-11-29 15:27                         ` Russell King - ARM Linux
2009-11-29 15:27                           ` Russell King - ARM Linux
2009-11-30 20:39                           ` Jamie Lokier
2009-11-30 20:39                             ` Jamie Lokier
2009-11-30  9:28                         ` Uwe Kleine-König
2009-11-30  9:28                           ` Uwe Kleine-König
2009-11-30  9:54                         ` Thomas Gleixner
2009-11-30  9:54                           ` Thomas Gleixner
2009-11-28 22:09                 ` David Brownell
2009-11-28 22:09                   ` David Brownell
2009-11-30 10:47             ` [PATCH] genirq: warn about IRQF_SHARED|IRQF_DISABLED at the right place Uwe Kleine-König
2009-11-30 10:47               ` Uwe Kleine-König
2009-11-30 13:54               ` Get rid of IRQF_DISABLED - (was [PATCH] genirq: warn about IRQF_SHARED|IRQF_DISABLED) Thomas Gleixner
2009-11-30 13:54                 ` Thomas Gleixner
2009-11-30 14:03                 ` Peter Zijlstra
2009-11-30 14:03                   ` Peter Zijlstra
2009-11-30 14:24                   ` Thomas Gleixner
2009-11-30 14:24                     ` Thomas Gleixner
2009-11-30 14:47                     ` Alan Cox
2009-11-30 14:47                       ` Alan Cox
2009-11-30 15:01                       ` Russell King - ARM Linux
2009-11-30 15:01                         ` Russell King - ARM Linux
2009-11-30 15:32                         ` Alan Cox
2009-11-30 15:32                           ` Alan Cox
2009-11-30 15:43                           ` Russell King - ARM Linux
2009-11-30 15:43                             ` Russell King - ARM Linux
2009-11-30 20:15                         ` Andrew Victor
2009-11-30 20:15                           ` Andrew Victor
2009-11-30 20:53                         ` David Brownell
2009-11-30 20:53                           ` David Brownell
2009-11-30 20:38                       ` David Brownell
2009-11-30 20:38                         ` David Brownell
2009-12-01  1:42                         ` Andy Walls
2009-12-01  1:42                           ` Andy Walls
2009-11-30 19:59                     ` Benjamin Herrenschmidt
2009-11-30 19:59                       ` Benjamin Herrenschmidt
2009-11-30 21:31                       ` Thomas Gleixner
2009-11-30 21:31                         ` Thomas Gleixner
2009-11-30 21:42                         ` Benjamin Herrenschmidt
2009-11-30 21:42                           ` Benjamin Herrenschmidt
2009-11-30 21:54                           ` Thomas Gleixner
2009-11-30 21:54                             ` Thomas Gleixner
2009-11-30 14:37                 ` Russell King - ARM Linux
2009-11-30 14:37                   ` Russell King - ARM Linux
2009-11-30 14:39                   ` Russell King - ARM Linux
2009-11-30 14:39                     ` Russell King - ARM Linux
2009-11-30 17:48                     ` Thomas Gleixner
2009-11-30 17:48                       ` Thomas Gleixner
2009-11-30 14:51                   ` Alan Cox
2009-11-30 14:51                     ` Alan Cox
2009-11-30 21:59                     ` Thomas Gleixner
2009-11-30 21:59                       ` Thomas Gleixner
2009-11-30 23:30                       ` Alan Cox
2009-11-30 23:30                         ` Alan Cox
2009-11-30 15:38                   ` Nicolas Pitre
2009-11-30 15:38                     ` Nicolas Pitre
2009-11-30 17:46                   ` Thomas Gleixner
2009-11-30 17:46                     ` Thomas Gleixner
2009-11-30 19:51                 ` Uwe Kleine-König
2009-11-30 19:51                   ` Uwe Kleine-König
2009-11-30 21:23                   ` Thomas Gleixner
2009-11-30 21:23                     ` Thomas Gleixner
2009-11-30 20:21               ` [PATCH] genirq: warn about IRQF_SHARED|IRQF_DISABLED at the right place David Brownell
2009-11-30 20:21                 ` David Brownell
2009-11-30 20:27                 ` Uwe Kleine-König
2009-11-30 20:27                   ` Uwe Kleine-König
2010-01-12 15:42               ` [RESEND PATCH] " Uwe Kleine-König
2010-01-12 15:42                 ` Uwe Kleine-König
2009-11-26 10:51   ` [RESENT PATCH] Don't disable irqs in set_next_event and set_mode callbacks Eric Miao
2009-12-17 13:33   ` [PATCH 1/2] arm/at91: " Uwe Kleine-König
2009-12-17 13:33     ` [PATCH 2/2] arm/{pxa, sa1100, nomadik}: Don't disable irqs in set_next_event and set_mode Uwe Kleine-König
2010-01-22 16:08     ` [PATCH 1/2] arm/at91: Don't disable irqs in set_next_event and set_mode callbacks Uwe Kleine-König
2010-01-22 16:36       ` Russell King - ARM Linux
2010-01-22 16:52         ` Uwe Kleine-König
2010-02-12 10:35           ` Uwe Kleine-König

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=20091128200344.GA1272@pengutronix.de \
    --to=u.kleine-koenig@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.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.