From: "Eric W. Biederman" <ebiederm@xmission.com>
To: Andrew Morton <akpm@osdl.org>
Cc: linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org,
linux-pci@atrey.karlin.mff.cuni.cz, discuss@x86-64.org,
Ingo Molnar <mingo@elte.hu>, Thomas Gleixner <tglx@linutronix.de>,
Andi Kleen <ak@suse.de>,
Natalie Protasevich <Natalie.Protasevich@UNISYS.com>,
Len Brown <len.brown@intel.com>,
Kimball Murray <kimball.murray@gmail.com>,
Brice Goglin <brice@myri.com>,
Greg Lindahl <greg.lindahl@qlogic.com>,
Dave Olson <olson@unixfolk.com>, Jeff Garzik <jeff@garzik.org>,
Greg KH <gregkh@suse.de>, Grant Grundler <iod00d@hp.com>,
"bibo,mao" <bibo.mao@intel.com>,
Rajesh Shah <rajesh.shah@intel.com>, Mark Maule <maule@sgi.com>,
Jesper Juhl <jesper.juhl@gmail.com>,
Shaohua Li <shaohua.li@intel.com>,
Matthew Wilcox <matthew@wil.cx>,
"Michael S. Tsirkin" <mst@mellanox.co.il>,
Ashok Raj <ashok.raj@intel.com>,
Randy Dunlap <rdunlap@xenotime.net>Roland Dreier <rd>
Subject: [PATCH 23/25] x86_64 irq: Kill gsi_irq_sharing.
Date: Tue, 20 Jun 2006 16:28:36 -0600 [thread overview]
Message-ID: <11508425263761-git-send-email-ebiederm@xmission.com> (raw)
In-Reply-To: <11508425262259-git-send-email-ebiederm@xmission.com>
After raising the number of irqs the system supports this
function is no longer necessary.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
---
arch/i386/kernel/acpi/boot.c | 5 +--
arch/x86_64/kernel/io_apic.c | 62 ------------------------------------------
2 files changed, 1 insertions(+), 66 deletions(-)
diff --git a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c
index 6e7edc0..74fd53c 100644
--- a/arch/i386/kernel/acpi/boot.c
+++ b/arch/i386/kernel/acpi/boot.c
@@ -42,7 +42,6 @@ #ifdef CONFIG_X86_64
extern void __init clustered_apic_check(void);
-extern int gsi_irq_sharing(int gsi);
#include <asm/proto.h>
static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id) { return 0; }
@@ -55,8 +54,6 @@ #include <mach_apic.h>
#include <mach_mpparse.h>
#endif /* CONFIG_X86_LOCAL_APIC */
-static inline int gsi_irq_sharing(int gsi) { return gsi; }
-
#endif /* X86 */
#define BAD_MADT_ENTRY(entry, end) ( \
@@ -459,7 +456,7 @@ void __init acpi_pic_sci_set_trigger(uns
int acpi_gsi_to_irq(u32 gsi, unsigned int *irq)
{
- *irq = gsi_irq_sharing(gsi);
+ *irq = gsi;
return 0;
}
diff --git a/arch/x86_64/kernel/io_apic.c b/arch/x86_64/kernel/io_apic.c
index f818d64..a904ba7 100644
--- a/arch/x86_64/kernel/io_apic.c
+++ b/arch/x86_64/kernel/io_apic.c
@@ -164,8 +164,6 @@ static void set_ioapic_affinity_irq(unsi
}
#endif
-static u8 gsi_2_irq[NR_IRQ_VECTORS] = { [0 ... NR_IRQ_VECTORS-1] = 0xFF };
-
/*
* The common case is 1:1 IRQ<->pin mappings. Sometimes there are
* shared ISA-space IRQs, so we have to support them. We are super
@@ -721,64 +719,6 @@ static inline int irq_trigger(int idx)
return MPBIOS_trigger(idx);
}
-static int next_irq = 16;
-
-/*
- * gsi_irq_sharing -- Name overload! "irq" can be either a legacy IRQ
- * in the range 0-15, a linux IRQ in the range 0-223, or a GSI number
- * from ACPI, which can reach 800 in large boxen.
- *
- * Compact the sparse GSI space into a sequential IRQ series and reuse
- * vectors if possible.
- */
-int gsi_irq_sharing(int gsi)
-{
- int i, tries, vector;
-
- BUG_ON(gsi >= NR_IRQ_VECTORS);
-
- if (platform_legacy_irq(gsi))
- return gsi;
-
- if (gsi_2_irq[gsi] != 0xFF)
- return (int)gsi_2_irq[gsi];
-
- tries = NR_IRQS;
- try_again:
- vector = assign_irq_vector(gsi, TARGET_CPUS);
-
- /*
- * Sharing vectors means sharing IRQs, so scan irq_vectors for previous
- * use of vector and if found, return that IRQ. However, we never want
- * to share legacy IRQs, which usually have a different trigger mode
- * than PCI.
- */
- for (i = 0; i < NR_IRQS; i++)
- if (IO_APIC_VECTOR(i) == vector)
- break;
- if (platform_legacy_irq(i)) {
- if (--tries >= 0) {
- IO_APIC_VECTOR(i) = 0;
- goto try_again;
- }
- panic("gsi_irq_sharing: didn't find an IRQ using vector 0x%02X for GSI %d", vector, gsi);
- }
- if (i < NR_IRQS) {
- gsi_2_irq[gsi] = i;
- printk(KERN_INFO "GSI %d sharing vector 0x%02X and IRQ %d\n",
- gsi, vector, i);
- return i;
- }
-
- i = next_irq++;
- BUG_ON(i >= NR_IRQS);
- gsi_2_irq[gsi] = i;
- IO_APIC_VECTOR(i) = vector;
- printk(KERN_INFO "GSI %d assigned vector 0x%02X and IRQ %d\n",
- gsi, vector, i);
- return i;
-}
-
static int pin_2_irq(int idx, int apic, int pin)
{
int irq, i;
@@ -808,7 +748,6 @@ static int pin_2_irq(int idx, int apic,
while (i < apic)
irq += nr_ioapic_registers[i++];
irq += pin;
- irq = gsi_irq_sharing(irq);
break;
}
default:
@@ -2202,7 +2141,6 @@ int io_apic_set_pci_routing (int ioapic,
return -EINVAL;
}
- irq = gsi_irq_sharing(irq);
/*
* IRQs < 16 are already in the irq_2_pin[] map
*/
--
1.4.0.gc07e
next prev parent reply other threads:[~2006-06-20 22:28 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-20 22:24 [PATCH 0/25] Decouple IRQ issues (MSI, i386, x86_64, ia64) Eric W. Biederman
2006-06-20 22:28 ` [PATCH 1/25] irq: Convert the move_irq flag from a 32bit word to a single bit Eric W. Biederman
2006-06-20 22:28 ` [PATCH 2/25] irq: Add moved_masked_irq Eric W. Biederman
2006-06-20 22:28 ` [PATCH 3/25] x86_64 irq: Reenable migrating irqs to other cpus Eric W. Biederman
2006-06-20 22:28 ` [PATCH 4/25] msi: Simplify msi enable and disable Eric W. Biederman
2006-06-20 22:28 ` [PATCH 5/25] msi: Make the msi boolean tests return either 0 or 1 Eric W. Biederman
2006-06-20 22:28 ` [PATCH 6/25] msi: Implement helper functions read_msi_msg and write_msi_msg Eric W. Biederman
2006-06-20 22:28 ` [PATCH 7/25] msi: Refactor the msi_ops Eric W. Biederman
2006-06-20 22:28 ` [PATCH 8/25] msi: Simplify the msi irq limit policy Eric W. Biederman
2006-06-20 22:28 ` [PATCH 9/25] irq: Add a dynamic irq creation API Eric W. Biederman
2006-06-20 22:28 ` [PATCH 10/25] ia64 irq: Dynamic irq support Eric W. Biederman
2006-06-20 22:28 ` [PATCH 11/25] i386 " Eric W. Biederman
2006-06-20 22:28 ` [PATCH 12/25] x86_64 " Eric W. Biederman
2006-06-20 22:28 ` [PATCH 13/25] msi: Make the msi code irq based and not vector based Eric W. Biederman
2006-06-20 22:28 ` [PATCH 14/25] x86_64 irq: Move msi message composition into io_apic.c Eric W. Biederman
2006-06-20 22:28 ` [PATCH 15/25] i386 " Eric W. Biederman
2006-06-20 22:28 ` [PATCH 16/25] msi: Only build msi-apic.c on ia64 Eric W. Biederman
2006-06-20 22:28 ` [PATCH 17/25] x86_64 irq: Remove the msi assumption that irq == vector Eric W. Biederman
2006-06-20 22:28 ` [PATCH 18/25] i386 " Eric W. Biederman
2006-06-20 22:28 ` [PATCH 19/25] irq: Remove msi hacks Eric W. Biederman
2006-06-20 22:28 ` [PATCH 20/25] irq: Generalize the check for HARDIRQ_BITS Eric W. Biederman
2006-06-20 22:28 ` [PATCH 21/25] x86_64 irq: Make the external irq handlers report their vector, not the irq number Eric W. Biederman
2006-06-20 22:28 ` [PATCH 22/25] x86_64 irq: make vector_irq per cpu Eric W. Biederman
2006-06-20 22:28 ` Eric W. Biederman [this message]
2006-06-20 22:28 ` [PATCH 24/25] x86_64 irq: Kill irq compression Eric W. Biederman
2006-06-20 22:28 ` [PATCH 25/25] irq: Document what an IRQ is Eric W. Biederman
2006-06-21 1:50 ` [PATCH 11/25] i386 irq: Dynamic irq support Rajesh Shah
2006-06-21 2:21 ` Eric W. Biederman
2006-06-21 2:27 ` Rajesh Shah
2006-06-21 14:07 ` Eric W. Biederman
2006-06-20 23:56 ` [PATCH 9/25] irq: Add a dynamic irq creation API Benjamin Herrenschmidt
2006-06-21 1:01 ` Eric W. Biederman
2006-06-21 1:33 ` Benjamin Herrenschmidt
2006-06-21 1:41 ` Jeff Garzik
2006-06-21 1:36 ` Matthew Wilcox
2006-06-21 1:28 ` [PATCH 8/25] msi: Simplify the msi irq limit policy Rajesh Shah
2006-06-21 2:46 ` Roland Dreier
2006-06-21 3:48 ` Eric W. Biederman
2006-06-21 1:18 ` [PATCH 7/25] msi: Refactor the msi_ops Rajesh Shah
2006-06-21 1:04 ` [PATCH 6/25] msi: Implement helper functions read_msi_msg and write_msi_msg Rajesh Shah
2006-06-21 1:43 ` Eric W. Biederman
2006-06-20 22:45 ` [PATCH 5/25] msi: Make the msi boolean tests return either 0 or 1 Jeff Garzik
2006-06-21 0:44 ` [PATCH 4/25] msi: Simplify msi enable and disable Rajesh Shah
2006-06-21 1:19 ` Eric W. Biederman
2006-06-21 0:30 ` [PATCH 0/25] Decouple IRQ issues (MSI, i386, x86_64, ia64) Rajesh Shah
2006-06-21 1:07 ` Eric W. Biederman
2006-06-21 14:10 ` [PATCH] Decouple IRQ issues (fix i386 compile issues) Eric W. Biederman
2006-06-21 10:24 ` [PATCH 0/25] Decouple IRQ issues (MSI, i386, x86_64, ia64) Ingo Molnar
2006-06-21 16:25 ` Greg KH
2006-06-22 3:55 ` Eric W. Biederman
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=11508425263761-git-send-email-ebiederm@xmission.com \
--to=ebiederm@xmission.com \
--cc=Natalie.Protasevich@UNISYS.com \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=ashok.raj@intel.com \
--cc=bibo.mao@intel.com \
--cc=brice@myri.com \
--cc=discuss@x86-64.org \
--cc=greg.lindahl@qlogic.com \
--cc=gregkh@suse.de \
--cc=iod00d@hp.com \
--cc=jeff@garzik.org \
--cc=jesper.juhl@gmail.com \
--cc=kimball.murray@gmail.com \
--cc=len.brown@intel.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@atrey.karlin.mff.cuni.cz \
--cc=matthew@wil.cx \
--cc=maule@sgi.com \
--cc=mingo@elte.hu \
--cc=mst@mellanox.co.il \
--cc=olson@unixfolk.com \
--cc=rajesh.shah@intel.com \
--cc=rdunlap@xenotime.net \
--cc=shaohua.li@intel.com \
--cc=tglx@linutronix.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox