Re: post-2.6.14 USB change breaks sparc64 boot

From: David S. Miller
Date: Fri Nov 04 2005 - 12:44:25 EST


From: "Maciej W. Rozycki" <macro@xxxxxxxxxxxxxx>
Date: Thu, 3 Nov 2005 17:46:20 +0000 (GMT)

> On Thu, 3 Nov 2005, David S. Miller wrote:
>
> > Perhaps pci_fixup_final would be a more appropriate time to run this
> > USB host controller fixup? One downside to this is that such calls
> > would not be invoked for hot-plugged USB host controller devices.
>
> This might actually want to be split to disable legacy stuff as soon as
> possible to prevent a flood of interrupts, sending SMIs and what not else.
> That just requires poking at the PCI config space. Whatever's the rest
> could be done later. I guess hot-plugged USB host controllers are not
> configured for legacy support, so the early bits should not matter for
> them.

Would anyone mind if I pushed to Linus the following fix, at
least for now? Thanks.

diff-tree 834843a8562e6614768d8c8b8a23d94d98af7360 (from 06024f217d607369f0ee0071034ebb03071d5fb2)
Author: David S. Miller <davem@xxxxxxxxxxxxxxxxxxxx>
Date: Fri Nov 4 09:38:18 2005 -0800

[USB]: Make early handoff a final fixup instead of a header one.

At header fixup time, it is not yet legal to ioremap() PCI
device registers, yet that is what this quirk code needs to
do.

Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>

diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c
index b1aa350..e46528c 100644
--- a/drivers/usb/host/pci-quirks.c
+++ b/drivers/usb/host/pci-quirks.c
@@ -316,4 +316,4 @@ static void __devinit quirk_usb_early_ha
else if (pdev->class == PCI_CLASS_SERIAL_USB_EHCI)
quirk_usb_disable_ehci(pdev);
}
-DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, quirk_usb_early_handoff);
+DECLARE_PCI_FIXUP_FINAL(PCI_ANY_ID, PCI_ANY_ID, quirk_usb_early_handoff);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/