Re: [PATCH] Tweak re-routing of PCI interrupts

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Fri, 06 Jun 2003 15:04:43 -0400 (EDT)
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/
Received on Fri Jun 06 2003 - 10:04:45 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:10 UTC