On 09/02/18 08:56 AM, Christian König wrote: > Am 09.02.2018 um 14:32 schrieb Tom St Denis: >> On 02/02/18 02:09 PM, Christian König wrote: >>> [SNIP] >>> +       if (p->mapping != adev->mman.bdev.dev_mapping) >>> +           return -EPERM; >> >> This comparison fails for both IOMMU and non-IOMMU devices in my >> carrizo+polaris10 box. >> >> The address being read from is what the VM decodes to (checked with >> strace). > > Have you applied the whole series? That patches before this one are > necessary to initialize p->mapping when there isn't any userspace > mapping for the page. Yes, I have the entire 5 pages applied to a temp branch based on the tip of drm-next $ git log --oneline HEAD~10.. 405bc1dc85db (HEAD -> iomem) wip a06d7a6f29e4 drm/amdgpu: replace iova debugfs file with iomem d324c21f2c5e drm/ttm: set page mapping during allocation 9f440ee91c58 drm/radeon: remove extra TT unpopulated check f55d505b0387 drm/amdgpu: remove extra TT unpopulated check 37d705119ea8 drm/ttm: add ttm_tt_populate wrapper 53af6035d04b (origin/amd-staging-drm-next, amd-staging-drm-next) drm/radeon: only enable swiotlb path when need v2 (the wip is me adding printks to see which error path is taken). I don't see an init call for adev->mman.bdev.man[TTM_PL_SYSTEM] anywhere. Maybe that's related? Tom