Skip site navigation (1)Skip section navigation (2)
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>