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: <1398953290.2313.15.camel@dabdike.int.hansenpartnership.com>
Date:	Thu, 1 May 2014 14:08:12 +0000
From:	James Bottomley <jbottomley@...allels.com>
To:	"bhelgaas@...gle.com" <bhelgaas@...gle.com>
CC:	"rdunlap@...radead.org" <rdunlap@...radead.org>,
	"linux-pci@...r.kernel.org" <linux-pci@...r.kernel.org>,
	"gregkh@...uxfoundation.org" <gregkh@...uxfoundation.org>,
	"linux-doc@...r.kernel.org" <linux-doc@...r.kernel.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] DMA-API: Change dma_declare_coherent_memory() CPU
 address to phys_addr_t

On Wed, 2014-04-30 at 14:33 -0600, Bjorn Helgaas wrote:
> dma_declare_coherent_memory() takes two addresses for a region of memory: a
> "bus_addr" and a "device_addr".  I think the intent is that "bus_addr" is
> the physical address a *CPU* would use to access the region, and
> "device_addr" is the bus address the *device* would use to address the
> region.
> 
> Rename "bus_addr" to "phys_addr" and change its type to phys_addr_t.

Remind me what the difference between phys_addr_t and dma_addr_t are.

I thought phys_addr_t was the maximum address the CPU could reach after
address translation and dma_addr_t was the maximum physical address any
bus attached memory mapped devices could appear at. (of course, mostly
they're the same).

The intent of dma_declare_coherent_memory() is to take a range of memory
provided by some device on the bus and allow the CPU to allocate regions
from it for use as things like descriptors.  The CPU treats it as real
memory, but, in fact, it is a mapped region of an attached device.

If my definition is correct, then bus_addr should be dma_addr_t because
it has to be mapped from a device and dma_addr_t is the correct type for
device addresses.  If I've got the definition wrong, then we should
document it somewhere, because it's probably confusing other people as
well.

James

--
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