Function report | 
Source Code:kernel\locking\lockdep.c | 
Create Date:2022-07-28 09:50:07 | 
| Last Modify:2020-03-17 14:16:01 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:Remove the lock from the list of currently held locks - this gets* called on mutex_unlock()/spin_unlock*() (or on a failed* mutex_lock_interruptible()).
Proto:static int __lock_release(struct lockdep_map *lock, unsigned long ip)
Type:int
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct lockdep_map * | lock | |
| unsigned long | ip | 
| 4217 | curr = current process | 
| 4218 | merged = 1 | 
| 4225 | depth = lockdep_depth | 
| 4230 | If depth <= 0 Then | 
| 4231 | print_unlock_imbalance_bug(curr, lock, ip) | 
| 4232 | Return 0 | 
| 4239 | hlock = @depth must not be zero | 
| 4240 | If Not hlock Then | 
| 4241 | print_unlock_imbalance_bug(curr, lock, ip) | 
| 4242 | Return 0 | 
| 4245 | If instance == lock Then lock_release_holdtime(hlock) | 
| 4250 | If references Then | 
| 4268 | lockdep_depth = i | 
| 4269 | curr_chain_key = prev_chain_key | 
| 4278 | If reacquire_held_locks(curr, depth, i + 1, & merged) Then Return 0 | 
| 4286 | DEBUG_LOCKS_WARN_ON(lockdep_depth != depth - merged) | 
| 4293 | Return 0 | 
| Name | Describe | 
|---|---|
| lock_release | 
| Source code conversion tool public plug-in interface  | X | 
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion  |