Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d55bef515a01c85aa65c03c285ea8d285fcbab3b
Commit:     d55bef515a01c85aa65c03c285ea8d285fcbab3b
Parent:     60ac8f20feb0bba8caee63be3e7ca5801fe16d4c
Author:     Bernhard Kaindl <[EMAIL PROTECTED]>
AuthorDate: Mon Jul 30 20:35:13 2007 +0200
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Wed Aug 22 14:48:40 2007 -0700

    PCI: lets kill the 'PCI hidden behind bridge' message
    
    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 <[EMAIL PROTECTED]>
    Cc: stable <[EMAIL PROTECTED]>
    Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
---
 drivers/pci/probe.c |   18 +++++++++---------
 1 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 34b8dae..27e00b2 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -653,20 +653,20 @@ int pci_scan_bridge(struct pci_bus *bus, struct pci_dev * 
dev, int max, int pass
 
        sprintf(child->name, (is_cardbus ? "PCI CardBus #%02x" : "PCI Bus 
#%02x"), child->number);
 
+       /* Has only triggered on CardBus, fixup is in yenta_socket */
        while (bus->parent) {
                if ((child->subordinate > bus->subordinate) ||
                    (child->number > bus->subordinate) ||
                    (child->number < bus->number) ||
                    (child->subordinate < bus->number)) {
-                       printk(KERN_WARNING "PCI: Bus #%02x (-#%02x) is "
-                              "hidden behind%s bridge #%02x (-#%02x)%s\n",
-                              child->number, child->subordinate,
-                              bus->self->transparent ? " transparent" : " ",
-                              bus->number, bus->subordinate,
-                              pcibios_assign_all_busses() ? " " :
-                              " (try 'pci=assign-busses')");
-                       printk(KERN_WARNING "Please report the result to "
-                              "<[EMAIL PROTECTED]> to fix this permanently\n");
+                       pr_debug("PCI: Bus #%02x (-#%02x) is %s"
+                               "hidden behind%s bridge #%02x (-#%02x)\n",
+                               child->number, child->subordinate,
+                               (bus->number > child->subordinate &&
+                                bus->subordinate < child->number) ?
+                                       "wholly " : " partially",
+                               bus->self->transparent ? " transparent" : " ",
+                               bus->number, bus->subordinate);
                }
                bus = bus->parent;
        }
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to