kernel: resolving a handle now increments the refcount of the corresponding object
This commit is contained in:
@@ -61,7 +61,6 @@ kern_status_t sys_vm_region_create(
|
||||
return status;
|
||||
}
|
||||
|
||||
object_ref(obj);
|
||||
task_unlock_irqrestore(self, flags);
|
||||
vm_region_lock_irqsave(parent_region, &flags);
|
||||
|
||||
@@ -116,7 +115,6 @@ kern_status_t sys_vm_region_kill(kern_handle_t region_handle)
|
||||
return KERN_INVALID_ARGUMENT;
|
||||
}
|
||||
|
||||
object_ref(obj);
|
||||
task_unlock_irqrestore(self, flags);
|
||||
|
||||
vm_region_lock_irqsave(region, &flags);
|
||||
@@ -162,7 +160,6 @@ kern_status_t sys_vm_region_read(
|
||||
return KERN_INVALID_ARGUMENT;
|
||||
}
|
||||
|
||||
object_ref(obj);
|
||||
task_unlock_irqrestore(self, flags);
|
||||
|
||||
virt_addr_t src_address = vm_region_get_base_address(region) + offset;
|
||||
@@ -214,7 +211,6 @@ kern_status_t sys_vm_region_write(
|
||||
return KERN_INVALID_ARGUMENT;
|
||||
}
|
||||
|
||||
object_ref(obj);
|
||||
task_unlock_irqrestore(self, flags);
|
||||
|
||||
virt_addr_t dst_address = vm_region_get_base_address(region) + offset;
|
||||
@@ -283,8 +279,6 @@ kern_status_t sys_vm_region_map_absolute(
|
||||
return KERN_INVALID_ARGUMENT;
|
||||
}
|
||||
|
||||
object_ref(vmo_obj);
|
||||
object_ref(region_obj);
|
||||
task_unlock_irqrestore(self, flags);
|
||||
|
||||
off_t region_offset = VM_REGION_ANY_OFFSET;
|
||||
@@ -369,8 +363,6 @@ kern_status_t sys_vm_region_map_relative(
|
||||
return KERN_INVALID_ARGUMENT;
|
||||
}
|
||||
|
||||
object_ref(vmo_obj);
|
||||
object_ref(region_obj);
|
||||
task_unlock_irqrestore(self, flags);
|
||||
|
||||
status = vm_region_map_object(
|
||||
@@ -418,7 +410,6 @@ kern_status_t sys_vm_region_unmap_absolute(
|
||||
return KERN_INVALID_ARGUMENT;
|
||||
}
|
||||
|
||||
object_ref(region_obj);
|
||||
task_unlock_irqrestore(self, flags);
|
||||
|
||||
off_t region_offset = address - vm_region_get_base_address(region);
|
||||
@@ -458,7 +449,6 @@ kern_status_t sys_vm_region_unmap_relative(
|
||||
return KERN_INVALID_ARGUMENT;
|
||||
}
|
||||
|
||||
object_ref(region_obj);
|
||||
task_unlock_irqrestore(self, flags);
|
||||
|
||||
status = vm_region_unmap(region, offset, length);
|
||||
|
||||
Reference in New Issue
Block a user