|
@@ -1504,7 +1504,7 @@ static void __vunmap(const void *addr, int deallocate_pages)
|
|
addr))
|
|
addr))
|
|
return;
|
|
return;
|
|
|
|
|
|
- area = remove_vm_area(addr);
|
|
|
|
|
|
+ area = find_vmap_area((unsigned long)addr)->vm;
|
|
if (unlikely(!area)) {
|
|
if (unlikely(!area)) {
|
|
WARN(1, KERN_ERR "Trying to vfree() nonexistent vm area (%p)\n",
|
|
WARN(1, KERN_ERR "Trying to vfree() nonexistent vm area (%p)\n",
|
|
addr);
|
|
addr);
|
|
@@ -1514,6 +1514,7 @@ static void __vunmap(const void *addr, int deallocate_pages)
|
|
debug_check_no_locks_freed(addr, get_vm_area_size(area));
|
|
debug_check_no_locks_freed(addr, get_vm_area_size(area));
|
|
debug_check_no_obj_freed(addr, get_vm_area_size(area));
|
|
debug_check_no_obj_freed(addr, get_vm_area_size(area));
|
|
|
|
|
|
|
|
+ remove_vm_area(addr);
|
|
if (deallocate_pages) {
|
|
if (deallocate_pages) {
|
|
int i;
|
|
int i;
|
|
|
|
|