On Fri, Aug 02, 2024 at 10:38:49AM +0200, Andi Shyti wrote:
> When mapping a framebuffer object, the virtual memory area (VMA)
> offset ('vm_pgoff') should be adjusted by the start of the
> 'vma_node' associated with the object. This ensures that the VMA
> offset is correctly aligned with the corresponding offset within
> the GGTT aperture.
>
> Increment vm_pgoff by the start of the vma_node with the offset=
> provided by the user.
>
> Suggested-by: Chris Wilson <[email protected]>
> Signed-off-by: Andi Shyti <[email protected]>
Reviewed-by: Rodrigo Vivi <[email protected]>
> ---
> drivers/gpu/drm/i915/gem/i915_gem_mman.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c
> b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
> index a2195e28b625..ce10dd259812 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_mman.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
> @@ -1084,6 +1084,8 @@ int i915_gem_fb_mmap(struct drm_i915_gem_object *obj,
> struct vm_area_struct *vma
> mmo = mmap_offset_attach(obj, mmap_type, NULL);
> if (IS_ERR(mmo))
> return PTR_ERR(mmo);
> +
> + vma->vm_pgoff += drm_vma_node_start(&mmo->vma_node);
> }
>
> /*
> --
> 2.45.2
>