]> 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)
committerSasha Levin <sashal@kernel.org>
Wed, 4 Mar 2026 12:20:35 +0000 (07:20 -0500)
[ Upstream commit 5145b277309f3818e2db507f525d19ac3b910922 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/vhost/vdpa.c

index 05a481e4c385a0cf9aa505ad90ab3858c784803b..b0179e8567aba60255743fbe4e41fcbe4d183180 100644 (file)
@@ -1527,6 +1527,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;