Skip to content

Commit

Permalink
x86, ioapic: Simplify probe_nr_irqs_gsi.
Browse files Browse the repository at this point in the history
Use the global gsi_end value now that all ioapics have
valid gsi numbers instead of a combination of acpi_probe_gsi
and walking all of the ioapics and couting their number of
entries by hand if acpi_probe_gsi gave us an answer we did
not like.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
LKML-Reference: <1269936436-7039-13-git-send-email-ebiederm@xmission.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
  • Loading branch information
Eric W. Biederman authored and H. Peter Anvin committed May 4, 2010
1 parent d464207 commit 4afc51a
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 43 deletions.
6 changes: 0 additions & 6 deletions arch/x86/include/asm/mpspec.h
Original file line number Diff line number Diff line change
Expand Up @@ -105,12 +105,6 @@ extern void mp_config_acpi_legacy_irqs(void);
struct device;
extern int mp_register_gsi(struct device *dev, u32 gsi, int edge_level,
int active_high_low);
extern int acpi_probe_gsi(void);
#else /* !CONFIG_ACPI: */
static inline int acpi_probe_gsi(void)
{
return 0;
}
#endif /* CONFIG_ACPI */

#define PHYSID_ARRAY_SIZE BITS_TO_LONGS(MAX_APICS)
Expand Down
23 changes: 0 additions & 23 deletions arch/x86/kernel/acpi/boot.c
Original file line number Diff line number Diff line change
Expand Up @@ -876,29 +876,6 @@ static int __init acpi_parse_madt_lapic_entries(void)
extern int es7000_plat;
#endif

int __init acpi_probe_gsi(void)
{
int idx;
int gsi;
int max_gsi = 0;

if (acpi_disabled)
return 0;

if (!acpi_ioapic)
return 0;

max_gsi = 0;
for (idx = 0; idx < nr_ioapics; idx++) {
gsi = mp_gsi_routing[idx].gsi_end;

if (gsi > max_gsi)
max_gsi = gsi;
}

return max_gsi + 1;
}

static void assign_to_mp_irq(struct mpc_intsrc *m,
struct mpc_intsrc *mp_irq)
{
Expand Down
17 changes: 3 additions & 14 deletions arch/x86/kernel/apic/io_apic.c
Original file line number Diff line number Diff line change
Expand Up @@ -3850,22 +3850,11 @@ int __init io_apic_get_redir_entries (int ioapic)

void __init probe_nr_irqs_gsi(void)
{
int nr = 0;
int nr;

nr = acpi_probe_gsi();
if (nr > nr_irqs_gsi) {
nr = gsi_end + 1;
if (nr > nr_irqs_gsi)
nr_irqs_gsi = nr;
} else {
/* for acpi=off or acpi is not compiled in */
int idx;

nr = 0;
for (idx = 0; idx < nr_ioapics; idx++)
nr += io_apic_get_redir_entries(idx);

if (nr > nr_irqs_gsi)
nr_irqs_gsi = nr;
}

printk(KERN_DEBUG "nr_irqs_gsi: %d\n", nr_irqs_gsi);
}
Expand Down

0 comments on commit 4afc51a

Please sign in to comment.