Messages in this thread Patch in this message | | | From | Yinghai Lu <> | Subject | [PATCH] irq: rename irq_desc() to to_irq_desc() - fix #3 | Date | Mon, 18 Aug 2008 13:44:50 -0700 |
| |
add create_irq_nr, and retore create_irq to old
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
--- arch/arm/mach-iop13xx/msi.c | 4 ++-- arch/ia64/kernel/iosapic.c | 6 +++--- arch/ia64/kernel/irq_ia64.c | 2 +- arch/ia64/kernel/msi_ia64.c | 2 +- arch/ia64/sn/kernel/msi_sn.c | 2 +- arch/x86/kernel/io_apic.c | 18 +++++++++++++++--- drivers/pci/htirq.c | 2 +- drivers/pci/intel-iommu.c | 2 +- include/linux/irq.h | 3 ++- 9 files changed, 27 insertions(+), 14 deletions(-)
Index: linux-2.6/arch/arm/mach-iop13xx/msi.c =================================================================== --- linux-2.6.orig/arch/arm/mach-iop13xx/msi.c +++ linux-2.6/arch/arm/mach-iop13xx/msi.c @@ -125,7 +125,7 @@ void __init iop13xx_msi_init(void) /* * Dynamic irq allocate and deallocation */ -unsigned int create_irq(unsigned not_used) +int create_irq(void) { int irq, pos; @@ -173,7 +173,7 @@ static struct irq_chip iop13xx_msi_chip int arch_setup_msi_irq(struct pci_dev *pdev, struct msi_desc *desc) { - int id, irq = create_irq(0); + int id, irq = create_irq(); struct msi_msg msg; if (irq < 0) Index: linux-2.6/arch/ia64/kernel/iosapic.c =================================================================== --- linux-2.6.orig/arch/ia64/kernel/iosapic.c +++ linux-2.6/arch/ia64/kernel/iosapic.c @@ -532,7 +532,7 @@ iosapic_reassign_vector (int irq) int new_irq; if (iosapic_intr_info[irq].count) { - new_irq = create_irq(0); + new_irq = create_irq(); if (new_irq < 0) panic("%s: out of interrupt vectors!\n", __func__); printk(KERN_INFO "Reassigning vector %d to %d\n", @@ -783,7 +783,7 @@ iosapic_register_intr (unsigned int gsi, goto unlock_iosapic_lock; } } else - irq = create_irq(0); + irq = create_irq(); /* If vector is running out, we try to find a sharable vector */ if (irq < 0) { @@ -922,7 +922,7 @@ iosapic_register_platform_intr (u32 int_ delivery = IOSAPIC_PMI; break; case ACPI_INTERRUPT_INIT: - irq = create_irq(0); + irq = create_irq(); if (irq < 0) panic("%s: out of interrupt vectors!\n", __func__); vector = irq_to_vector(irq); Index: linux-2.6/arch/ia64/kernel/irq_ia64.c =================================================================== --- linux-2.6.orig/arch/ia64/kernel/irq_ia64.c +++ linux-2.6/arch/ia64/kernel/irq_ia64.c @@ -403,7 +403,7 @@ void destroy_and_reserve_irq(unsigned in /* * Dynamic irq allocate and deallocation for MSI */ -unsigned int create_irq(unsigned int not_used) +int create_irq(void) { unsigned long flags; int irq, vector, cpu; Index: linux-2.6/arch/ia64/kernel/msi_ia64.c =================================================================== --- linux-2.6.orig/arch/ia64/kernel/msi_ia64.c +++ linux-2.6/arch/ia64/kernel/msi_ia64.c @@ -84,7 +84,7 @@ int ia64_setup_msi_irq(struct pci_dev *p int irq, vector; cpumask_t mask; - irq = create_irq(0); + irq = create_irq(); if (irq < 0) return irq; Index: linux-2.6/arch/ia64/sn/kernel/msi_sn.c =================================================================== --- linux-2.6.orig/arch/ia64/sn/kernel/msi_sn.c +++ linux-2.6/arch/ia64/sn/kernel/msi_sn.c @@ -83,7 +83,7 @@ int sn_setup_msi_irq(struct pci_dev *pde if (provider == NULL || provider->dma_map_consistent == NULL) return -EINVAL; - irq = create_irq(0); + irq = create_irq(); if (irq < 0) return irq; Index: linux-2.6/arch/x86/kernel/io_apic.c =================================================================== --- linux-2.6.orig/arch/x86/kernel/io_apic.c +++ linux-2.6/arch/x86/kernel/io_apic.c @@ -3039,7 +3039,7 @@ device_initcall(ioapic_init_sysfs); /* * Dynamic irq allocate and deallocation */ -unsigned int create_irq(unsigned int irq_want) +unsigned int create_irq_nr(unsigned int irq_want) { /* Allocate an unused irq */ unsigned int irq; @@ -3074,6 +3074,18 @@ unsigned int create_irq(unsigned int irq return irq; } +int create_irq(void) +{ + int irq; + + irq = create_irq_nr(nr_irqs - 1); + + if (irq == 0) + irq = -1; + + return irq; +} + void destroy_irq(unsigned int irq) { unsigned long flags; @@ -3346,7 +3358,7 @@ int arch_setup_msi_irq(struct pci_dev *d irq_want = build_irq_for_pci_dev(dev) + 0x100; - irq = create_irq(irq_want); + irq = create_irq_nr(irq_want); if (irq == 0) return -1; @@ -3388,7 +3400,7 @@ int arch_setup_msi_irqs(struct pci_dev * irq_want = build_irq_for_pci_dev(dev) + 0x100; sub_handle = 0; list_for_each_entry(desc, &dev->msi_list, list) { - irq = create_irq(irq_want--); + irq = create_irq_nr(irq_want--); if (irq == 0) return -1; #ifdef CONFIG_INTR_REMAP Index: linux-2.6/drivers/pci/htirq.c =================================================================== --- linux-2.6.orig/drivers/pci/htirq.c +++ linux-2.6/drivers/pci/htirq.c @@ -139,7 +139,7 @@ int __ht_create_irq(struct pci_dev *dev, cfg->msg.address_hi = 0xffffffff; irq_want= build_irq_for_pci_dev(dev); - irq = create_irq(irq_want + idx); + irq = create_irq_nr(irq_want + idx); if (irq == 0) { kfree(cfg); return -EBUSY; Index: linux-2.6/drivers/pci/intel-iommu.c =================================================================== --- linux-2.6.orig/drivers/pci/intel-iommu.c +++ linux-2.6/drivers/pci/intel-iommu.c @@ -915,7 +915,7 @@ int dmar_set_interrupt(struct intel_iomm { int irq, ret; - irq = create_irq(0); + irq = create_irq(); if (!irq) { printk(KERN_ERR "IOMMU: no free vectors\n"); return -EINVAL; Index: linux-2.6/include/linux/irq.h =================================================================== --- linux-2.6.orig/include/linux/irq.h +++ linux-2.6/include/linux/irq.h @@ -396,7 +396,8 @@ extern void set_irq_noprobe(unsigned int extern void set_irq_probe(unsigned int irq); /* Handle dynamic irq creation and destruction */ -extern unsigned int create_irq(unsigned int irq_want); +extern unsigned int create_irq_nr(unsigned int irq_want); +extern int create_irq(void); extern void destroy_irq(unsigned int irq); /* Test to see if a driver has successfully requested an irq */
| |