Messages in this thread | | | Date | Tue, 10 Jun 2008 14:30:47 +0100 (BST) | From | "Maciej W. Rozycki" <> | Subject | Re: [PATCH 11/15] x86: move enabling of io_apic to prepare_cpus |
| |
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
| |