On Wed, Jan 13, 2021 at 5:58 PM Christian König <christian.koenig@xxxxxxx> wrote: > > Am 13.01.21 um 09:47 schrieb David Stevens: > > Compound page metadata is necessary for page reference counting to work > > properly on pages besides the head page. Without it, put_page > > corresponding to the last outstanding get_page call on a tail page will > > end up freeing that page, even if the bo still references the page. > > NAK, I should add a comment since I can't count any more how many times > people came up with this. > > Calling put_page() on a TTM allocated page is strictly illegal in the > first place since they are not reference counted. > > Please don't tell me somebody once more tried to mmap() pages from a > DMA-buf created sg_table into a process address space? I ran into this on a system using the currently in development virtio-gpu blob resources [1]. The implementation passes dma buffers allocated by the host gpu to KVM_SET_USER_MEMORY_REGION, so the guest can directly access the buffers without the need for an intermediate copy. [1] https://patchwork.kernel.org/project/dri-devel/cover/20200814024000.2485-1-gurchetansingh@xxxxxxxxxxxx/ > Regards, > Christian. > > > > > Signed-off-by: David Stevens <stevensd@xxxxxxxxxxxx> > > --- > > drivers/gpu/drm/ttm/ttm_pool.c | 1 - > > 1 file changed, 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/ttm/ttm_pool.c b/drivers/gpu/drm/ttm/ttm_pool.c > > index 7b2f60616750..09239b93dc2c 100644 > > --- a/drivers/gpu/drm/ttm/ttm_pool.c > > +++ b/drivers/gpu/drm/ttm/ttm_pool.c > > @@ -83,7 +83,6 @@ static struct page *ttm_pool_alloc_page(struct ttm_pool *pool, gfp_t gfp_flags, > > gfp_flags |= GFP_TRANSHUGE_LIGHT | __GFP_NORETRY | > > __GFP_KSWAPD_RECLAIM; > > gfp_flags &= ~__GFP_MOVABLE; > > - gfp_flags &= ~__GFP_COMP; > > } > > > > if (!pool->use_dma_alloc) { > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel