[tip:x86/irq] x86, ioapic: In mpparse use mp_register_ioapic

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: tip-bot for Eric W. Biederman
Date: Tuesday, May 4, 2010 - 7:09 pm

Commit-ID:  cf7500c0ea133d66f8449d86392d83f840102632
Gitweb:     http://git.kernel.org/tip/cf7500c0ea133d66f8449d86392d83f840102632
Author:     Eric W. Biederman <ebiederm@xmission.com>
AuthorDate: Tue, 30 Mar 2010 01:07:11 -0700
Committer:  H. Peter Anvin <hpa@zytor.com>
CommitDate: Tue, 4 May 2010 13:34:59 -0700

x86, ioapic: In mpparse use mp_register_ioapic

Long ago MP_ioapic_info was the primary way of setting up our
ioapic data structures and mp_register_ioapic was a compatibility
shim for acpi code.  Now the situation is reversed and
and mp_register_ioapic is the primary way of setting up our
ioapic data structures.

Keep the setting up of ioapic data structures uniform by
having mp_register_ioapic call mp_register_ioapic.

This changes a few fields:

- type: is now hardset to MP_IOAPIC but type had to
  bey MP_IOAPIC or MP_ioapic_info would not have been called.

- flags: is now hard coded to MPC_APIC_USABLE.
  We require flags to contain at least MPC_APIC_USEBLE in
  MP_ioapic_info and we don't ever examine flags so dropping
  a few flags that might possibly exist that we have never
  used is harmless.

- apicaddr: Unchanged

- apicver: Read from the ioapic instead of using the cached
  hardware value in the MP table.  The real hardware value
  will be more accurate.

- apicid: Now verified to be unique and changed if it is not.
  If the BIOS got this right this is a noop.  If the BIOS did
  not fixing things appears to be the better solution.

This adds gsi_base and gsi_end values to our ioapics defined with
the mpatable, which will make our lives simpler later since
we can always assume gsi_base and gsi_end are valid.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
LKML-Reference: <1269936436-7039-10-git-send-email-ebiederm@xmission.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
---
 arch/x86/kernel/mpparse.c |   25 +------------------------
 1 files changed, 1 insertions(+), 24 deletions(-)

diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c
index e81030f..5ae5d24 100644
--- a/arch/x86/kernel/mpparse.c
+++ b/arch/x86/kernel/mpparse.c
@@ -115,21 +115,6 @@ static void __init MP_bus_info(struct mpc_bus *m)
 		printk(KERN_WARNING "Unknown bustype %s - ignoring\n", str);
 }
 
