Thread (6 messages) 6 messages, 2 authors, 2011-03-25

Re: [BUG] pgprot_noncached() is -NOT- safe for mapping vmalloc buffers into userspace

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2011-03-25 09:15:54
Also in: linux-arch, lkml

On Fri, 2011-03-25 at 09:01 +0100, Takashi Iwai wrote:
quoted
In fact, cache coherent architectures often don't support mapping memory
uncached -at-all- so something like snd_pcm_lib_mmap_noncached()
shouldn't exist, or at least be under arch control. There's no case
where it's "always safe". There will almost always be a cache alias in
the linear mapping unless special arch specific sauce has been applied.
I see.  I'll take your removal patch.
It should be applied to stable kernel, too, right?
I suppose so :-)
quoted
Now, there's another problem on top of that, which is that
snd_pcm_default_mmap() will not work properly the "other way around" on
powerpc, where the mapping -needs- to be uncached bcs you are running on
a non cache coherent embedded CPU and trying to mmap DMA memory, but
that's something that needs fixing inside powerpc by properly defining
dma_mmap_coherent() & ARCH_HAS_DMA_MMAP_COHERENT (I thought we had added
it a while back but it's not upstream, patch must have got lost).
Mea culpa.  I moved to a different team and have had little time for
the upstream development since then...
That's ok, I did a new one, which you have noticed already anyways :-)
quoted
We
must also make sure we don't go down that path for vmalloc memory
though.
Yes.
I haven't actually checked, but I assume that the test

substream->dma_buffer.dev.type == SNDRV_DMA_TYPE_DEV

In snd_pcm_default_mmap() takes care of that, please correct me if
I'm wrong in which case we'll need something else there.
Your patch looks good.  Thanks for taking care of this! 
Are you taking care of sending it upstream ?

Cheers,
Ben.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help