Bug 201058 - x86_64 need to pass virtual address to smp_read_mpc
x86_64 need to pass virtual address to smp_read_mpc
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: kernel (Show other bugs)
4.0
i386 Linux
medium Severity medium
: ---
: ---
Assigned To: Prarit Bhargava
Brian Brock
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2006-08-02 11:49 EDT by Amul Shah
Modified: 2007-11-30 17:07 EST (History)
2 users (show)

See Also:
Fixed In Version: RHBA-2007-0304
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2007-05-07 23:01:54 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)

  None (edit)
Description Amul Shah 2006-08-02 11:49:59 EDT
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.10) Gecko/20050716 Firefox/1.0.6

Description of problem:
Note: The fix already exists in the upstream kernel (2.6.17) and the i386 version of the RHEL4 U4 kernel (2.6.9-40.EL)

When using the boot parameter acpi=noirq, the kernel hangs (aka does not panic) in smp_read_mpc when trying to read the ES7000 MPConfig table (which has been moved higher in memory by an new firmware release).


Version-Release number of selected component (if applicable):
kernel-2.6.9-40

How reproducible:
Always


Steps to Reproduce:
1. Load new ES7000 BIOS (not released yet)
2. Boot the ES7000 with the boot parameter acpi=noirq
3. Machine hangs

Actual Results:

Machine Hangs

Expected Results:
The machine should have booted.

Additional info:
This patch changes the code to pass a virtual address to smp_read_mpc instead of a physical address.  This code has been copied directly from the i386 branch and works.  Excuse any spacing issues in this patch, I am writing this bug on windDOwS.

---
--- linux-2.6.9-40.orig/arch/x86_64/kernel/mpparse.c	2006-08-02 11:07:23.000000000 -0400
+++ linux-2.6.9-40.fixed/arch/x86_64/kernel/mpparse.c	2006-08-02 11:49:17.000000000 -0400
@@ -563,7 +563,7 @@
 		 * Read the physical hardware table.  Anything here will
 		 * override the defaults.
 		 */
-		if (!smp_read_mpc((void *)(unsigned long)mpf->mpf_physptr)) {
+		if (!smp_read_mpc((void *)phys_to_virt(mpf->mpf_physptr))) {
 			smp_found_config = 0;
 			printk(KERN_ERR "BIOS bug, MP table errors detected!...\n");
 			printk(KERN_ERR "... disabling SMP support. (tell your hw vendor)\n");
Comment 2 Jason Baron 2006-09-05 11:56:58 EDT
committed in stream U5 build 42.6. A test kernel with this patch is available
from http://people.redhat.com/~jbaron/rhel4/
Comment 3 RHEL Product and Program Management 2006-10-12 19:17:41 EDT
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux maintenance release.  Product Management has requested
further review of this request by Red Hat Engineering, for potential
inclusion in a Red Hat Enterprise Linux Update release for currently deployed
products.  This request is not yet committed for inclusion in an Update
release.
Comment 4 Jay Turner 2006-10-17 11:34:34 EDT
QE ack for 4.5.
Comment 6 Red Hat Bugzilla 2007-03-18 18:40:33 EDT
User jparadis@redhat.com's account has been closed
Comment 10 Red Hat Bugzilla 2007-05-07 23:01:54 EDT
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHBA-2007-0304.html

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