Date: Fri, 06 Jun 2003 12:36:54 -0600 (MDT) From: "M. Warner Losh" <imp@bsdimp.com> To: jhb@FreeBSD.org Cc: current@FreeBSD.org Subject: Re: [PATCH] Tweak re-routing of PCI interrupts Message-ID: <20030606.123654.96603092.imp@bsdimp.com> In-Reply-To: <XFMail.20030606141331.jhb@FreeBSD.org> References: <XFMail.20030606141331.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <XFMail.20030606141331.jhb@FreeBSD.org> John Baldwin <jhb@FreeBSD.org> writes: : I have a small tweak to the PCI code that re-routes PCI interrupts. : Basically, it does two things, 1) make the comment less ia64-specific : and 2) if the interrupt route returns an invalid IRQ (i.e. 255), then : we don't change the intline. In other words, if we can't route the : interrupt, we just assume that the firmware knows more than we do and : go with the value it stuck in the register. 1) is a no-brainer, but : I wonder what people think about 2). Patch below: I think #2 isn't so good. #1 is a no-brainer :-) : #if ... ... : + irq = PCIB_ROUTE_INTERRUPT(pcib, dev, cfg->intpin); : + if (PCI_INTERRUPT_VALID(irq)) : + cfg->intline = irq; : + else : #endif : + irq = cfg->intline; : + resource_list_add(rl, SYS_RES_IRQ, 0, irq, irq, 1); : } : } The part I don't like is that if we can't route an interrupt, we assume that the interrupt that was written there before is good and routed. This strikes me as an unwise assumption. Also, we haven't recorded our info in the underlying pci register. Don't know if that will matter for other OSes that are booted after we are. Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030606.123654.96603092.imp>