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 |