函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\mmap.c Create Date:2022-07-27 16:19:04
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:The mmap_sem cannot be released by the caller until* mm_drop_all_locks() returns.

函数原型:void mm_drop_all_locks(struct mm_struct *mm)

返回类型:void

参数:

类型参数名称
struct mm_struct *mm
3611  BUG_ON(rylock for reading -- returns 1 if successful, 0 if contention)
3612  BUG_ON(!是互斥锁)
3614 vma循环
3615  如果Serialized by page_table_lock list_for_each_entry - iterate over list of given type*@pos: the type * to use as a loop cursor.*@head: the head for your list.*@member: the name of the list_head within the struct.(avc, & Serialized by mmap_sem &* page_table_lock , same_vma)
3617  vm_unlock_anon_vma(anon_vma)
3618  如果File we map to (can be NULL). f_mappingvm_unlock_mapping(f_mapping)
3622  mutex_unlock - release the mutex*@lock: the mutex to be released* Unlock a mutex that has been locked by this task previously.* This function must not be used in interrupt context. Unlocking* of a not locked mutex is not allowed.
调用者
名称描述
mm_take_all_locksThis operation locks against the VM for all pte/vma/mm related* operations that could ever happen on a certain mm. This includes* vmtruncate, try_to_unmap, and all page faults.* The caller must take the mmap_sem in write mode before calling
__mmu_notifier_registerSame as mmu_notifier_register but here the caller must hold the mmap_sem in* write mode. A NULL mn signals the notifier is being registered for itree* mode.