Date: Tue, 2 May 2006 19:00:35 GMT From: John Baldwin <jhb@freebsd.org> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/91408 : [irq] ata(4) failure: SETFEATURES SET TRANSFER MODE semaphore timeout !! DANGER Will Robinson !! Message-ID: <200605021900.k42J0Zax079531@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/91408; it has been noted by GNATS. From: John Baldwin <jhb@freebsd.org> To: Eugene Grosbein <eugen@kuzbass.ru> Cc: Eugene Grosbein <eugen@grosbein.pp.ru>, bug-followup@freebsd.org, lightsquid@logvinov.com Subject: Re: kern/91408 : [irq] ata(4) failure: SETFEATURES SET TRANSFER MODE semaphore timeout !! DANGER Will Robinson !! Date: Tue, 2 May 2006 14:59:16 -0400 On Monday 01 May 2006 23:37, Eugene Grosbein wrote: > John Baldwin wrote: > > Well, all the IRQs are the same and none of the interrupts were changed to > > be edge triggered or anything like that, so it's not a problem with > > interrupt routing. If the interrupt routing were busted, the IRQ numbers > > would be different. All the pci_link devices do is help the OS figure out > > which IRQ number a device uses. If those numbers are all the same, then > > interrupt routing is not the issue. > > And if it's not interrupt routing problem, what else pci_link affects to? That's all pci_link effects. :( One thing you can try is to turn off the code to disable each of the links during boot. Something like this: Index: acpi_pci_link.c =================================================================== RCS file: /usr/cvs/src/sys/dev/acpica/acpi_pci_link.c,v retrieving revision 1.53 diff -u -r1.53 acpi_pci_link.c --- acpi_pci_link.c 6 Jan 2006 16:14:32 -0000 1.53 +++ acpi_pci_link.c 2 May 2006 18:58:47 -0000 @@ -517,6 +517,7 @@ for (i = 0; i < sc->pl_num_links; i++) sc->pl_links[i].l_initial_irq = sc->pl_links[i].l_irq; +#if 0 /* * Try to disable this link. If successful, set the current IRQ to * zero and flags to indicate this link is not routed. If we can't @@ -528,13 +529,16 @@ for (i = 0; i < sc->pl_num_links; i++) sc->pl_links[i].l_irq = PCI_INVALID_IRQ; else +#endif for (i = 0; i < sc->pl_num_links; i++) if (PCI_INTERRUPT_VALID(sc->pl_links[i].l_irq)) sc->pl_links[i].l_routed = TRUE; +#if 0 if (bootverbose) { device_printf(dev, "Links after disable:\n"); acpi_pci_link_dump(sc); } +#endif ACPI_SERIAL_END(pci_link); return (0); fail: -- John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200605021900.k42J0Zax079531>