Bug 7083 - bug in implementation of new multi io apic code
Summary: bug in implementation of new multi io apic code
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: kernel
Version: 6.1
Hardware: i386
OS: Linux
Target Milestone: ---
Assignee: Ingo Molnar
QA Contact:
Depends On:
TreeView+ depends on / blocked
Reported: 1999-11-17 19:16 UTC by Mike Wescott
Modified: 2008-05-01 15:37 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2000-08-22 17:19:33 UTC

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

Description Mike Wescott 1999-11-17 19:16:33 UTC
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 19:19:59 UTC
Created attachment 5 [details]
patch for NCR 3416 and rh 6.1

Comment 2 Cristian Gafton 2000-01-04 22:26:59 UTC
Assigned to dledford

Comment 3 Alan Cox 2000-08-22 17:19:31 UTC
Just as an Ingo FYI

Comment 4 Ingo Molnar 2001-04-16 09:26:43 UTC
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.