• Eric W. Biederman's avatar
    x86, irq: Rename gsi_end gsi_top, and fix off by one errors · a4384df3
    Eric W. Biederman authored
    When I introduced the global variable gsi_end I thought gsi_end on
    io_apics was one past the end of the gsi range for the io_apic.  After
    it was pointed out the the range on io_apics was inclusive I changed
    my global variable to match.  That was a big mistake.  Inclusive
    semantics without a range start cannot describe the case when no gsi's
    are allocated.  Describing the case where no gsi's are allocated is
    important in sfi.c and mpparse.c so that we can assign gsi numbers
    instead of blindly copying the gsi assignments the BIOS has done as we
    do in the acpi case.
    
    To keep from getting the global variable confused with the gsi range
    end rename it gsi_top.
    
    To allow describing the case where no gsi's are allocated have gsi_top
    be one place the highest gsi number seen in the system.
    
    This fixes an off by one bug in sfi.c:
    Reported-by: default avatarjacob pan <jacob.jun.pan@linux.intel.com>
    
    This fixes the same off by one bug in mpparse.c:
    
    This fixes an off unreachable by one bug in acpi/boot.c:irq_to_gsi
    Reported-by: default avatarYinghai <yinghai.lu@oracle.com>
    Signed-off-by: default avatarEric W. Biederman <ebiederm@xmission.com>
    LKML-Reference: <m17hm9jre7.fsf_-_@fess.ebiederm.org>
    Signed-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
    a4384df3
io_apic.c 103 KB