On Fri, Jan 03, 2014 at 11:22:17AM +0100, Thomas Hellstrom wrote: > This is illegal for at least two reasons: > > 1) While it may work on some platforms / iommus, obtaining page pointers from > mapped sg-lists is illegal, since the DMA API allows page pointer information > to be destroyed in the sg mapping process. > > 2) TTM has no way of determining the linear kernel map caching state of the > underlying pages. PTEs with conflicting caching state pointing to the same > pfn is not allowed. > > TTM operations touching pages of imported sg-tables should be redirected through > the proper dma-buf operations. > > Signed-off-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx> Shouldn't we do something similar in the kmap helpers ttm_bo_util.c like ttm_bo_kmap and ttm_bo_move_memcpy? Maybe just a BUG to catch driver bugs. Otherwise this sounds like the right thing to do, so Acked. -Daniel > --- > drivers/gpu/drm/ttm/ttm_bo_vm.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/drivers/gpu/drm/ttm/ttm_bo_vm.c b/drivers/gpu/drm/ttm/ttm_bo_vm.c > index cdda784..12d7f53 100644 > --- a/drivers/gpu/drm/ttm/ttm_bo_vm.c > +++ b/drivers/gpu/drm/ttm/ttm_bo_vm.c > @@ -132,6 +132,15 @@ static int ttm_bo_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf) > return VM_FAULT_NOPAGE; > } > > + /* > + * Refuse to fault imported pages. This should be handled > + * (if at all) by redirecting mmap to the exporter. > + */ > + if (bo->ttm && (bo->ttm->page_flags & TTM_PAGE_FLAG_SG)) { > + retval = VM_FAULT_SIGBUS; > + goto out_unlock; > + } > + > if (bdev->driver->fault_reserve_notify) { > ret = bdev->driver->fault_reserve_notify(bo); > switch (ret) { > -- > 1.7.10.4 > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel