Message ID | 20200904154439.643272-9-philmd@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | dma: Let the DMA API take MemTxAttrs argument and propagate MemTxResult | expand |
On 9/4/20 8:44 AM, Philippe Mathieu-Daudé wrote: > Let devices specify transaction attributes when calling > dma_memory_valid(). > > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > include/hw/ppc/spapr_vio.h | 2 +- > include/sysemu/dma.h | 4 ++-- > 2 files changed, 3 insertions(+), 3 deletions(-) Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
Philippe Mathieu-Daudé <philmd@redhat.com> 于2020年9月4日周五 下午11:48写道: > > Let devices specify transaction attributes when calling > dma_memory_valid(). > > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Li Qiang <liq3ea@gmail.com> > --- > include/hw/ppc/spapr_vio.h | 2 +- > include/sysemu/dma.h | 4 ++-- > 2 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/include/hw/ppc/spapr_vio.h b/include/hw/ppc/spapr_vio.h > index bed7df60e35..f134f6cf574 100644 > --- a/include/hw/ppc/spapr_vio.h > +++ b/include/hw/ppc/spapr_vio.h > @@ -96,7 +96,7 @@ static inline void spapr_vio_irq_pulse(SpaprVioDevice *dev) > static inline bool spapr_vio_dma_valid(SpaprVioDevice *dev, uint64_t taddr, > uint32_t size, DMADirection dir) > { > - return dma_memory_valid(&dev->as, taddr, size, dir); > + return dma_memory_valid(&dev->as, taddr, size, dir, MEMTXATTRS_UNSPECIFIED); > } > > static inline int spapr_vio_dma_read(SpaprVioDevice *dev, uint64_t taddr, > diff --git a/include/sysemu/dma.h b/include/sysemu/dma.h > index f4ade067a46..b322aa5947b 100644 > --- a/include/sysemu/dma.h > +++ b/include/sysemu/dma.h > @@ -73,11 +73,11 @@ static inline void dma_barrier(AddressSpace *as, DMADirection dir) > * dma_memory_{read,write}() and check for errors */ > static inline bool dma_memory_valid(AddressSpace *as, > dma_addr_t addr, dma_addr_t len, > - DMADirection dir) > + DMADirection dir, MemTxAttrs attrs) > { > return address_space_access_valid(as, addr, len, > dir == DMA_DIRECTION_FROM_DEVICE, > - MEMTXATTRS_UNSPECIFIED); > + attrs); > } > > static inline MemTxResult dma_memory_rw_relaxed(AddressSpace *as, > -- > 2.26.2 > >
diff --git a/include/hw/ppc/spapr_vio.h b/include/hw/ppc/spapr_vio.h index bed7df60e35..f134f6cf574 100644 --- a/include/hw/ppc/spapr_vio.h +++ b/include/hw/ppc/spapr_vio.h @@ -96,7 +96,7 @@ static inline void spapr_vio_irq_pulse(SpaprVioDevice *dev) static inline bool spapr_vio_dma_valid(SpaprVioDevice *dev, uint64_t taddr, uint32_t size, DMADirection dir) { - return dma_memory_valid(&dev->as, taddr, size, dir); + return dma_memory_valid(&dev->as, taddr, size, dir, MEMTXATTRS_UNSPECIFIED); } static inline int spapr_vio_dma_read(SpaprVioDevice *dev, uint64_t taddr, diff --git a/include/sysemu/dma.h b/include/sysemu/dma.h index f4ade067a46..b322aa5947b 100644 --- a/include/sysemu/dma.h +++ b/include/sysemu/dma.h @@ -73,11 +73,11 @@ static inline void dma_barrier(AddressSpace *as, DMADirection dir) * dma_memory_{read,write}() and check for errors */ static inline bool dma_memory_valid(AddressSpace *as, dma_addr_t addr, dma_addr_t len, - DMADirection dir) + DMADirection dir, MemTxAttrs attrs) { return address_space_access_valid(as, addr, len, dir == DMA_DIRECTION_FROM_DEVICE, - MEMTXATTRS_UNSPECIFIED); + attrs); } static inline MemTxResult dma_memory_rw_relaxed(AddressSpace *as,
Let devices specify transaction attributes when calling dma_memory_valid(). Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> --- include/hw/ppc/spapr_vio.h | 2 +- include/sysemu/dma.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-)