Bus renumbering, pci=assign-busses, and warning messages

Andrew Rodland andrew at cleverdomain.org
Sat Oct 17 17:14:39 EDT 2009


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 <andrew at cleverdomain.org>
---
 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



More information about the linux-pcmcia mailing list