linux-mips
[Top] [All Lists]

Re: [PATCH v4] MIPS: HIGHMEM DMA on noncoherent MIPS32 processors

To: Kevin Cernekee <cernekee@gmail.com>
Subject: Re: [PATCH v4] MIPS: HIGHMEM DMA on noncoherent MIPS32 processors
From: Ralf Baechle <ralf@linux-mips.org>
Date: Thu, 19 May 2011 12:06:38 +0100
Cc: dediao@cisco.com, ddaney@caviumnetworks.com, dvomlehn@cisco.com, sshtylyov@mvista.com, linux-mips@linux-mips.org, linux-kernel@vger.kernel.org
In-reply-to: <002fbbeb01a5a51fff8015af85d5d101@localhost>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <002fbbeb01a5a51fff8015af85d5d101@localhost>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.5.21 (2010-09-15)
On Wed, Oct 13, 2010 at 04:57:35PM -0700, Kevin Cernekee wrote:

> [v4: Patch applies to linux-queue.git with kmap_atomic patches:
>  https://patchwork.kernel.org/patch/189932/
>  https://patchwork.kernel.org/patch/194552/
>  https://patchwork.kernel.org/patch/189912/ ]
> 
> The MIPS DMA coherency functions do not work properly (i.e. kernel oops)
> when HIGHMEM pages are passed in as arguments.  Use kmap_atomic() to
> temporarily map high pages for cache maintenance operations.
> 
> Tested on a 2.6.36-rc7 1GB HIGHMEM SMP no-alias system.

And I don't think it's going to work on an alias system.  __dma_sync maps
a page but it doesn't know the previous mapping (or could there be any
other mappings at the same time?).  That's going to fail with aliases.
Not that this was previously working so I don't blame you for it.

Who is the author of this patch, you or Dezhong Diao?

  Ralf

<Prev in Thread] Current Thread [Next in Thread>