ttm dma allocator issue ?

Konrad Rzeszutek Wilk konrad.wilk at oracle.com
Mon Dec 12 13:45:06 PST 2011


On Mon, Dec 12, 2011 at 12:37:43PM -0500, Konrad Rzeszutek Wilk wrote:
> > > Any ideas ?
> > 
> > The only way to do that would be to modify the 'struct dma_page' vaddr and dma
> > variables from what they had in __ttm_dma_alloc_page. But I am not seeing any
> > willfull modifications. We do pass in to dma_free_coherent the _same_ values!
> > 
> > 
> > Hm, it might be worth adding in the 'struct dma_page' a 'virt_to_phys' value
> > (which is what the DMA debug API uses to check), and see we get inconsitent
> > values _before_ we call the DMA debug API. This is rather to double check
> > the DMA API debug API. I am going to try something like this (not compile tested at all):
> 
> This one is compile tested :-)
> 
> diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c b/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
> index 6678abc..659b0ee 100644
> --- a/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
> +++ b/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
> @@ -32,7 +32,7 @@
>   * - Tracks whether the page is UC, WB or cached (and reverts to WB
>   *   when freed).
>   */
> -

And I think if you cherry-pick git commit 91ec37cc1015220965e39bf342fb846810d19e79

Author: Thomas Jarosch <thomas.jarosch at intra2net.com>
Date:   Thu Nov 17 20:31:02 2011 +0100

    Fix comparison using wrong pointer variable in dma debug code

which fixes the DMA debug API code, the error you are getting will go away.



More information about the dri-devel mailing list