Re: [PATCH 11/15] x86: move enabling of io_apic to prepare_cpus

From: Maciej W. Rozycki
Date: Tue Jun 10 2008 - 09:33:14 EST


On Tue, 10 Jun 2008, Glauber Costa wrote:

> >> Then again -- what if X86_LOCAL_APIC is set, but X86_IO_APIC is not?
> >
> > config X86_LOCAL_APIC
> > def_bool y
> > depends on X86_64 || (X86_32 && (X86_UP_APIC || ((X86_VISWS ||
> > SMP) && !X86_VOYAGER) || X86_GENERICARCH))
> >
> > config X86_IO_APIC
> > def_bool y
> > depends on X86_64 || (X86_32 && (X86_UP_IOAPIC || (SMP &&
> > !(X86_VISWS || X86_VOYAGER)) || X86_GENERICARCH))
> >
> > for 64bit, those are all set.
> >
> > for 32bit, may need to null stub if X86_IO_APIC is not set
> >
> > YH
> Fair Enough.

That does not answer the question what to do with a 32-bit kernel run on
a system that requires the fixup in the 64-bit mode. Papering over such
firmware bugs in the kernel encourages hardware vendors to maintain the
breakage.

Note that the I/O APIC comes out of reset with all the redirection
entries masked out, so if any error conditions are triggered before Linux
configures the chip, they are a result of a deliberate misprogramming done
to the chip by the firmware.

Does anyone have a reference to the original problem report which lead to
this workaround having been put in place?

Maciej
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/