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]
Date:	Wed, 27 Apr 2011 21:26:03 +0100
From:	Russell King - ARM Linux <linux@....linux.org.uk>
To:	Arnd Bergmann <arnd@...db.de>
Cc:	linux-arm-kernel@...ts.infradead.org,
	linaro-mm-sig@...ts.linaro.org, linux-kernel@...r.kernel.org
Subject: Re: [RFC] ARM DMA mapping TODO, v1

On Wed, Apr 27, 2011 at 10:21:48PM +0200, Arnd Bergmann wrote:
> On Wednesday 27 April 2011 22:16:05 Russell King - ARM Linux wrote:
> > > As for making the default being to do cache handling, I'm not completely
> > > sure how that would work on architectures where most devices are coherent.
> > > If I understood the DRM people correctly, some x86 machine have noncoherent
> > > DMA in their GPUs while everything else is coherent.
> > 
> > Well, it sounds like struct device needs a flag to indicate whether it is
> > coherent or not - but exactly how this gets set seems to be architecture
> > dependent.  I don't see bus or driver code being able to make the necessary
> > decisions - eg, tulip driver on x86 would be coherent, but tulip driver on
> > ARM would be non-coherent.
> > 
> > Nevertheless, doing it on a per-device basis is definitely the right
> > answer.
> 
> The flag would not get set by the driver that uses the device but
> the driver that found it, e.g. the PCI bus or the platform code,
> which should know about these things and also install the appropriate
> iommu or mapping operations.

As I said above, I don't think bus code can do it.  Take my example
above of a tulip pci device on x86 and a tulip pci device on ARM.  Both
use the same PCI code.

Maybe something in asm/pci.h - but that invites having lots of bus
specific header files in asm/.

A better solution imho would be to have an architecture callback for
struct device which gets registered, which can inspect the type of
the device, and set the flag depending on where it appears in the
tree.
--
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