Bug 7083 - bug in implementation of new multi io apic code
bug in implementation of new multi io apic code
Product: Red Hat Linux
Classification: Retired
Component: kernel (Show other bugs)
i386 Linux
medium Severity medium
: ---
: ---
Assigned To: Ingo Molnar
Depends On:
  Show dependency treegraph
Reported: 1999-11-17 14:16 EST by Mike Wescott
Modified: 2008-05-01 11:37 EDT (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2000-08-22 13:19:33 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
patch for NCR 3416 and rh 6.1 (7.80 KB, patch)
1999-11-17 14:19 EST, Mike Wescott
no flags Details | Diff

  None (edit)
Description Mike Wescott 1999-11-17 14:16:33 EST
See arch/i386/kernel/smp.c around line 546 there is the code

if (mpf->mpf_physptr)
          smp_read_mpc((void *)mpf->mpf_physptr);

If mpf->mpf_physptr is not set or if smp_read_mpc() finds no io_apic
then the default mapping for io_apic is not made (unlike previous
versions of the kernel). This panics on my (very old) SMP machine.

A simple fix is to follow the above code with

 * We have an IO_APIC so use default if BIOS doesn't
 * know about any
if (mp_apic_entries == 0)
	mp_apics[0].mpc_apicaddr = mp_ioapic_addr;

Some additional fixes are also required for this machine (NCR 3416)
which contains a local external 82489DX apic. This doesn't seem to
want to work in logical mode, so I've also incorporated the fixes
proposed by James.Bottomley@columbiasc.ncr.com. It was by trying to
integrate his fix that I found this bug.
Comment 1 Mike Wescott 1999-11-17 14:19:59 EST
Created attachment 5 [details]
patch for NCR 3416 and rh 6.1
Comment 2 Cristian Gafton 2000-01-04 17:26:59 EST
Assigned to dledford
Comment 3 Alan Cox 2000-08-22 13:19:31 EDT
Just as an Ingo FYI
Comment 4 Ingo Molnar 2001-04-16 05:26:43 EDT
whether such old systems (which usually do not conform to the Intel
Multiprocessor Specification) work with current kernels or not is a question of
luck. Logical delivery mode is pretty much a must for things like targetted IPI
delivery in the 2.4 kernel. Any patch that fixes such old systems should go
through "Maciej W. Rozycki" <macro@ds2.pg.gda.pl>, he is the author of most of
the external 82489DX APIC code.

Note You need to log in before you can comment on or make changes to this bug.