Re: [PATCH 02/11] sky2: fix DMA sync_single length error

David Miller
2010-01-20T22:52:07Z

From: Jarek Poplawski <jarkao2@gmail.com>
Date: Wed, 20 Jan 2010 22:32:59 +0100

> On Wed, Jan 20, 2010 at 12:45:01PM -0800, Stephen Hemminger wrote:
>> From: Jarek Poplawski <jarkao2@gmail.com>
>>
>> Using pci_unmap_len(), with the same length as pci_map_single(), with
>> pci_dma_sync_single_for_cpu()/_device() fixes this warning (2.6.32.4):
>>
>> > Jan 19 10:43:50 mail kernel: WARNING: at lib/dma-debug.c:902
>> > check_sync+0xc1/0x43f()
>> > Jan 19 10:43:50 mail kernel: Hardware name: System Product Name
>> > Jan 19 10:43:50 mail kernel: sky2 0000:04:00.0: DMA-API: device driver
>> > tries to sync DMA memory it has not allocated [device
>> > address=0x0000000320a0b022] [size=60 bytes]
>>
>> Reported-by: Michael Breuer <mbreuer@majjas.com>
>> Tested-by: Michael Breuer <mbreuer@majjas.com>
>> Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
>> Acked-by: Stephen Hemminger <shemminger@vyatta.com>
>
> Thanks for acking and completing this, Stephen!

It's not a bug, lib/dma-debug.c and the DMA API documentation
are both buggy.

I'm not applying any of this, the fix belongs in the infrastructure
debugging and documentation not in the drivers, they are doing the
correct and only reasonable thing.