Recently I had quite a fight with a PCI-PCMCIA adapter card in a Dell server. It turned out to be caused by a PCI bus overlap issue, which was solved using the "pci=assign-busses" kernel parameter. Once I found this I looked at some history and noticed that there used to be a warning suggesting pci=assign-busses in the PCI code, but it was removed after the bus fixup stuff was added to yenta_socket. Unfortunately this means that it's still silent even when yenta's bus fixup doesn't work, and the warning that yenta_socket gives in that case is not very ominous, nor does it suggest the commandline fix.
Maybe this is a "shouldn't happen" and nobody should ever have to use assign- busses anymore, but unless that's the case I'd like to propose something like this: Signed-off-by: Andrew Rodland <[email protected]> --- drivers/pcmcia/yenta_socket.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/pcmcia/yenta_socket.c b/drivers/pcmcia/yenta_socket.c index abe0e44..38fe701 100644 --- a/drivers/pcmcia/yenta_socket.c +++ b/drivers/pcmcia/yenta_socket.c @@ -1053,8 +1053,11 @@ static void yenta_fixup_parent_bridge(struct pci_bus *cardbus_bridge) /* Show that the wanted subordinate number is not possible: */ if (cardbus_bridge->subordinate > upper_limit) dev_printk(KERN_WARNING, &cardbus_bridge->dev, - "Upper limit for fixing this " - "bridge's parent bridge: #%02x\n", upper_limit); + "PCI bus overlap: tried to renumber PCI bus #%02x " + "but there was nowhere to put it (upper limit: #%02x). " + "CardBus probably won't work. Try booting with " + "pci=assign-busses.", + bridge_to_fix->number, upper_limit); /* If we have room to increase the bridge's subordinate number, */ if (bridge_to_fix->subordinate < upper_limit) { -- 1.6.3.3 _______________________________________________ Linux PCMCIA reimplementation list http://lists.infradead.org/mailman/listinfo/linux-pcmcia
