[PATCH] Tweak re-routing of PCI interrupts
John Baldwin
jhb at FreeBSD.org
Fri Jun 6 12:04:45 PDT 2003
On 06-Jun-2003 M. Warner Losh wrote:
> In message: <XFMail.20030606141331.jhb at FreeBSD.org>
> John Baldwin <jhb at 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.
I don't strongly disagree. Hence my request for comments. I've been
of both minds on this one and just want to see what the consensus is.
> 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.
Don't think it matters as far as reboots, but I do think that this
code should write the updated intpin to the actual config register.
--
John Baldwin <jhb at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!" - http://www.FreeBSD.org/
More information about the freebsd-current
mailing list