Bug 66966

Summary: Wrong physical address translation for DMA >4GB
Product: Red Hat Enterprise Linux 2.1 Reporter: Martin Wilck <martin.wilck>
Component: kernelAssignee: Larry Woodman <lwoodman>
Status: CLOSED ERRATA QA Contact: Brian Brock <bbrock>
Severity: high Docs Contact:
Priority: high    
Version: 2.1   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2002-06-20 07:39:46 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On: 66521    
Bug Blocks: 66527    
Attachments:
Description Flags
Patch that solves this problem none

Description Martin Wilck 2002-06-19 09:10:49 UTC
Description of Problem:

A bug in inlude/asm-i386/io.h leads to wrong page to physical address
translation for DMA memory above 4GB. If high buffers are used for DMA, 
this may lead to DMA transfers to wrong memry regions, which (depending on
the false address) may lead to PCI bus aborts, data corruption, or 
even destruction of elementary kernel code or data (if DMA is carried out
into kernel core memory).

Version-Release number of selected component (if applicable):
2.4.9-e.3

How Reproducible:
Run IO stress test on e.g. a PCI SCSI controller capable of doing 
high-memory DMA (e.g. aic7xxx).

Steps to Reproduce:
1. Start stress test
2. wait
3. 

Actual Results:
Once a DMA buffer above 4GB is allocated (e.g. 0x101010000), the address
translation for the scatter-gather list discards the high bits, leading to
0x001010000. Depending on the address generated and the direction of the IO,
all sorts of errors may result, leaving the system in an undeterimined state.

Expected Results:
IO completes successfully.

Additional Information:

I reported this for RedHat 7.2 in the descussion of bug 66143
The problem is fixed in the 2.4.18 kernels of RedHat 7.3.

I will attach a patch that solves the problem.

Comment 1 Martin Wilck 2002-06-19 09:14:22 UTC
Created attachment 61544 [details]
Patch that solves this problem

Comment 2 Martin Wilck 2002-06-20 07:27:36 UTC
I am interesting what bug 66521 is but I have no permissions to see it.
Could you allow me in?


Comment 3 Larry Woodman 2002-08-05 16:27:01 UTC
Fixed in AS2.1 errata kernel-2.4.9-e.8, released on 7/29.

Larry Woodman

Comment 4 Annie 2003-05-08 15:55:52 UTC
We are seeing memory corruption when using > 4GB memory on AS 2.4.9-e12.  Any 
chance this bug has been re-introduced?  
Annie McQuilken, Experience, Inc.

Comment 5 Martin Wilck 2003-05-09 06:44:14 UTC
Certainly not this one.