> +/* > + * Adds the region [paddr, paddr+size] to the DMA allow list. > + * > + * @sart: SART reference > + * @paddr: Start address of the region to be used for DMA > + * @size: Size of the region to be used for DMA. > + */ > +int apple_sart_add_allowed_region(struct apple_sart *sart, phys_addr_t paddr, > + size_t size); > + > +/* > + * Removes the region [paddr, paddr+size] from the DMA allow list. > + * > + * Note that exact same paddr and size used for apple_sart_add_allowed_region > + * have to be passed. > + * > + * @sart: SART reference > + * @paddr: Start address of the region no longer used for DMA > + * @size: Size of the region no longer used for DMA. > + */ > +int apple_sart_remove_allowed_region(struct apple_sart *sart, phys_addr_t paddr, > + size_t size); Might it be simpler for add_allowed_region to return a handle that remove_allowed_region takes instead of paddr+size? Then remove_allowed_region doesn't have to walk anything, and the requirement to use the same paddr/size is implicit.