[patch 43/47] x86: xen: Sanitise sparse_irq handling

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Thomas Gleixner
Date: Thursday, September 30, 2010 - 4:18 pm

There seems to be more cleanups possible, but that's left to the xen
experts :)

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/xen/events.c |   23 +++++++++++------------
 1 file changed, 11 insertions(+), 12 deletions(-)

Index: linux-2.6-tip/drivers/xen/events.c
===================================================================
--- linux-2.6-tip.orig/drivers/xen/events.c
+++ linux-2.6-tip/drivers/xen/events.c
@@ -338,30 +338,29 @@ static void unmask_evtchn(int port)
 
 static int find_unbound_irq(void)
 {
-	int irq;
-	struct irq_desc *desc;
+	struct irq_data *data;
+	int irq, res;
 
 	for (irq = 0; irq < nr_irqs; irq++) {
-		desc = irq_to_desc(irq);
+		data = irq_get_irq_data(irq);
 		/* only 0->15 have init'd desc; handle irq > 16 */
-		if (desc == NULL)
+		if (!data)
 			break;
-		if (desc->chip == &no_irq_chip)
+		if (data->chip == &no_irq_chip)
 			break;
-		if (desc->chip != &xen_dynamic_chip)
+		if (data->chip != &xen_dynamic_chip)
 			continue;
 		if (irq_info[irq].type == IRQT_UNBOUND)
-			break;
+			return irq;
 	}
 
 	if (irq == nr_irqs)
 		panic("No available IRQ to bind to: increase nr_irqs!\n");
 
-	desc = irq_to_desc_alloc_node(irq, 0);
-	if (WARN_ON(desc == NULL))
-		return -1;
+	res = irq_alloc_desc_at(irq, 0);
 
-	dynamic_irq_init_keep_chip_data(irq);
+	if (WARN_ON(res != irq))
+		return -1;
 
 	return irq;
 }
