All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Ingo Molnar <mingo@elte.hu>, Peter Zijlstra <peterz@infradead.org>
Subject: [patch 43/75] genirq: Move IRQ_DISABLED to core
Date: Thu, 10 Feb 2011 23:37:30 -0000	[thread overview]
Message-ID: <20110210223258.460731726@linutronix.de> (raw)
In-Reply-To: 20110210222908.661199947@linutronix.de

[-- Attachment #1: genirq-move-disabled.patch --]
[-- Type: text/plain, Size: 11040 bytes --]

Keep status in sync until all abusers are fixed.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 include/linux/irq.h    |    4 ++--
 kernel/irq/chip.c      |   48 +++++++++++++++++++++++++++++++-----------------
 kernel/irq/compat.h    |   12 ++++++++++++
 kernel/irq/internals.h |    4 +++-
 kernel/irq/irqdesc.c   |    2 ++
 kernel/irq/manage.c    |    4 ++--
 kernel/irq/migration.c |    2 +-
 kernel/irq/settings.h  |    2 ++
 kernel/irq/spurious.c  |    4 ++--
 9 files changed, 57 insertions(+), 25 deletions(-)

Index: linux-2.6-tip/include/linux/irq.h
===================================================================
--- linux-2.6-tip.orig/include/linux/irq.h
+++ linux-2.6-tip/include/linux/irq.h
@@ -55,9 +55,9 @@ typedef	void (*irq_flow_handler_t)(unsig
 #define IRQ_INPROGRESS		0x00000100	/* DEPRECATED */
 #define IRQ_REPLAY		0x00000200	/* DEPRECATED */
 #define IRQ_WAITING		0x00000400	/* DEPRECATED */
+#define IRQ_DISABLED		0x00000800	/* DEPRECATED */
 #endif
 
-#define IRQ_DISABLED		0x00000800	/* IRQ disabled - do not enter! */
 #define IRQ_PENDING		0x00001000	/* IRQ pending - replay on enable */
 
 #define IRQ_LEVEL		0x00004000	/* IRQ level triggered */
@@ -230,7 +230,7 @@ struct irq_chip {
 # define ARCH_IRQ_INIT_FLAGS	0
 #endif
 
-#define IRQ_DEFAULT_INIT_FLAGS	(IRQ_DISABLED | ARCH_IRQ_INIT_FLAGS)
+#define IRQ_DEFAULT_INIT_FLAGS	ARCH_IRQ_INIT_FLAGS
 
 struct irqaction;
 extern int setup_irq(unsigned int irq, struct irqaction *new);
Index: linux-2.6-tip/kernel/irq/chip.c
===================================================================
--- linux-2.6-tip.orig/kernel/irq/chip.c
+++ linux-2.6-tip/kernel/irq/chip.c
@@ -190,9 +190,21 @@ void set_irq_nested_thread(unsigned int 
 }
 EXPORT_SYMBOL_GPL(set_irq_nested_thread);
 
+static void irq_state_clr_disabled(struct irq_desc *desc)
+{
+	desc->istate &= ~IRQS_DISABLED;
+	irq_compat_clr_disabled(desc);
+}
+
+static void irq_state_set_disabled(struct irq_desc *desc)
+{
+	desc->istate |= IRQS_DISABLED;
+	irq_compat_set_disabled(desc);
+}
+
 int irq_startup(struct irq_desc *desc)
 {
-	desc->status &= ~IRQ_DISABLED;
+	irq_state_clr_disabled(desc);
 	desc->depth = 0;
 
 	if (desc->irq_data.chip->irq_startup) {
@@ -207,7 +219,7 @@ int irq_startup(struct irq_desc *desc)
 
 void irq_shutdown(struct irq_desc *desc)
 {
-	desc->status |= IRQ_DISABLED;
+	irq_state_set_disabled(desc);
 	desc->depth = 1;
 	if (desc->irq_data.chip->irq_shutdown)
 		desc->irq_data.chip->irq_shutdown(&desc->irq_data);
@@ -220,7 +232,7 @@ void irq_shutdown(struct irq_desc *desc)
 
 void irq_enable(struct irq_desc *desc)
 {
-	desc->status &= ~IRQ_DISABLED;
+	irq_state_clr_disabled(desc);
 	if (desc->irq_data.chip->irq_enable)
 		desc->irq_data.chip->irq_enable(&desc->irq_data);
 	else
@@ -230,7 +242,7 @@ void irq_enable(struct irq_desc *desc)
 
 void irq_disable(struct irq_desc *desc)
 {
-	desc->status |= IRQ_DISABLED;
+	irq_state_set_disabled(desc);
 	if (desc->irq_data.chip->irq_disable) {
 		desc->irq_data.chip->irq_disable(&desc->irq_data);
 		desc->status |= IRQ_MASKED;
@@ -406,7 +418,7 @@ void handle_nested_irq(unsigned int irq)
 	kstat_incr_irqs_this_cpu(irq, desc);
 
 	action = desc->action;
-	if (unlikely(!action || (desc->status & IRQ_DISABLED)))
+	if (unlikely(!action || (desc->istate & IRQS_DISABLED)))
 		goto out_unlock;
 
 	irq_compat_set_progress(desc);
@@ -457,7 +469,7 @@ handle_simple_irq(unsigned int irq, stru
 	desc->istate &= ~(IRQS_REPLAY | IRQS_WAITING);
 	kstat_incr_irqs_this_cpu(irq, desc);
 
-	if (unlikely(!desc->action || (desc->status & IRQ_DISABLED)))
+	if (unlikely(!desc->action || (desc->istate & IRQS_DISABLED)))
 		goto out_unlock;
 
 	handle_irq_event(desc);
@@ -493,12 +505,12 @@ handle_level_irq(unsigned int irq, struc
 	 * If its disabled or no action available
 	 * keep it masked and get out of here
 	 */
-	if (unlikely(!desc->action || (desc->status & IRQ_DISABLED)))
+	if (unlikely(!desc->action || (desc->istate & IRQS_DISABLED)))
 		goto out_unlock;
 
 	handle_irq_event(desc);
 
-	if (!(desc->status & IRQ_DISABLED) && !(desc->istate & IRQS_ONESHOT))
+	if (!(desc->istate & (IRQS_DISABLED | IRQS_ONESHOT)))
 		unmask_irq(desc);
 out_unlock:
 	raw_spin_unlock(&desc->lock);
@@ -531,7 +543,7 @@ handle_fasteoi_irq(unsigned int irq, str
 	 * If its disabled or no action available
 	 * then mask it and get out of here:
 	 */
-	if (unlikely(!desc->action || (desc->status & IRQ_DISABLED))) {
+	if (unlikely(!desc->action || (desc->istate & IRQS_DISABLED))) {
 		desc->status |= IRQ_PENDING;
 		mask_irq(desc);
 		goto out;
@@ -569,8 +581,8 @@ handle_edge_irq(unsigned int irq, struct
 	 * we shouldn't process the IRQ. Mark it pending, handle
 	 * the necessary masking and go out
 	 */
-	if (unlikely((desc->istate & (IRQS_INPROGRESS) ||
-		      (desc->status & IRQ_DISABLED) || !desc->action))) {
+	if (unlikely((desc->istate & (IRQS_DISABLED | IRQS_INPROGRESS) ||
+		      !desc->action))) {
 		if (!irq_check_poll(desc)) {
 			desc->status |= IRQ_PENDING;
 			mask_ack_irq(desc);
@@ -593,15 +605,16 @@ handle_edge_irq(unsigned int irq, struct
 		 * one, we could have masked the irq.
 		 * Renable it, if it was not disabled in meantime.
 		 */
-		if (unlikely((desc->status &
-			       (IRQ_PENDING | IRQ_MASKED | IRQ_DISABLED)) ==
-			      (IRQ_PENDING | IRQ_MASKED))) {
-			unmask_irq(desc);
+		if (unlikely(desc->status & IRQ_PENDING)) {
+			if (!(desc->istate & IRQS_DISABLED) &&
+			    (desc->status & IRQ_MASKED))
+				unmask_irq(desc);
 		}
 
 		handle_irq_event(desc);
 
-	} while ((desc->status & (IRQ_PENDING | IRQ_DISABLED)) == IRQ_PENDING);
+	} while ((desc->status & IRQ_PENDING) &&
+		 !(desc->istate & IRQS_DISABLED));
 
 out_unlock:
 	raw_spin_unlock(&desc->lock);
@@ -665,7 +678,8 @@ __set_irq_handler(unsigned int irq, irq_
 	if (handle == handle_bad_irq) {
 		if (desc->irq_data.chip != &no_irq_chip)
 			mask_ack_irq(desc);
-		desc->status |= IRQ_DISABLED;
+		irq_compat_set_disabled(desc);
+		desc->istate |= IRQS_DISABLED;
 		desc->depth = 1;
 	}
 	desc->handle_irq = handle;
Index: linux-2.6-tip/kernel/irq/compat.h
===================================================================
--- linux-2.6-tip.orig/kernel/irq/compat.h
+++ linux-2.6-tip/kernel/irq/compat.h
@@ -11,7 +11,19 @@ static inline void irq_compat_clr_progre
 {
 	desc->status &= ~IRQ_INPROGRESS;
 }
+static inline void irq_compat_set_disabled(struct irq_desc *desc)
+{
+	desc->status |= IRQ_DISABLED;
+}
+
+static inline void irq_compat_clr_disabled(struct irq_desc *desc)
+{
+	desc->status &= ~IRQ_DISABLED;
+}
 #else
 static inline void irq_compat_set_progress(struct irq_desc *desc) { }
 static inline void irq_compat_clr_progress(struct irq_desc *desc) { }
+static inline void irq_compat_set_disabled(struct irq_desc *desc) { }
+static inline void irq_compat_clr_disabled(struct irq_desc *desc) { }
 #endif
+
Index: linux-2.6-tip/kernel/irq/internals.h
===================================================================
--- linux-2.6-tip.orig/kernel/irq/internals.h
+++ linux-2.6-tip/kernel/irq/internals.h
@@ -41,6 +41,7 @@ enum {
  * IRQS_ONESHOT			- irq is not unmasked in primary handler
  * IRQS_REPLAY			- irq is replayed
  * IRQS_WAITING			- irq is waiting
+ * IRQS_DISABLED		- irq is disabled
  */
 enum {
 	IRQS_AUTODETECT		= 0x00000001,
@@ -51,6 +52,7 @@ enum {
 	IRQS_ONESHOT		= 0x00000020,
 	IRQS_REPLAY		= 0x00000040,
 	IRQS_WAITING		= 0x00000080,
+	IRQS_DISABLED		= 0x00000100,
 };
 
 #define irq_data_to_desc(data)	container_of(data, struct irq_desc, irq_data)
@@ -135,7 +137,6 @@ static inline void print_irq_desc(unsign
 		print_symbol("%s\n", (unsigned long)desc->action->handler);
 	}
 
-	P(IRQ_DISABLED);
 	P(IRQ_PENDING);
 	P(IRQ_LEVEL);
 	P(IRQ_MASKED);
@@ -150,6 +151,7 @@ static inline void print_irq_desc(unsign
 	PS(IRQS_INPROGRESS);
 	PS(IRQS_REPLAY);
 	PS(IRQS_WAITING);
+	PS(IRQS_DISABLED);
 }
 
 #undef P
Index: linux-2.6-tip/kernel/irq/irqdesc.c
===================================================================
--- linux-2.6-tip.orig/kernel/irq/irqdesc.c
+++ linux-2.6-tip/kernel/irq/irqdesc.c
@@ -80,6 +80,7 @@ static void desc_set_defaults(unsigned i
 	desc->irq_data.handler_data = NULL;
 	desc->irq_data.msi_desc = NULL;
 	desc->status = _IRQ_DEFAULT_INIT_FLAGS;
+	desc->istate = IRQS_DISABLED;
 	desc->handle_irq = handle_bad_irq;
 	desc->depth = 1;
 	desc->irq_count = 0;
@@ -230,6 +231,7 @@ int __init early_irq_init(void)
 struct irq_desc irq_desc[NR_IRQS] __cacheline_aligned_in_smp = {
 	[0 ... NR_IRQS-1] = {
 		.status		= _IRQ_DEFAULT_INIT_FLAGS,
+		.istate		= IRQS_DISABLED,
 		.handle_irq	= handle_bad_irq,
 		.depth		= 1,
 		.lock		= __RAW_SPIN_LOCK_UNLOCKED(irq_desc->lock),
Index: linux-2.6-tip/kernel/irq/manage.c
===================================================================
--- linux-2.6-tip.orig/kernel/irq/manage.c
+++ linux-2.6-tip/kernel/irq/manage.c
@@ -652,7 +652,7 @@ again:
 		goto again;
 	}
 
-	if (!(desc->status & IRQ_DISABLED) && (desc->status & IRQ_MASKED)) {
+	if (!(desc->istate & IRQS_DISABLED) && (desc->status & IRQ_MASKED)) {
 		desc->status &= ~IRQ_MASKED;
 		desc->irq_data.chip->irq_unmask(&desc->irq_data);
 	}
@@ -715,7 +715,7 @@ static int irq_thread(void *data)
 		atomic_inc(&desc->threads_active);
 
 		raw_spin_lock_irq(&desc->lock);
-		if (unlikely(desc->status & IRQ_DISABLED)) {
+		if (unlikely(desc->istate & IRQS_DISABLED)) {
 			/*
 			 * CHECKME: We might need a dedicated
 			 * IRQ_THREAD_PENDING flag here, which
Index: linux-2.6-tip/kernel/irq/migration.c
===================================================================
--- linux-2.6-tip.orig/kernel/irq/migration.c
+++ linux-2.6-tip/kernel/irq/migration.c
@@ -61,7 +61,7 @@ void move_native_irq(int irq)
 	if (likely(!(desc->status & IRQ_MOVE_PENDING)))
 		return;
 
-	if (unlikely(desc->status & IRQ_DISABLED))
+	if (unlikely(desc->istate & IRQS_DISABLED))
 		return;
 
 	/*
Index: linux-2.6-tip/kernel/irq/settings.h
===================================================================
--- linux-2.6-tip.orig/kernel/irq/settings.h
+++ linux-2.6-tip/kernel/irq/settings.h
@@ -12,3 +12,5 @@ enum {
 #define IRQ_REPLAY		GOT_YOU_MORON
 #undef IRQ_WAITING
 #define IRQ_WAITING		GOT_YOU_MORON
+#undef IRQ_DISABLED
+#define IRQ_DISABLED		GOT_YOU_MORON
Index: linux-2.6-tip/kernel/irq/spurious.c
===================================================================
--- linux-2.6-tip.orig/kernel/irq/spurious.c
+++ linux-2.6-tip/kernel/irq/spurious.c
@@ -50,7 +50,7 @@ bool irq_wait_for_poll(struct irq_desc *
 		raw_spin_lock(&desc->lock);
 	} while (desc->istate & IRQS_INPROGRESS);
 	/* Might have been disabled in meantime */
-	return !(desc->status & IRQ_DISABLED) && desc->action;
+	return !(desc->istate & IRQS_DISABLED) && desc->action;
 #else
 	return false;
 #endif
@@ -75,7 +75,7 @@ static int try_one_irq(int irq, struct i
 	 * Do not poll disabled interrupts unless the spurious
 	 * disabled poller asks explicitely.
 	 */
-	if ((desc->status & IRQ_DISABLED) && !force)
+	if ((desc->istate & IRQS_DISABLED) && !force)
 		goto out;
 
 	/*



  parent reply	other threads:[~2011-02-10 23:37 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-10 23:35 [patch 00/75] genirq: Overhaul for 2.6.39 Thomas Gleixner
2011-02-10 23:35 ` [patch 01/75] genirq: Namespace cleanup Thomas Gleixner
2011-02-10 23:35 ` [patch 02/75] genirq: Simplify affinity related code Thomas Gleixner
2011-02-10 23:35 ` [patch 03/75] genirq: Rremove redundant check Thomas Gleixner
2011-02-10 23:35 ` [patch 04/75] genirq: Always apply cpu online mask Thomas Gleixner
2011-02-10 23:36 ` [patch 05/75] genirq: Do not copy affinity before set Thomas Gleixner
2011-02-10 23:36 ` [patch 06/75] genirq: Plug race in report_bad_irq() Thomas Gleixner
2011-02-10 23:36 ` [patch 07/75] genirq: Warn when handler enables interrupts Thomas Gleixner
2011-02-10 23:36 ` [patch 08/75] genirq: Fixup poll handling Thomas Gleixner
2011-02-10 23:36 ` [patch 09/75] genirq: Do not poll disabled, percpu and timer interrupts Thomas Gleixner
2011-02-10 23:36 ` [patch 10/75] genirq: spurious: Run only one poller at a time Thomas Gleixner
2011-02-10 23:36 ` [patch 11/75] genirq: Mark polled irqs and defer the real handler Thomas Gleixner
2011-02-10 23:36 ` [patch 12/75] genirq: Move irq thread flags to core Thomas Gleixner
2011-02-10 23:36 ` [patch 13/75] genirq: Remove bogus conditional Thomas Gleixner
2011-02-10 23:36 ` [patch 14/75] genirq: Consolidate startup/shutdown of interrupts Thomas Gleixner
2011-02-10 23:36 ` [patch 15/75] genirq: Consolidate disable/enable Thomas Gleixner
2011-02-10 23:36 ` [patch 16/75] genirq: Remove default magic Thomas Gleixner
2011-02-10 23:36 ` [patch 17/75] genirq: Consolidate IRQ_DISABLED Thomas Gleixner
2011-02-11  7:57   ` Lars-Peter Clausen
2011-02-11 11:39     ` Thomas Gleixner
2011-02-10 23:36 ` [patch 18/75] genirq: Do not fiddle with IRQ_MASKED in handle_edge_irq() Thomas Gleixner
2011-02-10 23:36 ` [patch 19/75] m68knommu: 5772: Replace private irq flow handler Thomas Gleixner
2011-02-10 23:36 ` [patch 20/75] arm: Ns9xxx: Remove " Thomas Gleixner
2011-02-10 23:36   ` Thomas Gleixner
2011-02-10 23:36 ` [patch 21/75] genirq: Mark handle_IRQ_event deprecated Thomas Gleixner
2011-02-10 23:36 ` [patch 22/75] genirq: Implement handle_irq_event() Thomas Gleixner
2011-02-10 23:36 ` [patch 23/75] genirq: Use handle_irq_event() in handle_simple_irq() Thomas Gleixner
2011-02-10 23:36 ` [patch 24/75] genirq: Use handle_irq_event() in handle_level_irq() Thomas Gleixner
2011-02-10 23:36 ` [patch 25/75] genirq: Use handle_irq_event() in handle_fasteoi_irq() Thomas Gleixner
2011-02-10 23:36 ` [patch 26/75] genirq: Use handle_irq_event() in handle_edge_irq() Thomas Gleixner
2011-02-10 23:36 ` [patch 27/75] genirq: Use handle_perpcu_event() in handle_percpu_irq() Thomas Gleixner
2011-02-10 23:36 ` [patch 28/75] genirq: Use handle_irq_event() in the spurious poll code Thomas Gleixner
2011-02-10 23:36 ` [patch 29/75] genirq: Simplify handle_irq_event() Thomas Gleixner
2011-02-10 23:36 ` [patch 30/75] genirq: Implement generic irq_show_interrupts() Thomas Gleixner
2011-02-10 23:37 ` [patch 31/75] genirq: Fixup core code namespace fallout Thomas Gleixner
2011-02-10 23:37 ` [patch 32/75] genirq: Add internal state field to irq_desc Thomas Gleixner
2011-02-10 23:37 ` [patch 33/75] gpio: Remove broken irq_desc hackery Thomas Gleixner
2011-02-11 12:57   ` Wolfram Sang
2011-02-10 23:37 ` [patch 34/75] arm: ep93xx: Kill another instance of broken irq_desc fiddling Thomas Gleixner
2011-02-11  0:07   ` H Hartley Sweeten
2011-02-11  0:22   ` Ryan Mallon
2011-02-11 11:42     ` Thomas Gleixner
2011-02-11 20:16       ` Ryan Mallon
2011-02-10 23:37 ` [patch 35/75] genirq: Protect tglx from tripping over his own feet Thomas Gleixner
2011-02-10 23:37 ` [patch 36/75] genirq: Move IRQ_AUTODETECT to internal state Thomas Gleixner
2011-02-10 23:37 ` [patch 37/75] genirq: Move IRQ_SPURIOUS_DISABLED to core state Thomas Gleixner
2011-02-10 23:37 ` [patch 38/75] genirq: Move IRQ_NESTED_THREAD " Thomas Gleixner
2011-02-10 23:37 ` [patch 39/75] genirq: Move IRQ_POLL_INPROGRESS to core Thomas Gleixner
2011-02-10 23:37 ` [patch 40/75] genirq: Add IRQ_INPROGRESS " Thomas Gleixner
2011-02-10 23:37 ` [patch 41/75] genirq: Move IRQ_ONESHOT " Thomas Gleixner
2011-02-10 23:37 ` [patch 42/75] genirq: Move IRQ_REPLAY and IRQ_WAITING " Thomas Gleixner
2011-02-10 23:37 ` Thomas Gleixner [this message]
2011-02-10 23:37 ` [patch 44/75] genirq: Move IRQ_PENDING flag " Thomas Gleixner
2011-02-10 23:37 ` [patch 45/75] genirq: Move IRQ_MASKED " Thomas Gleixner
2011-02-10 23:37 ` [patch 46/75] genirq: Move IRQ_SUSPENDED " Thomas Gleixner
2011-02-10 23:37 ` [patch 47/75] arm: tegra: Remove unused function which fiddles with irq_desc Thomas Gleixner
2011-02-10 23:37   ` Thomas Gleixner
2011-02-10 23:37   ` Thomas Gleixner
2011-02-10 23:48   ` Colin Cross
2011-02-10 23:48     ` Colin Cross
2011-02-10 23:37 ` [patch 48/75] genirq: Move IRQ_WAKEUP to core Thomas Gleixner
2011-02-10 23:37 ` [patch 49/75] genirq: Add state field to irq_data Thomas Gleixner
2011-02-10 23:37 ` [patch 50/75] genirq: Add IRQ_MOVE_PENDING to irq_data.state Thomas Gleixner
2011-02-10 23:37 ` [patch 51/75] genirq: Remove CONFIG_IRQ_PER_CPU Thomas Gleixner
2011-02-10 23:37 ` [patch 52/75] genirq: Make CHECK_IRQ_PER_CPU an inline and deprecate it Thomas Gleixner
2011-02-10 23:37 ` [patch 53/75] genirq: Remove CHECK_IRQ_PER_CPU from core code Thomas Gleixner
2011-02-10 23:37 ` [patch 54/75] genirq: Move debug code to separate header Thomas Gleixner
2011-02-10 23:37 ` [patch 55/75] genirq: Mirror IRQ_PER_CPU and IRQ_NO_BALANCING in irq_data.state Thomas Gleixner
2011-02-10 23:38 ` [patch 56/75] genirq: Reuse existing can set affinty check Thomas Gleixner
2011-02-10 23:38 ` [patch 57/75] genirq: Move IRQ_AFFINITY_SET to core Thomas Gleixner
2011-02-10 23:38 ` [patch 58/75] genirq: Mirror irq trigger type bits in irq_data.state Thomas Gleixner
2011-02-10 23:38 ` [patch 59/75] genirq: Wrap the remaning IRQ_* flags Thomas Gleixner
2011-02-10 23:38 ` [patch 60/75] genirq: Force wrapped access to desc->status in core code Thomas Gleixner
2011-02-10 23:38 ` [patch 61/75] genirq: Cleanup irq.h Thomas Gleixner
2011-02-10 23:38 ` [patch 62/75] genirq: Add flags to irq_chip Thomas Gleixner
2011-02-10 23:38 ` [patch 63/75] genirq: Add IRQCHIP_SET_TYPE_MASKED flag and IRQD_WAKE_SET Thomas Gleixner
2011-02-14 17:07   ` Rabin Vincent
2011-02-14 18:43     ` Thomas Gleixner
2011-02-10 23:38 ` [patch 64/75] genirq: Move wakeup state to irq_data Thomas Gleixner
2011-02-10 23:38 ` [patch 65/75] genirq: Reflect IRQ_INPROGRESS/DISABLED in irq_data.state Thomas Gleixner
2011-02-10 23:38 ` [patch 66/75] genirq: Reflect IRQ_MOVE_PCNTXT in irq_data state Thomas Gleixner
2011-02-10 23:38 ` [patch 67/75] genirq: Remove desc->status when GENERIC_HARDIRQS_NO_COMPAT=y Thomas Gleixner
2011-02-10 23:38 ` [patch 68/75] genirq: Add preflow handler support Thomas Gleixner
2011-02-10 23:38 ` [patch 69/75] genirq: Implement irq_data based move_*_irq() versions Thomas Gleixner
2011-02-10 23:38 ` [patch 70/75] x86: Fixup deprecation warnings Thomas Gleixner
2011-02-10 23:38 ` [patch 71/75] x86: ioapic: Use irq_data->state Thomas Gleixner
2011-02-10 23:38 ` [patch 72/75] x86: Use the proper accessors in fixup_irqs() Thomas Gleixner
2011-02-10 23:38 ` [patch 73/75] x86: ioapic: Use new move_irq functions Thomas Gleixner
2011-02-10 23:38 ` [patch 74/75] x86: Use generic show_interrupts Thomas Gleixner
2011-02-10 23:38 ` [patch 75/75] x86: Disable deprecated GENIRQ features Thomas Gleixner
2011-02-10 23:53 ` [patch 00/75] genirq: Overhaul for 2.6.39 Linus Torvalds
2011-02-11  0:00   ` Thomas Gleixner
2011-02-11  0:28     ` Linus Torvalds
2011-02-11  0:49       ` Thomas Gleixner
2011-02-11 13:05         ` Thomas Gleixner
2011-02-11 13:59           ` Ingo Molnar
2011-02-11 14:26             ` Thomas Gleixner
2011-02-13 12:50               ` Sam Ravnborg
2011-02-14 19:01                 ` Thomas Gleixner
2011-02-11  4:03 ` Frank Rowand

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=20110210223258.460731726@linutronix.de \
    --to=tglx@linutronix.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=peterz@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.