[PATCH] Tweak re-routing of PCI interrupts

M. Warner Losh imp at bsdimp.com
Fri Jun 6 11:37:11 PDT 2003


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.  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


More information about the freebsd-current mailing list