On Wed, 2009-09-30 at 11:26 -0700, David Woodhouse wrote: > On Wed, 2009-09-30 at 11:02 -0700, Luck, Tony wrote: > > >> An MCA brings down our system immediately, so console output won't help > > >> much. Our MCA analyzer is complaining about accessing a memory hole > > >> consistently at the same address. I am going to try adding some trace > > >> code. > > > > > > Hm. On PowerPC we detect machine checks caused by stray I/O cycles, and > > > we recover from them. Can't we do that kind of thing on IA64 too? > > > > This (presumably) isn't a stray cycle. The cpu has dereferenced a bogus > > pointer to an unpopulated memory address. > > Well, that's kind of what I meant by 'stray cycle'. > > So what's different at PCI_FIXUP_HEADER time to PCI_FIXUP_FINAL time, > which causes this? It's the code in drivers/usb/host/pci-quirks.c which > is tripping up. It works fine if it happens later in the boot. > So far, I have narrowed it down to: base = pci_ioremap_bar(pdev, 0); in quirk_usb_handoff_ohci(). pci_ioremap is returning the bad address shown in our MCA. > > How can we recover from that? > > > > It would be nicer if Linux reported this in a more user-friendly way > > (with the invalid address and a stack trace) ... but the MCA handler > > is a pretty software hostile environment in which to do this. > > Indeed so. Still, we do manage to do that on PowerPC. > -- Andrew Patterson Hewlett-Packard -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html