On 2023/11/6 10:44, Mina Almasry wrote: > + > +void netdev_free_devmem(struct page_pool_iov *ppiov) > +{ > + struct netdev_dmabuf_binding *binding = page_pool_iov_binding(ppiov); > + > + refcount_set(&ppiov->refcount, 1); > + > + if (gen_pool_has_addr(binding->chunk_pool, > + page_pool_iov_dma_addr(ppiov), PAGE_SIZE)) When gen_pool_has_addr() returns false, does it mean something has gone really wrong here? > + gen_pool_free(binding->chunk_pool, > + page_pool_iov_dma_addr(ppiov), PAGE_SIZE); > + > + netdev_devmem_binding_put(binding); > +} > + > void netdev_unbind_dmabuf(struct netdev_dmabuf_binding *binding) > { > struct netdev_rx_queue *rxq; >