[lkml]   [2004]   [Nov]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] fix platform_rename_gsi related ia32 build breakage
    On Wed, 2004-11-10 at 19:24, Linus Torvalds wrote:

    > Quite frankly, I think the whole thing is broken. #ifdef's inside code
    > is _evil_, and "platform_rename_gsi()" doesn't make sense as a name.
    > I'll apply your patch, but quite frankly, I think the ACPI layer is
    > doing crap.
    > Len, can you please use a more descriptive name, and have it be always
    > defined (make it an inline function that just becomes a no-op or
    > something).

    This is already fixed in the latest ACPI patch, included in the current
    -mm tree. So I've gone ahead and excluded the two csets you applied
    adding the #ifdefs.

    I used a function pointer here because the same kernel binary must be
    able to run on an ES7000 or a non-ES7000, so the compile-time inline
    idiom doesn't work. Originally we called it es7000-something, but since
    the mechanism is general it could be used just as well by any non-ES7000
    system, so we settled on a more generic name -- platform_rename_gsi().

    What this routine does is accomodate exotic hardware. On the ES7000 the
    hardware designers decided to connect their legacy devices to interrupt
    pins > 15. Getting Linux to handle this was goodness because it forced
    me to go through and clean up some old interrupt-source-override code
    that basically worked by accident. But on the ES7000, the problem
    remained for what to do about the PCI devices connected to interrupt
    pins < 16, including pin0. Without platform_rename_gsi, these pins are
    given identity-mapped IRQ#'s below 16, and Linux lives with lots of
    legacy code that assumes that IRQ's below 16 are special. So
    platform_rename_gsi() on the ES7000 simply gives these pins new IRQ#'s
    starting above what would normally be the highest GSI in the system.
    These number are not subject to any legacy special cases and MSI etc.
    work fine.

    Finally, there were two places this technicaue is used. ACPI-mode has
    been in for a while. The one that broke the !ACPI MPS+IOAPIC build
    yesterday was new -- it replaced a hack in the MPS code that that was
    downright scary because it could potentially break any non-ES7000

    If you read this far and have suggestions for a more descriptive name
    than platform_rename_gsi(), just let me know.


    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 14:07    [W:0.021 / U:42.652 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site