Skip to content

Commit 8f31609

Browse files
committed
Add special rtnl_lock from Linux
1 parent d754d76 commit 8f31609

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/analyses/mutexEventsAnalysis.ml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ open GobConfig
1111

1212
let big_kernel_lock = LockDomain.Addr.from_var (Goblintutil.create_var (makeGlobalVar "[big kernel lock]" intType))
1313
let console_sem = LockDomain.Addr.from_var (Goblintutil.create_var (makeGlobalVar "[console semaphore]" intType))
14+
let rtnl_lock = LockDomain.Addr.from_var (Goblintutil.create_var (makeGlobalVar "[rtnl_lock]" intType))
1415
let verifier_atomic = LockDomain.Addr.from_var (Goblintutil.create_var (makeGlobalVar "[__VERIFIER_atomic]" intType))
1516

1617
module Spec: MCPSpec =
@@ -118,10 +119,14 @@ struct
118119
(*print_endline @@ "Mutex `Unlock "^f.vname;*)
119120
unlock remove_rw
120121
| _, "spinlock_check" -> ()
121-
| _, "acquire_console_sem" when get_bool "kernel" ->
122+
| _, "acquire_console_sem"-> (* TODO: removed for Klever: when get_bool "kernel" *)
122123
ctx.emit (Events.Lock (console_sem, true))
123-
| _, "release_console_sem" when get_bool "kernel" ->
124+
| _, "release_console_sem" -> (* TODO: removed for Klever: when get_bool "kernel" *)
124125
ctx.emit (Events.Unlock console_sem)
126+
| _, "rtnl_lock"->
127+
ctx.emit (Events.Lock (rtnl_lock, true))
128+
| _, ("rtnl_unlock" | "__rtnl_unlock") ->
129+
ctx.emit (Events.Unlock rtnl_lock)
125130
| _, "__builtin_prefetch" | _, "misc_deregister" ->
126131
()
127132
| _, "__VERIFIER_atomic_begin" when get_bool "ana.sv-comp.functions" ->

0 commit comments

Comments
 (0)