On Fri, May 04, 2007 at 03:18:54AM +0400, Ivan Kokshaysky wrote: > On Thu, May 03, 2007 at 10:41:41AM +0200, Wolfgang Erig wrote: > > I am prepared to do tweaks to your small patch, but I need your help. > > My own blindly experiments failed miserably. > > I don't think that patch did anything wrong, most likely it just > triggered a bug elsewhere. These two lines from your dmesg look > very suspicious: > > > PCI: Cannot allocate resource region 0 of device 0000:00:04.0 > > PCI: Error while updating region 0000:00:04.0/0 (a8008000 != fec08000) > > Note that the BAR seems to have high address bits hardwired to fec00000. > And device 0000:00:04.0 is > > 00:04.0 System peripheral: Siemens Nixdorf AG FSC Multiprocessor Interrupt > > Controller (rev 02) > > I'd guess that when we try to reassign this resource, PCI interrupts might > just stop working. This could explain SCSI timeouts and other weird things. > > Maybe this patch helps? > > Ivan. > > --- 2.6.21/arch/i386/pci/fixup.c 2007-02-04 21:44:54.000000000 +0300 > +++ linux/arch/i386/pci/fixup.c 2007-05-04 01:58:32.629654275 +0400 > @@ -436,3 +436,14 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_CY > pci_early_fixup_cyrix_5530); > DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_CYRIX, > PCI_DEVICE_ID_CYRIX_5530_LEGACY, > pci_early_fixup_cyrix_5530); > + > +/* > + * Siemens Nixdorf AG FSC Multiprocessor Interrupt Controller: > + * prevent update of the BAR0, which doesn't look like a normal BAR. > + */ > +static void __devinit pci_siemens_interrupt_controller(struct pci_dev *dev) > +{ > + dev->resource[0].flags |= IORESOURCE_PCI_FIXED; > +} > +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SIEMENS, 0x0015, > + pci_siemens_interrupt_controller); > - bingo, this works. If it makes sense, please send this to Linus.
Thanks a lot, Wolfgang - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/