Skip to content

Fix imported dma-buf mmap EINVAL error in qemu virtio path#1352

Open
dkotipal-xilinx wants to merge 1 commit into
amd:mainfrom
dkotipal-xilinx:mmap_virtio
Open

Fix imported dma-buf mmap EINVAL error in qemu virtio path#1352
dkotipal-xilinx wants to merge 1 commit into
amd:mainfrom
dkotipal-xilinx:mmap_virtio

Conversation

@dkotipal-xilinx
Copy link
Copy Markdown

Fixes mmap failure for imported BOs seen in qemu virtio (Failed to mmap dma buf -22).

Root cause: imported dma-buf mmap was using DRM’s fake vm_pgoff instead of a buffer-relative offset.

Fix: set vma->vm_pgoff = 0 before dma_buf_mmap() in the imported mmap path.

Scope: imported dma-buf mapping only; non-imported shmem path is unchanged.

Result: imported mmap succeeds, no -EINVAL in this flow.

@maxzhen maxzhen requested review from houlz0507 and wendyliang25 May 21, 2026 16:02

vma->vm_private_data = NULL;
vma->vm_ops = NULL;
vma->vm_pgoff = 0;
Copy link
Copy Markdown
Contributor

@wendyliang25 wendyliang25 May 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

when user calls mmap() it will provide the vm_pgoff.
Could you provide details on "imported dma-buf mmap was using DRM’s fake vm_pgoff instead of a buffer-relative offset" ?
drm used the offset passed from userspace to look up the gem object, and then calls the gem object mmap() function.
ret = dma_buf_mmap(abo->dma_buf, vma, 0); does the mmap() from offset 0.

thanks

@wendyliang25
Copy link
Copy Markdown
Contributor

Hi @dkotipal-xilinx , recently, there is a change in xdna-driver and vxdna to disable mmap() for user pointer backed bo, could you try with latest kernel module in drivers/accel and latest vxdna? thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants