Thread (15 messages) 15 messages, 6 authors, 2007-12-28

Re: [PATCH] sata_nv: fix ADMA ATAPI issues with memory over 4GB (v3)

From: Robert Hancock <hidden>
Date: 2007-12-05 01:10:00
Also in: lkml

Jeff Garzik wrote:
Robert Hancock wrote:
quoted
This fixes some problems with ATAPI devices on nForce4 controllers in 
ADMA mode
on systems with memory located above 4GB. We need to delay setting the 
64-bit
DMA mask until the PRD table and padding buffer are allocated so that 
they don't
get allocated above 4GB and break legacy mode (which is needed for ATAPI
devices).

Signed-off-by: Robert Hancock <redacted>
This is a bit nasty :/

I would consider setting the consistent DMA mask to 32-bit, and setting 
the overall mask to 64-bit.

Seems like that would solve the problem?
The issue with that is that it would also constrain the ADMA CPB/PRD 
table allocation to 32-bit, which I'd rather avoid having to do. There 
are dual-socket Opteron boxes like HP xw9300 that use this controller, 
and limiting the allocation to 32-bit could force a non-optimal node 
allocation for the table memory.

These type of devices really want a version of dma_alloc_coherent that 
allows overriding the DMA mask for specific allocations to make this 
cleaner. I'm sure this isn't the only device that has different DMA mask 
requirements for different consistent memory allocations..

This patch does has the advantage of being confirmed to fix the 
reporter's problem (https://bugzilla.redhat.com/show_bug.cgi?id=351451) 
which there's something to be said for this late in the .24-rc series..
Also, does this need to be rebased on top of what I just pushed upstream?
It don't think so.. this change is independent from the "sata_nv: don't 
use legacy DMA in ADMA mode (v3)" patch you just merged.

-- 
Robert Hancock      Saskatoon, SK, Canada
To email, remove "nospam" from hancockr@nospamshaw.ca
Home Page: http://www.roberthancock.com/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help