On 11/21/2016 10:32 AM, Joerg Roedel wrote:
> On Fri, Nov 18, 2016 at 09:04:05AM -0500, Mark Hounschell wrote:
>> OK. It's attached.
> 
>> [   45.033715] WARNING: CPU: 0 PID: 0 at lib/dma-debug.c:1158 
>> check_unmap+0x4ef/0x990
>> [   45.037651] 3c59x 0000:04:04.0: DMA-API: device driver failed to check 
>> map error[device address=0x00000000ffedf840] [size=1536 bytes] [mapped as 
>> single]
> 
> Okay, there is a dma-debug warning from the 3c59x driver. Can you please
> blacklist this driver (or compile it out) and re-try? The dma-debug code
> will only show the first warning and stop then. So any possible warnings
> from your out-of-tree driver will not be shown as long as the 3c59x
> driver is loaded.
> 
> Alternativly you can write 1 to dma-api/all_errors in debug-fs so that
> it will show all errors. But I suggest to unload the 3com driver first
> and then load your driver.
> 

OK, I did get this message before the reported BUG message.

gpiohsd gpiohsd: DMA-API: device driver tries to free DMA memory it has not 
allocated [device address=0xffffffffffee8000] [size=8192 bytes]

But I've verified that the dma_addr_t that I get for the alloc, and also use 
for the free is 0x00000000ffee8000 in this case? Is device 
"address=0xffffffffffee8000" in that message a bug in the message or do we have 
a sign extended address problem? It seems strange to me, I've never seen a 
dma_addr_t given, when using the iommu, that high. In the past I've seen them 
as usually 0x00xxxxxx?

I have also verified that simply changing from pci_alloc/free_consistent to the 
newer DMA API fixes my issue and I get no such messages.

Mark

Reply via email to