From: Thomas Gleixner <tglx@linutronix.de>
To: Linus Torvalds <torvalds@osdl.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
linux-arch@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
Ingo Molnar <mingo@elte.hu>,
Peter Zijlstra <peterz@infradead.org>,
Alan Cox <alan@lxorguk.ukuu.org.uk>,
Andi Kleen <andi@firstfloor.org>,
David Miller <davem@davemloft.net>,
Greg Kroah-Hartman <gregkh@suse.de>,
Arnaldo Carvalho de Melo <acme@redhat.com>
Subject: [patch 2/2] genirq: Remove IRQF_DISABLED from core code
Date: Fri, 26 Mar 2010 00:06:55 -0000 [thread overview]
Message-ID: <20100326000405.991244690@linutronix.de> (raw)
In-Reply-To: 20100326000325.917127328@linutronix.de
[-- Attachment #1: genirq-remove-irqf-disabled-from-core-code.patch --]
[-- Type: text/plain, Size: 3205 bytes --]
Remove all code which is related to IRQF_DISABLED from the core kernel
code. IRQF_DISABLED still exists as a flag, but becomes a NOOP and
will be removed after a grace period. That way we can easily revert to
the previous behaviour by just restoring the core code.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
Documentation/feature-removal-schedule.txt | 7 +++++++
include/linux/interrupt.h | 3 ++-
kernel/irq/manage.c | 20 --------------------
3 files changed, 9 insertions(+), 21 deletions(-)
Index: linux-2.6/Documentation/feature-removal-schedule.txt
===================================================================
--- linux-2.6.orig/Documentation/feature-removal-schedule.txt
+++ linux-2.6/Documentation/feature-removal-schedule.txt
@@ -589,3 +589,10 @@ Why: Useful in 2003, implementation is a
Generally invoked by accident today.
Seen as doing more harm than good.
Who: Len Brown <len.brown@intel.com>
+
+----------------------------
+
+What: IRQF_DISABLED
+When: 2.6.36
+Why: The flag is a NOOP as we run interrupt handlers with interrupts disabled
+Who: Thomas Gleixner <tglx@linutronix.de>
Index: linux-2.6/include/linux/interrupt.h
===================================================================
--- linux-2.6.orig/include/linux/interrupt.h
+++ linux-2.6/include/linux/interrupt.h
@@ -39,7 +39,8 @@
* These flags used only by the kernel as part of the
* irq handling routines.
*
- * IRQF_DISABLED - keep irqs disabled when calling the action handler
+ * IRQF_DISABLED - keep irqs disabled when calling the action handler.
+ * DEPRECATED. This flag is a NOOP and scheduled to be removed
* IRQF_SAMPLE_RANDOM - irq is used to feed the random generator
* IRQF_SHARED - allow sharing the irq among several devices
* IRQF_PROBE_SHARED - set by callers when they expect sharing mismatches to occur
Index: linux-2.6/kernel/irq/manage.c
===================================================================
--- linux-2.6.orig/kernel/irq/manage.c
+++ linux-2.6/kernel/irq/manage.c
@@ -995,7 +995,6 @@ EXPORT_SYMBOL(free_irq);
* Flags:
*
* IRQF_SHARED Interrupt is shared
- * IRQF_DISABLED Disable local interrupts while processing
* IRQF_SAMPLE_RANDOM The interrupt can be used for entropy
* IRQF_TRIGGER_* Specify active edge(s) or level
*
@@ -1009,25 +1008,6 @@ int request_threaded_irq(unsigned int ir
int retval;
/*
- * handle_IRQ_event() always ignores IRQF_DISABLED except for
- * the _first_ irqaction (sigh). That can cause oopsing, but
- * the behavior is classified as "will not fix" so we need to
- * start nudging drivers away from using that idiom.
- */
- if ((irqflags & (IRQF_SHARED|IRQF_DISABLED)) ==
- (IRQF_SHARED|IRQF_DISABLED)) {
- pr_warning(
- "IRQ %d/%s: IRQF_DISABLED is not guaranteed on shared IRQs\n",
- irq, devname);
- }
-
-#ifdef CONFIG_LOCKDEP
- /*
- * Lockdep wants atomic interrupt handlers:
- */
- irqflags |= IRQF_DISABLED;
-#endif
- /*
* Sanity-check: shared interrupts must pass in a real dev-ID,
* otherwise we'll have trouble later trying to figure out
* which interrupt is which (messes up the interrupt freeing
next prev parent reply other threads:[~2010-03-26 0:06 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-26 0:06 [patch 0/2] Run interrupt handlers always with interrupts disabled Thomas Gleixner
2010-03-26 0:06 ` [patch 1/2] genirq: Run irq handlers " Thomas Gleixner
2010-03-26 6:13 ` Andi Kleen
2010-03-26 13:05 ` Thomas Gleixner
2010-03-30 5:33 ` Andi Kleen
2010-03-31 11:16 ` Thomas Gleixner
2010-04-02 9:31 ` Pavel Machek
2010-04-02 20:42 ` Thomas Gleixner
2010-04-02 21:09 ` Pavel Machek
2010-04-02 21:31 ` Peter Zijlstra
2010-04-02 22:51 ` Thomas Gleixner
2010-04-03 4:45 ` Pavel Machek
2010-04-13 19:33 ` [tip:irq/core] " tip-bot for Ingo Molnar
2010-04-15 7:35 ` Peter Zijlstra
2010-05-25 20:32 ` [patch 1/2] " Venkatesh Pallipadi
2010-03-26 0:06 ` Thomas Gleixner [this message]
2010-03-26 6:20 ` [patch 2/2] genirq: Remove IRQF_DISABLED from core code Andi Kleen
2010-03-26 11:19 ` Thomas Gleixner
2010-04-13 19:34 ` [tip:irq/core] " tip-bot for Thomas Gleixner
2010-03-26 3:34 ` [patch 0/2] Run interrupt handlers always with interrupts disabled David Miller
2010-03-26 8:14 ` Russell King
2010-03-26 9:20 ` Ingo Molnar
2010-03-26 9:20 ` Ingo Molnar
2010-03-26 9:28 ` Peter Zijlstra
2010-03-26 12:02 ` Jamie Lokier
2010-03-26 9:59 ` Alan Cox
2010-03-26 10:08 ` Peter Zijlstra
2010-03-26 10:12 ` Andi Kleen
2010-03-26 10:53 ` Ingo Molnar
2010-03-26 12:00 ` Nicolas Pitre
2010-03-26 12:06 ` Jamie Lokier
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=20100326000405.991244690@linutronix.de \
--to=tglx@linutronix.de \
--cc=acme@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=andi@firstfloor.org \
--cc=davem@davemloft.net \
--cc=gregkh@suse.de \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=peterz@infradead.org \
--cc=torvalds@osdl.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.