lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090601101405.GA19806@flint.arm.linux.org.uk>
Date:	Mon, 1 Jun 2009 11:14:05 +0100
From:	Russell King <rmk+lkml@....linux.org.uk>
To:	FUJITA Tomonori <fujita.tomonori@....ntt.co.jp>
Cc:	arnd@...db.de, linux-kernel@...r.kernel.org,
	linux-arch@...r.kernel.org
Subject: Re: [PATCH] asm-generic: add dma-mapping-linear.h

On Mon, Jun 01, 2009 at 06:32:44PM +0900, FUJITA Tomonori wrote:
> Can ARM replace the dmabounce with swiotlb?

We could, if there was some effort with swiotlb to make it safe on
non-cache coherent architectures.  As it stands, it sources its
memory from __get_free_pages() which is non-coherent on ARM.

There's nothing wrong with that per-se, provided we use the streaming
DMA mapping API on those pages and obey the buffer ownership rules.


Also, it needs cache flushing - one thing davem said to me a while
back is that the effects of DMA should be the same as far as the
cache is concerned no matter how it is performed.

In other words, from the external perspective:

	dma_map_single()
	hardware DMA happens
	dma_unmap_single()

should result in exactly the same situation on an architecture as
far as the buffer is concerned no matter what the underlying
implementation is.

So, on a non-DMA coherent cache architecture, when DMA is normally
performed the data ends up in RAM with the cache flushed for that
region.  If, instead dma_map_single uses a bounce buffer to do that
DMA, then the same needs to be true of the original buffer - the
data needs to be in RAM with the cache flushed.

-- 
Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