@@ -495,7 +494,7 @@ static void unbind_from_irq(unsigned int
 	if (irq_info[irq].type != IRQT_UNBOUND) {
 		irq_info[irq] = mk_unbound_info();
 
-		dynamic_irq_cleanup(irq);
+		irq_free_desc(irq);
 	}
 
 	spin_unlock(&irq_mapping_update_lock);


--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[patch 00/47] Sparse irq rework, Thomas Gleixner, (Thu Sep 30, 4:14 pm)
[patch 01/47] x86: Plug memory leak in sparse irq, Thomas Gleixner, (Thu Sep 30, 4:14 pm)
[patch 03/47] genirq: Provide status modifier, Thomas Gleixner, (Thu Sep 30, 4:14 pm)
[patch 04/47] arm: Use irq status modifier, Thomas Gleixner, (Thu Sep 30, 4:14 pm)
[patch 05/47] genirq-sanitize-irq-data-accessors.patch, Thomas Gleixner, (Thu Sep 30, 4:14 pm)
[patch 06/47] genirq: Distangle kernel/irq/handle.c, Thomas Gleixner, (Thu Sep 30, 4:15 pm)
[patch 07/47] genirq: Remove early_init_irq_lock_class(), Thomas Gleixner, (Thu Sep 30, 4:15 pm)
[patch 08/47] genirq: Move core only inlines to kernel/irq, Thomas Gleixner, (Thu Sep 30, 4:15 pm)
[patch 10/47] genirq: Remove export of kstat_irqs_cpu, Thomas Gleixner, (Thu Sep 30, 4:15 pm)
[patch 11/47] genirq: Provide default irq init flags, Thomas Gleixner, (Thu Sep 30, 4:15 pm)
[patch 12/47] arm: Use ARCH_IRQ_INIT_FLAGS, Thomas Gleixner, (Thu Sep 30, 4:15 pm)
[patch 13/47] powerpc: Use ARCH_IRQ_INIT_FLAGS, Thomas Gleixner, (Thu Sep 30, 4:15 pm)
[patch 14/47] genirq: Implement a sane sparse_irq allocator, Thomas Gleixner, (Thu Sep 30, 4:15 pm)
[patch 16/47] genirq: Implement sane enumeration, Thomas Gleixner, (Thu Sep 30, 4:15 pm)
[patch 17/47] genirq-update-kerneldoc.patch, Thomas Gleixner, (Thu Sep 30, 4:15 pm)
[patch 18/47] genirq: Use sane sparse allocator, Thomas Gleixner, (Thu Sep 30, 4:16 pm)
[patch 21/47] x86: Sanitize apb timer interrupt handling, Thomas Gleixner, (Thu Sep 30, 4:16 pm)
[patch 22/47] x86: lguest: Convert to new irq chip functions, Thomas Gleixner, (Thu Sep 30, 4:16 pm)
[patch 23/47] x86: Cleanup visws interrupt handling, Thomas Gleixner, (Thu Sep 30, 4:16 pm)
[patch 24/47] x86: i8259: Convert to new irq_chip functions, Thomas Gleixner, (Thu Sep 30, 4:16 pm)
[patch 25/47] x86: Cleanup io_apic, Thomas Gleixner, (Thu Sep 30, 4:16 pm)
[patch 29/47] pci: Convert msi to new irq_chip functions, Thomas Gleixner, (Thu Sep 30, 4:16 pm)
[patch 30/47] dmar: Convert to new irq chip functions, Thomas Gleixner, (Thu Sep 30, 4:16 pm)
[patch 31/47] ht: Convert to new irq_chip functions, Thomas Gleixner, (Thu Sep 30, 4:17 pm)
[patch 33/47] pci: Cleanup the irq_desc mess in msi, Thomas Gleixner, (Thu Sep 30, 4:17 pm)
[patch 35/47] x86: ioapic: Cleanup some more, Thomas Gleixner, (Thu Sep 30, 4:17 pm)
[patch 36/47] x86: ioapic: Cleanup sparse irq code, Thomas Gleixner, (Thu Sep 30, 4:17 pm)
[patch 38/47] x86: Use sane enumeration, Thomas Gleixner, (Thu Sep 30, 4:17 pm)
[patch 39/47] genirq: Remove arch_init_chip_data(), Thomas Gleixner, (Thu Sep 30, 4:17 pm)
[patch 40/47] genirq: Sanitize dynamic irq handling, Thomas Gleixner, (Thu Sep 30, 4:17 pm)
[patch 41/47] arm: davinci: Cleanup irq_desc access, Thomas Gleixner, (Thu Sep 30, 4:18 pm)
[patch 43/47] x86: xen: Sanitise sparse_irq handling, Thomas Gleixner, (Thu Sep 30, 4:18 pm)
[patch 44/47] sh: Sanitize sparse irq, Thomas Gleixner, (Thu Sep 30, 4:18 pm)
[patch 45/47] x86: lguest: Use new irq allocator, Thomas Gleixner, (Thu Sep 30, 4:18 pm)
[patch 46/47] powerpc: Use new irq allocator, Thomas Gleixner, (Thu Sep 30, 4:18 pm)
Re: [patch 46/47] powerpc: Use new irq allocator, Benjamin Herrenschmidt, (Thu Sep 30, 5:42 pm)
Re: [patch 00/47] Sparse irq rework, Linus Torvalds, (Thu Sep 30, 8:32 pm)
Re: [patch 00/47] Sparse irq rework, Yinghai Lu, (Thu Sep 30, 10:54 pm)
Re: [patch 46/47] powerpc: Use new irq allocator, Thomas Gleixner, (Fri Oct 1, 6:07 am)
Re: [patch 00/47] Sparse irq rework, Thomas Gleixner, (Fri Oct 1, 1:35 pm)
Re: [patch 46/47] powerpc: Use new irq allocator, Benjamin Herrenschmidt, (Fri Oct 1, 1:46 pm)
Re: [patch 46/47] powerpc: Use new irq allocator, Grant Likely, (Fri Oct 1, 2:11 pm)
Re: [patch 46/47] powerpc: Use new irq allocator, Benjamin Herrenschmidt, (Fri Oct 1, 2:17 pm)
Re: [patch 16/47] genirq: Implement sane enumeration, Grant Likely, (Sun Oct 3, 3:55 am)
Re: [patch 00/47] Sparse irq rework, Grant Likely, (Sun Oct 3, 4:23 am)
Re: [patch 00/47] Sparse irq rework, Russell King - ARM Linux, (Sun Oct 3, 4:29 am)
Re: [patch 00/47] Sparse irq rework, Grant Likely, (Sun Oct 3, 4:57 am)
Re: [patch 00/47] Sparse irq rework, Thomas Gleixner, (Sun Oct 3, 6:48 am)
Re: [patch 20/47] x86: Remove useless reinitialization of ..., Eric W. Biederman, (Sun Oct 3, 8:21 am)
Re: [patch 00/47] Sparse irq rework, Eric W. Biederman, (Sun Oct 3, 9:41 am)
Re: [patch 46/47] powerpc: Use new irq allocator, Eric W. Biederman, (Sun Oct 3, 9:53 am)
Re: [patch 46/47] powerpc: Use new irq allocator, Thomas Gleixner, (Sun Oct 3, 11:34 am)
Re: [patch 00/47] Sparse irq rework, Thomas Gleixner, (Sun Oct 3, 12:16 pm)
Re: [patch 46/47] powerpc: Use new irq allocator, Thomas Gleixner, (Sun Oct 3, 1:04 pm)
Re: [patch 46/47] powerpc: Use new irq allocator, Benjamin Herrenschmidt, (Sun Oct 3, 3:54 pm)
Re: [patch 00/47] Sparse irq rework, Benjamin Herrenschmidt, (Sun Oct 3, 3:57 pm)
Re: [patch 46/47] powerpc: Use new irq allocator, Eric W. Biederman, (Sun Oct 3, 5:15 pm)
Re: [patch 46/47] powerpc: Use new irq allocator, Benjamin Herrenschmidt, (Sun Oct 3, 5:37 pm)
Re: [patch 00/47] Sparse irq rework, Eric W. Biederman, (Sun Oct 3, 5:49 pm)
Re: [patch 00/47] Sparse irq rework, Eric W. Biederman, (Sun Oct 3, 6:13 pm)
Re: [patch 00/47] Sparse irq rework, Ingo Molnar, (Sun Oct 3, 11:36 pm)
Re: [patch 00/47] Sparse irq rework, Thomas Gleixner, (Mon Oct 4, 1:05 am)
Re: [patch 00/47] Sparse irq rework, Grant Likely, (Mon Oct 4, 9:31 am)
Re: [patch 46/47] powerpc: Use new irq allocator, Grant Likely, (Mon Oct 4, 9:46 am)
Re: [patch 00/47] Sparse irq rework, Thomas Gleixner, (Tue Oct 5, 3:22 am)
Re: [patch 00/47] Sparse irq rework, Yinghai Lu, (Wed Oct 6, 3:45 pm)
Re: [patch 00/47] Sparse irq rework, Thomas Gleixner, (Wed Oct 6, 3:52 pm)
Re: [patch 00/47] Sparse irq rework, Yinghai Lu, (Wed Oct 6, 4:37 pm)
Re: [patch 00/47] Sparse irq rework, Yinghai Lu, (Wed Oct 6, 5:16 pm)
Re: [patch 00/47] Sparse irq rework, Thomas Gleixner, (Wed Oct 6, 9:01 pm)
Re: [patch 00/47] Sparse irq rework, Yinghai Lu, (Wed Oct 6, 9:38 pm)
Re: [patch 00/47] Sparse irq rework, Thomas Gleixner, (Fri Oct 8, 2:50 pm)
Re: [patch 00/47] Sparse irq rework, Thomas Gleixner, (Fri Oct 8, 2:54 pm)
Re: [patch 00/47] Sparse irq rework, Yinghai Lu, (Fri Oct 8, 9:26 pm)
Re: [patch 00/47] Sparse irq rework, Yinghai Lu, (Fri Oct 8, 10:44 pm)
Re: [patch 00/47] Sparse irq rework, Thomas Gleixner, (Fri Oct 8, 11:10 pm)
Re: [patch 00/47] Sparse irq rework, Thomas Gleixner, (Fri Oct 8, 11:34 pm)
Re: [patch 00/47] Sparse irq rework, Yinghai Lu, (Sat Oct 9, 12:03 am)
Re: [patch 00/47] Sparse irq rework, Yinghai Lu, (Sat Oct 9, 12:08 am)
Re: [patch 00/47] Sparse irq rework, Thomas Gleixner, (Sat Oct 9, 5:08 am)
Re: [patch 00/47] Sparse irq rework, Thomas Gleixner, (Sat Oct 9, 5:12 am)
Re: [patch 00/47] Sparse irq rework, Yinghai Lu, (Sat Oct 9, 7:32 pm)
Re: [patch 00/47] Sparse irq rework, Yinghai Lu, (Sat Oct 9, 10:11 pm)
Re: [patch 00/47] Sparse irq rework, Thomas Gleixner, (Sun Oct 10, 1:20 am)
Re: [patch 00/47] Sparse irq rework, Thomas Gleixner, (Sun Oct 10, 2:32 am)
Re: [patch 00/47] Sparse irq rework, Anca Emanuel, (Sun Oct 10, 6:30 am)
Re: [patch 00/47] Sparse irq rework, Yinghai Lu, (Sun Oct 10, 7:20 pm)
Re: [patch 00/47] Sparse irq rework, Yinghai Lu, (Sun Oct 10, 8:50 pm)
Re: [patch 00/47] Sparse irq rework, Thomas Gleixner, (Mon Oct 11, 1:16 am)
Re: [patch 00/47] Sparse irq rework, Benjamin Herrenschmidt, (Mon Oct 11, 4:34 am)
Re: [patch 00/47] Sparse irq rework, Yinghai Lu, (Mon Oct 11, 9:19 am)
Re: [patch 33/47] pci: Cleanup the irq_desc mess in msi, Jesse Barnes, (Mon Oct 11, 10:08 am)
[tip:irq/core] x86: Don't setup ioapic irq for sci twice, tip-bot for Yinghai Lu, (Tue Oct 12, 1:23 pm)