Fix a reference count leak in the LinuxKPI due to calling VM open when
it shouldn't be called. Background: The Linux VM open operation is called when a new VMA is created on top of the current VMA. This is done through either mremap flow or split_vma, usually due to mlock, madvise, munmap and so on. This is currently not supported by the LinuxKPI. MFC after: 1 week Sponsored by: Mellanox Technologies
This commit is contained in:
parent
f87686da6d
commit
42ce45834f
@ -547,20 +547,9 @@ static int
|
||||
linux_cdev_pager_ctor(void *handle, vm_ooffset_t size, vm_prot_t prot,
|
||||
vm_ooffset_t foff, struct ucred *cred, u_short *color)
|
||||
{
|
||||
const struct vm_operations_struct *vm_ops;
|
||||
struct vm_area_struct *vmap;
|
||||
|
||||
vmap = linux_cdev_handle_find(handle);
|
||||
MPASS(vmap != NULL);
|
||||
|
||||
MPASS(linux_cdev_handle_find(handle) != NULL);
|
||||
*color = 0;
|
||||
|
||||
down_write(&vmap->vm_mm->mmap_sem);
|
||||
vm_ops = vmap->vm_ops;
|
||||
if (likely(vm_ops != NULL))
|
||||
vm_ops->open(vmap);
|
||||
up_write(&vmap->vm_mm->mmap_sem);
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user