]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
vhost: fix caching attributes of MMIO regions by setting them explicitly
authorKommula Shiva Shankar <kshankar@marvell.com>
Fri, 2 Jan 2026 06:57:03 +0000 (12:27 +0530)
committerMichael S. Tsirkin <mst@redhat.com>
Wed, 4 Feb 2026 19:13:44 +0000 (14:13 -0500)
Explicitly set non-cached caching attributes for MMIO regions.
Default write-back mode can cause CPU to cache device memory,
causing invalid reads and unpredictable behavior.

Invalid read and write issues were observed on ARM64 when mapping the
notification area to userspace via mmap.

Signed-off-by: Kommula Shiva Shankar <kshankar@marvell.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Message-Id: <20260102065703.656255-1-kshankar@marvell.com>

drivers/vhost/vdpa.c

index 3f0184d42075cf1d858462c82dc66e077cfcbf32..cdee8f320dca36d2c2a9cd92e50b4b96f8ef6d78 100644 (file)
@@ -1529,6 +1529,7 @@ static int vhost_vdpa_mmap(struct file *file, struct vm_area_struct *vma)
        if (vma->vm_end - vma->vm_start != notify.size)
                return -ENOTSUPP;
 
+       vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
        vm_flags_set(vma, VM_IO | VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP);
        vma->vm_ops = &vhost_vdpa_vm_ops;
        return 0;