Loading msm/msm_gem.c +8 −0 Original line number Diff line number Diff line Loading @@ -431,12 +431,14 @@ static int msm_gem_get_iova_locked(struct drm_gem_object *obj, struct device *dev; struct dma_buf *dmabuf; bool reattach = false; unsigned long dma_map_attrs; dev = msm_gem_get_aspace_device(aspace); if ((dev && obj->import_attach) && ((dev != obj->import_attach->dev) || msm_obj->obj_dirty)) { dmabuf = obj->import_attach->dmabuf; dma_map_attrs = obj->import_attach->dma_map_attrs; DRM_DEBUG("detach nsec-dev:%pK attach sec-dev:%pK\n", obj->import_attach->dev, dev); Loading @@ -455,6 +457,12 @@ static int msm_gem_get_iova_locked(struct drm_gem_object *obj, ret = PTR_ERR(obj->import_attach); return ret; } /* * obj->import_attach is created as part of dma_buf_attach. * Re-apply the dma_map_attr in this case to be in sync * with iommu_map attrs during map_attachment callback. */ obj->import_attach->dma_map_attrs |= dma_map_attrs; msm_obj->obj_dirty = false; reattach = true; } Loading Loading
msm/msm_gem.c +8 −0 Original line number Diff line number Diff line Loading @@ -431,12 +431,14 @@ static int msm_gem_get_iova_locked(struct drm_gem_object *obj, struct device *dev; struct dma_buf *dmabuf; bool reattach = false; unsigned long dma_map_attrs; dev = msm_gem_get_aspace_device(aspace); if ((dev && obj->import_attach) && ((dev != obj->import_attach->dev) || msm_obj->obj_dirty)) { dmabuf = obj->import_attach->dmabuf; dma_map_attrs = obj->import_attach->dma_map_attrs; DRM_DEBUG("detach nsec-dev:%pK attach sec-dev:%pK\n", obj->import_attach->dev, dev); Loading @@ -455,6 +457,12 @@ static int msm_gem_get_iova_locked(struct drm_gem_object *obj, ret = PTR_ERR(obj->import_attach); return ret; } /* * obj->import_attach is created as part of dma_buf_attach. * Re-apply the dma_map_attr in this case to be in sync * with iommu_map attrs during map_attachment callback. */ obj->import_attach->dma_map_attrs |= dma_map_attrs; msm_obj->obj_dirty = false; reattach = true; } Loading