svn commit: r319317 - head/sys/compat/linuxkpi/common/src
Hans Petter Selasky
hselasky at FreeBSD.org
Wed May 31 12:08:26 UTC 2017
Author: hselasky
Date: Wed May 31 12:08:25 2017
New Revision: 319317
URL: https://svnweb.freebsd.org/changeset/base/319317
Log:
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
Modified:
head/sys/compat/linuxkpi/common/src/linux_compat.c
Modified: head/sys/compat/linuxkpi/common/src/linux_compat.c
==============================================================================
--- head/sys/compat/linuxkpi/common/src/linux_compat.c Wed May 31 12:02:59 2017 (r319316)
+++ head/sys/compat/linuxkpi/common/src/linux_compat.c Wed May 31 12:08:25 2017 (r319317)
@@ -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);
}
More information about the svn-src-head
mailing list