• Bernhard Kaindl's avatar
    PCI: lets kill the 'PCI hidden behind bridge' message · d55bef51
    Bernhard Kaindl authored
    Adrian Bunk wrote:
    > Alois Nešpor wrote
    >> PCI: Bus #0b (-#0e) is hidden behind transparent bridge #0a (-#0b) (try 'pci=assign-busses')
    >> Please report the result to linux-kernel to fix this permanently"
    >>
    >> dmesg:
    >> "Yenta: Raising subordinate bus# of parent bus (#0a) from #0b to #0e"
    >> without pci=assign-busses and nothing with pci=assign-busses.
    > 
    > Bernhard?
    
    Ok, lets kill the message. As Alois Nešpor also saw, that's fixed up by Yenta,
    so PCI does not have to warn about it. PCI could still warn about it if
    is_cardbus is 0 in that instance of pci_scan_bridge(), but so far I have
    not seen a report where this would have been the case so I think we can
    spare the kernel of that check (removes ~300 lines of asm) unless debugging
    is done.
    
    History: The whole check was added in the days before we had the fixup
    for this in Yenta and pci=assign-busses was the only way to get CardBus
    cards detected on many (not all) of the machines which give this warning.
    
    In theory, there could be cases when this warning would be triggered and
    it's not cardbus, then the warning should still apply, but I think this
    should only be the case when working on a completely broken PCI setup,
    but one may have already enabled the debug code in drivers/pci and the
    patched check would then trigger.
    
    I do not sign this off yet because it's completely untested so far, but
    everyone is free to test it (with the #ifdef DEBUG replaced by #if 1 and
    pr_debug( changed to printk(.
    
    We may also dump the whole check (remove everything within the #ifdef from
    the source) if that's perferred.
    
    On Alois Nešpor's machine this would then (only when debugging) this message:
    
    "PCI: Bus #0b (-#0e) is partially hidden behind transparent bridge #0a (-#0b)"
    
    "partially" should be in the message on his machine because #0b of #0b-#0e 
    is reachable behind #0a-#0b, but not #0c-#0e.
    
    But that differentiation is now moot anyway because the fixup in Yenta takes
    care of it as far as I could see so far, which means that unless somebody
    is debugging a totally broken PCI setup, this message is not needed anymore,
    not even for debugging PCI.
    
    
    Ok, here the patch with the following changes:
    
    * Refined to say that the bus is only partially hidden when the parent
      bus numbers are not totally way off (outside of) the child bus range
    * remove the reference to pci=assign-busses and the plea to report it
    
    We could add a pure source code-only comment to keep a reference to
    pci=assign-busses the in case when this is triggered by someone who
    is debugging the cause of this message and looking the way to solve it.
    
    From: Bernhard Kaindl <bk@suse.de>
    Cc: stable <stable@kernel.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    d55bef51
probe.c 33.3 KB