Re: Changing vma->vm_file in dma_buf_mmap()

From: Christian König
Date: Mon Sep 14 2020 - 14:27:27 EST


Am 14.09.20 um 16:06 schrieb Jason Gunthorpe:
On Mon, Sep 14, 2020 at 03:30:47PM +0200, Christian König wrote:
Am 14.09.20 um 15:29 schrieb Christian König:
Hi Andrew,

I'm the new DMA-buf maintainer and Daniel and others came up with
patches extending the use of the dma_buf_mmap() function.

Now this function is doing something a bit odd by changing the
vma->vm_file while installing a VMA in the mmap() system call
It doesn't look obviously safe as mmap_region() has an interesting mix
of file and vma->file

Eg it calls mapping_unmap_writable() using both routes

Thanks for the hint, going to take a look at that code tomorrow.

What about security? Is it OK that some other random file, maybe in
another process, is being linked to this mmap?

Good question, I have no idea. That's why I send out this mail.

The background here is that DMA-buf allows device drivers to
export buffer which are then imported into another device
driver. The mmap() handler of the importing device driver then
find that the pgoff belongs to the exporting device and so
redirects the mmap() call there.
So the pgoff is some virtualized thing?

Yes, absolutely.

Christian.


Jason