• Andi Kleen's avatar
    x86: only scan the root bus in early PCI quirks · 8659c406
    Andi Kleen authored
    We found a situation on Linus' machine that the Nvidia timer quirk hit on
    a Intel chipset system.  The problem is that the system has a fancy Nvidia
    card with an own PCI bridge, and the early-quirks code looking for any
    NVidia bridge triggered on it incorrectly.  This didn't lead a boot
    failure by luck, but the timer routing code selecting the wrong timer
    first and some ugly messages.  It might lead to real problems on other
    systems.
    
    I checked all the devices which are currently checked for by early_quirks
    and it turns out they are all located in the root bus zero.
    
    So change the early-quirks loop to only scan bus 0.  This incidently also
    saves quite some unnecessary scanning work, because early_quirks doesn't
    go through all the non root busses.
    
    The graphics card is not on bus 0, so it is not matched anymore.
    Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    8659c406
early-quirks.c 7.21 KB