diff options
author | Alexander Duyck <alexander.h.duyck@intel.com> | 2012-10-15 10:19:39 -0700 |
---|---|---|
committer | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2012-10-30 09:32:06 -0400 |
commit | e05ed4d1fad9e730995abb08cb9bc3bffac5018b (patch) | |
tree | 72a2662e8b85308bad057c904a5231d890d7fbba /init | |
parent | ee3f6ba896c7e62004b677b0018a0b29b9b26472 (diff) | |
download | op-kernel-dev-e05ed4d1fad9e730995abb08cb9bc3bffac5018b.zip op-kernel-dev-e05ed4d1fad9e730995abb08cb9bc3bffac5018b.tar.gz |
swiotlb: Return physical addresses when calling swiotlb_tbl_map_single
This change makes it so that swiotlb_tbl_map_single will return a physical
address instead of a virtual address when called. The advantage to this once
again is that we are avoiding a number of virt_to_phys and phys_to_virt
translations by working with everything as a physical address.
One change I had to make in order to support using physical addresses is that
I could no longer trust 0 to be a invalid physical address on all platforms.
So instead I made it so that ~0 is returned on error. This should never be a
valid return value as it implies that only one byte would be available for
use.
In order to clarify things since we now have 2 physical addresses in use
inside of swiotlb_tbl_map_single I am renaming phys to orig_addr, and
dma_addr to tlb_addr. This way is should be clear that orig_addr is
contained within io_orig_addr and tlb_addr is an address within the
io_tlb_addr buffer.
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Diffstat (limited to 'init')
0 files changed, 0 insertions, 0 deletions