Changeset e2793a4 in mainline


Ignore:
Timestamp:
2011-10-29T16:08:53Z (13 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
b50bf6c2
Parents:
069b80d
Message:

Improve handling of ACPI MADT Interrupt Source Overrides slightly.

  • Do not ignore the override entries in the first place and propagate the changes into the IRQ to IO APIC pin map.
  • Do not assert on IRQ beyond the ISA IRQ limit in madt_irq_to_pin(); the excessive entries should be mapped identically.
  • The IRQ to pin map is still not used for anything.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/genarch/src/acpi/madt.c

    r069b80d re2793a4  
    116116static int madt_irq_to_pin(unsigned int irq)
    117117{
    118         ASSERT(irq < sizeof(isa_irq_map) / sizeof(int));
     118        if (irq >= sizeof(isa_irq_map) / sizeof(int))
     119                return (int) irq;
    119120       
    120121        return isa_irq_map[irq];
     
    178179        ASSERT(override->source < sizeof(isa_irq_map) / sizeof(int));
    179180       
    180         printf("MADT: Ignoring %s entry: bus=%" PRIu8 ", source=%" PRIu8
    181             ", global_int=%" PRIu32 ", flags=%#" PRIx16 "\n",
    182             entry[override->header.type], override->bus, override->source,
    183             override->global_int, override->flags);
     181        isa_irq_map[override->source] = override->global_int;
    184182}
    185183
Note: See TracChangeset for help on using the changeset viewer.