Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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 activityDownload SCCTChinese

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:

TypeParameterName
struct lockdep_map *lock
unsigned longip
4217  curr = current process
4218  merged = 1
4222  If Value for the false possibility is greater at compile time(!We want to turn all lock-debugging facilities on/off at once,* via a global flag. The reason is that once a single bug has been* detected and reported, there might be cascade of followup bugs* that would just muddy the log. So we report the first one and) Then Return 0
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)
4248  WARN(pin_count, "releasing a pinned lock\n")
4250  If references Then
4251  references--
4252  If references Then
4258  Return 1
4268  lockdep_depth = i
4269  curr_chain_key = prev_chain_key
4275  If i == depth - 1 Then Return 1
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
Caller
NameDescribe
lock_release