Subject: Re: explanation of PCI cardbus bridge code...
To: None <tech-kern@NetBSD.org>
From: David Young <dyoung@pobox.com>
List: tech-kern
Date: 02/20/2006 17:08:34
On Tue, Feb 21, 2006 at 07:56:41AM +0900, Christopher SEKIYA wrote:
> On Feb 21, 2006, at 12:54 AM, Garrett D'Amore wrote:
> 
> >Can anyone explain the following code:
> >
> >#if NIOAPIC > 0
> >    printf("%s: using ioapic for interrupt\n", sc->sc_dev.dv_xname);
> >#else
> >    if ((0 == pa->pa_intrline) || (255 == pa->pa_intrline)) {
> >            printf("%s: NOT USED because of unconfigured interrupt\n",
> >            sc->sc_dev.dv_xname);
> >        return;
> >    }
> >#endif
> 
> AFAICT the bit wrapped in #else was put in before we had a working  
> interrupt fixup scheme.  It broke for machines that were using  
> ioapic, hence the #if hackery.

I thought that on i386, interrupts were only fixed up if 'options
PCIBIOS_INTR_FIXUP' was in the kernel configuration; thus "NOT USED
because of unconfigured interrupt" marks a legitimate problem if the
kernel wasn't compiled with PCIBIOS_INTR_FIXUP.  Is that not so?  That is,
does NetBSD/i386 always fix up interrupts?

Dave

-- 
David Young             OJC Technologies
dyoung@ojctech.com      Urbana, IL * (217) 278-3933