-static int bad_ioapic(unsigned long address)
-{
-	if (nr_ioapics >= MAX_IO_APICS) {
-		printk(KERN_ERR "ERROR: Max # of I/O APICs (%d) exceeded "
-		       "(found %d)\n", MAX_IO_APICS, nr_ioapics);
-		panic("Recompile kernel with bigger MAX_IO_APICS!\n");
-	}
-	if (!address) {
-		printk(KERN_ERR "WARNING: Bogus (zero) I/O APIC address"
-		       " found in table, skipping!\n");
-		return 1;
-	}
-	return 0;
-}
-
 static void __init MP_ioapic_info(struct mpc_ioapic *m)
 {
 	if (!(m->flags & MPC_APIC_USABLE))
@@ -138,15 +123,7 @@ static void __init MP_ioapic_info(struct mpc_ioapic *m)
 	printk(KERN_INFO "I/O APIC #%d Version %d at 0x%X.\n",
 	       m->apicid, m->apicver, m->apicaddr);
 
-	if (bad_ioapic(m->apicaddr))
-		return;
-
-	mp_ioapics[nr_ioapics].apicaddr = m->apicaddr;
-	mp_ioapics[nr_ioapics].apicid = m->apicid;
-	mp_ioapics[nr_ioapics].type = m->type;
-	mp_ioapics[nr_ioapics].apicver = m->apicver;
-	mp_ioapics[nr_ioapics].flags = m->flags;
-	nr_ioapics++;
+	mp_register_ioapic(m->apicid, m->apicaddr, gsi_end + 1);
 }
 
 static void print_MP_intsrc_info(struct mpc_intsrc *m)
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 00/10] x86/irq, Yinghai Lu, (Sun Mar 21, 6:36 pm)
[PATCH 02/10] x86: fix out of order of gsi - full, Yinghai Lu, (Sun Mar 21, 6:36 pm)
[PATCH 10/10] x86: remove arch_probe_nr_irqs, Yinghai Lu, (Sun Mar 21, 6:36 pm)
Re: [PATCH 02/10] x86: fix out of order of gsi - full, Thomas Gleixner, (Mon Mar 22, 4:14 am)
Re: [PATCH 05/10] x86: use vector_desc instead of vector_irq, Thomas Gleixner, (Mon Mar 22, 6:58 am)
Re: [PATCH 05/10] x86: use vector_desc instead of vector_irq, Eric W. Biederman, (Mon Mar 22, 7:04 am)
Re: [PATCH 05/10] x86: use vector_desc instead of vector_irq, Thomas Gleixner, (Mon Mar 22, 7:16 am)
Re: [PATCH 02/10] x86: fix out of order of gsi - full, Yinghai Lu, (Mon Mar 22, 12:45 pm)
Re: [PATCH 02/10] x86: fix out of order of gsi - full, Eric W. Biederman, (Mon Mar 29, 6:40 am)
Re: [PATCH 02/10] x86: fix out of order of gsi - full, H. Peter Anvin, (Mon Mar 29, 10:57 am)
[PATCH 0/14] Start coping gsis &lt; 16 that are not isa irqs., Eric W. Biederman, (Mon Mar 29, 4:19 pm)
[PATCH 01/14] x86 acpi/irq: Introduce apci_isa_irq_to_gsi, Eric W. Biederman, (Mon Mar 29, 4:20 pm)
[PATCH 02/14] x86 acpi/irq: Teach acpi_get_override_irq to ..., Eric W. Biederman, (Mon Mar 29, 4:20 pm)
[PATCH 04/14] x86 acpi/irq: Fix acpi_sci_ioapic_setup so i ..., Eric W. Biederman, (Mon Mar 29, 4:20 pm)
[PATCH 05/14] x86 acpi/irq: Generalize mp_config_acpi_lega ..., Eric W. Biederman, (Mon Mar 29, 4:20 pm)
[PATCH 06/14] x86 ioapic: Only export mp_find_ioapic and m ..., Eric W. Biederman, (Mon Mar 29, 4:20 pm)
[PATCH 07/14] x86 ioapic: Fix the types of gsi values, Eric W. Biederman, (Mon Mar 29, 4:20 pm)
[PATCH 08/14] x86 ioapic: Teach mp_register_ioapic to comp ..., Eric W. Biederman, (Mon Mar 29, 4:20 pm)
[PATCH 09/14] x86 ioapic: In mpparse use mp_register_ioapic, Eric W. Biederman, (Mon Mar 29, 4:20 pm)
[PATCH 10/14] x86 ioapic: Move nr_ioapic_registers calcula ..., Eric W. Biederman, (Mon Mar 29, 4:20 pm)
[PATCH 11/14] x86 ioapic: Optimize pin_2_irq, Eric W. Biederman, (Mon Mar 29, 4:20 pm)
[PATCH 12/14] x86 ioapic: Simplify probe_nr_irqs_gsi., Eric W. Biederman, (Mon Mar 29, 4:20 pm)
[PATCH 13/14] x86 acpi/irq: Handle isa irqs that are not i ..., Eric W. Biederman, (Mon Mar 29, 4:20 pm)
[PATCH 14/14] x86 irq: Kill io_apic_renumber_irq, Eric W. Biederman, (Mon Mar 29, 4:20 pm)
Re: [PATCH 12/14] x86 ioapic: Simplify probe_nr_irqs_gsi., Eric W. Biederman, (Mon Mar 29, 9:43 pm)
Re: [PATCH 12/14] x86 ioapic: Simplify probe_nr_irqs_gsi., Eric W. Biederman, (Mon Mar 29, 10:41 pm)
[PATCH 01/15] x86 acpi/irq: Introduce apci_isa_irq_to_gsi, Eric W. Biederman, (Tue Mar 30, 1:07 am)
[PATCH 02/15] x86 acpi/irq: Teach acpi_get_override_irq to ..., Eric W. Biederman, (Tue Mar 30, 1:07 am)
[PATCH 04/15] x86 acpi/irq: Fix acpi_sci_ioapic_setup so i ..., Eric W. Biederman, (Tue Mar 30, 1:07 am)
[PATCH 05/15] x86 acpi/irq: Generalize mp_config_acpi_lega ..., Eric W. Biederman, (Tue Mar 30, 1:07 am)
[PATCH 06/15] x86 ioapic: Only export mp_find_ioapic and m ..., Eric W. Biederman, (Tue Mar 30, 1:07 am)
[PATCH 07/15] x86 ioapic: Fix io_apic_redir_entries to ret ..., Eric W. Biederman, (Tue Mar 30, 1:07 am)
[PATCH 08/15] x86 ioapic: Fix the types of gsi values, Eric W. Biederman, (Tue Mar 30, 1:07 am)
[PATCH 09/15] x86 ioapic: Teach mp_register_ioapic to comp ..., Eric W. Biederman, (Tue Mar 30, 1:07 am)
[PATCH 10/15] x86 ioapic: In mpparse use mp_register_ioapic, Eric W. Biederman, (Tue Mar 30, 1:07 am)
[PATCH 11/15] x86 ioapic: Move nr_ioapic_registers calcula ..., Eric W. Biederman, (Tue Mar 30, 1:07 am)
[PATCH 12/15] x86 ioapic: Optimize pin_2_irq, Eric W. Biederman, (Tue Mar 30, 1:07 am)
[PATCH 13/15] x86 ioapic: Simplify probe_nr_irqs_gsi., Eric W. Biederman, (Tue Mar 30, 1:07 am)
[PATCH 14/15] x86 acpi/irq: Handle isa irqs that are not i ..., Eric W. Biederman, (Tue Mar 30, 1:07 am)
[PATCH 15/15] x86 irq: Kill io_apic_renumber_irq, Eric W. Biederman, (Tue Mar 30, 1:07 am)
[tip:x86/irq] x86, acpi/irq: Introduce apci_isa_irq_to_gsi, tip-bot for Eric W. ..., (Tue May 4, 7:06 pm)
[tip:x86/irq] x86, acpi/irq: Teach acpi_get_override_irq t ..., tip-bot for Eric W. ..., (Tue May 4, 7:07 pm)
[tip:x86/irq] x86, acpi/irq: pci device dev-&gt;irq is an isa ..., tip-bot for Eric W. ..., (Tue May 4, 7:07 pm)
[tip:x86/irq] x86, acpi/irq: Fix acpi_sci_ioapic_setup so ..., tip-bot for Eric W. ..., (Tue May 4, 7:07 pm)
[tip:x86/irq] x86, acpi/irq: Generalize mp_config_acpi_leg ..., tip-bot for Eric W. ..., (Tue May 4, 7:07 pm)
[tip:x86/irq] x86, ioapic: Only export mp_find_ioapic and ..., tip-bot for Eric W. ..., (Tue May 4, 7:08 pm)
[tip:x86/irq] x86, ioapic: Fix io_apic_redir_entries to re ..., tip-bot for Eric W. ..., (Tue May 4, 7:08 pm)
[tip:x86/irq] x86, ioapic: Fix the types of gsi values, tip-bot for Eric W. ..., (Tue May 4, 7:08 pm)
[tip:x86/irq] x86, ioapic: Teach mp_register_ioapic to com ..., tip-bot for Eric W. ..., (Tue May 4, 7:09 pm)
[tip:x86/irq] x86, ioapic: In mpparse use mp_register_ioapic, tip-bot for Eric W. ..., (Tue May 4, 7:09 pm)
[tip:x86/irq] x86, ioapic: Move nr_ioapic_registers calcul ..., tip-bot for Eric W. ..., (Tue May 4, 7:09 pm)
[tip:x86/irq] x86, ioapic: Optimize pin_2_irq, tip-bot for Eric W. ..., (Tue May 4, 7:09 pm)
[tip:x86/irq] x86, ioapic: Simplify probe_nr_irqs_gsi., tip-bot for Eric W. ..., (Tue May 4, 7:10 pm)
[tip:x86/irq] x86, acpi/irq: Handle isa irqs that are not ..., tip-bot for Eric W. ..., (Tue May 4, 7:10 pm)
[tip:x86/irq] x86, irq: Kill io_apic_renumber_irq, tip-bot for Eric W. ..., (Tue May 4, 7:10 pm)
[PATCH] x86 acpi/irq: Fix harmless typo., Eric W. Biederman, (Wed May 5, 1:53 am)
Re: [PATCH] x86 acpi/irq: Fix harmless typo., Ingo Molnar, (Wed May 5, 1:58 am)
Re: [tip:x86/irq] x86, acpi/irq: Handle isa irqs that are ..., Eric W. Biederman, (Wed May 5, 2:32 am)
[PATCH] x86 acpi/irq: Define gsi_end when X86_IO_APIC is ..., Eric W. Biederman, (Wed May 5, 1:22 pm)
[tip:x86/irq] x86, acpi/irq: Define gsi_end when X86_IO_AP ..., tip-bot for Eric W. ..., (Thu May 6, 3:07 am)