summaryrefslogtreecommitdiffstats
path: root/include/sysemu/dma.h
diff options
context:
space:
mode:
authorPaolo Bonzini2013-04-11 15:40:59 +0200
committerPaolo Bonzini2013-05-29 16:27:16 +0200
commit51644ab70ba125cb9545702d64890743d75b444b (patch)
tree420c1b45d6556c81b04d532ca4a05202c069e341 /include/sysemu/dma.h
parentexec: implement .valid.accepts for subpages (diff)
downloadqemu-51644ab70ba125cb9545702d64890743d75b444b.tar.gz
qemu-51644ab70ba125cb9545702d64890743d75b444b.tar.xz
qemu-51644ab70ba125cb9545702d64890743d75b444b.zip
memory: add address_space_access_valid
The old-style IOMMU lets you check whether an access is valid in a given DMAContext. There is no equivalent for AddressSpace in the memory API, implement it with a lookup of the dispatch tree. Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'include/sysemu/dma.h')
-rw-r--r--include/sysemu/dma.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/sysemu/dma.h b/include/sysemu/dma.h
index a52c93a553..02e0dcdfeb 100644
--- a/include/sysemu/dma.h
+++ b/include/sysemu/dma.h
@@ -113,7 +113,8 @@ static inline bool dma_memory_valid(DMAContext *dma,
DMADirection dir)
{
if (!dma_has_iommu(dma)) {
- return true;
+ return address_space_access_valid(dma->as, addr, len,
+ dir == DMA_DIRECTION_FROM_DEVICE);
} else {
return iommu_dma_memory_valid(dma, addr, len, dir);
}