Bug 201058 - x86_64 need to pass virtual address to smp_read_mpc
Summary: x86_64 need to pass virtual address to smp_read_mpc
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: kernel
Version: 4.0
Hardware: i386
OS: Linux
medium
medium
Target Milestone: ---
: ---
Assignee: Prarit Bhargava
QA Contact: Brian Brock
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2006-08-02 15:49 UTC by Amul Shah
Modified: 2007-11-30 22:07 UTC (History)
2 users (show)

Fixed In Version: RHBA-2007-0304
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-05-08 03:01:54 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2007:0304 0 normal SHIPPED_LIVE Updated kernel packages available for Red Hat Enterprise Linux 4 Update 5 2007-04-28 18:58:50 UTC

Description Amul Shah 2006-08-02 15:49:59 UTC
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 15:56:58 UTC
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 Program Management 2006-10-12 23:17:41 UTC
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 15:34:34 UTC
QE ack for 4.5.

Comment 6 Red Hat Bugzilla 2007-03-18 22:40:33 UTC
User jparadis's account has been closed

Comment 10 Red Hat Bugzilla 2007-05-08 03:01:54 UTC
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.