Re: swiotlb_alloc_coherent: allocated memory is out of range for device

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: FUJITA Tomonori
Date: Wednesday, October 22, 2008 - 4:29 am

On Wed, 22 Oct 2008 12:53:58 +0200
Takashi Iwai <tiwai@suse.de> wrote:


This happens with 2.6.27, right? GFP_DMA hack was removed post
2.6.27. What kernel version do you hit this problem?

Post 2.6.27, x86's alloc_coherent works a bit differently, but neither
require the caller set to GFP flag. arch/x86/kernel/pci-dma.c does
with 2.6.27 and asm-x86/dma-mapping.h does with post 2.6.27.



If a device has 24bit dma mask, alloc_coherent is supposed to use
GFP_DMA.



28bit DMA mask is supposed to be handled properly. Firstly, we try
with DMA_32BIT_MASK and if an allocated address is not fit for 28bit
mask, we try GFP_DMA again.



Yeah, this was discussed several times. The problem is that many
drivers assume that dma mapping operations, map_single, map_sg, and
map_coherent, always succeed and doesn't even check the errors. So we
have some panic() in IOMMU drivers to prevent really bad events like
data corruption.
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: swiotlb_alloc_coherent: allocated memory is out of ran ..., FUJITA Tomonori, (Wed Oct 22, 4:29 am)