Re: 2.6.30-rc1: ioatdma: DMA-API: device driver frees DMA memorywith wrong function

From: FUJITA Tomonori
Date: Thu Apr 16 2009 - 22:38:34 EST


On Wed, 15 Apr 2009 10:27:48 -0700
Dan Williams <dan.j.williams@xxxxxxxxx> wrote:

> On Wed, Apr 15, 2009 at 5:39 AM, Alexander Beregalov
> <a.beregalov@xxxxxxxxx> wrote:
> > 2009/4/9 Alexander Beregalov <a.beregalov@xxxxxxxxx>:
> >> ioatdma 0000:00:08.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
> >> ioatdma 0000:00:08.0: setting latency timer to 64
> >> ioatdma 0000:00:08.0: Intel(R) I/OAT DMA Engine found, 4 channels,
> >> device version 0x12, driver version 3.64
> >>  alloc irq_desc for 33 on cpu 0 node 0
> >>  alloc kstat_irqs on cpu 0 node 0
> >> ioatdma 0000:00:08.0: irq 33 for MSI/MSI-X
> >> ------------[ cut here ]------------
> >> WARNING: at lib/dma-debug.c:565 check_unmap+0x2f6/0x6a0()
> >> Hardware name: PowerEdge 1950
> >> ioatdma 0000:00:08.0: DMA-API: device driver frees DMA memory with
> >> wrong function [device address=0x000000007f76f800] [size=2000 bytes]
> >> [map
> >> ped as single] [unmapped as page]
> >
> > The problem still persists.
>
> Thanks for the report Alexander. Maciej and I are looking into a fix.

Looks like the driver uses pci_unmap_page() to unmap the region
previously mapped by dma_map_single(), right?

It's not the proper usage of DMA API but it doesn't cause any
problems. This is not a urgent issue though it's better to fix it.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/