On Thu, 25 Feb 2021 at 09:15, Eric Auger <eric.au...@redhat.com> wrote: > > Currently get_naturally_aligned_size() is used by the intel iommu > to compute the maximum invalidation range based on @size which is > a power of 2 while being aligned with the @start address and less > than the maximum range defined by @gaw. > > This helper is also useful for other iommu devices (virtio-iommu, > SMMUv3) to make sure IOMMU UNMAP notifiers only are called with > power of 2 range sizes. > > Let's move this latter into dma-helpers.c and rename it into > dma_aligned_pow2_mask(). Also rewrite the helper so that it > accomodates UINT64_MAX values for the size mask and max mask. > It now returns a mask instead of a size. Change the caller. > > Signed-off-by: Eric Auger <eric.au...@redhat.com> > diff --git a/include/sysemu/dma.h b/include/sysemu/dma.h > index a052f7bca3..2acb303be2 100644 > --- a/include/sysemu/dma.h > +++ b/include/sysemu/dma.h > @@ -296,4 +296,7 @@ uint64_t dma_buf_write(uint8_t *ptr, int32_t len, > QEMUSGList *sg); > void dma_acct_start(BlockBackend *blk, BlockAcctCookie *cookie, > QEMUSGList *sg, enum BlockAcctType type); > > +uint64_t dma_aligned_pow2_mask(uint64_t start, uint64_t end, > + int max_addr_bits);
All new globally-visible functions in header files should have a doc-comment describing what they do, please. thanks -- PMM