ClangBuiltLinux / thread-safety-analysis

A research project into applying Clang's Thread Safety Analysis to the Linux Kernel
Other
6 stars 0 forks source link

include/net/sch_generic.h: conditional locking qdisc_run_begin #139

Open himanshujha199640 opened 5 years ago

himanshujha199640 commented 5 years ago

In commit 32489d40ba3d8, we annotated qdisc_run_end with __no_thread_safety_analysis due to conditional unlocking. But now changing it now to __conditional_unlocking which is more appropriate here. Here in qdisc_run_begin we have a conditional locking, therefore marking it as __conditional_locking as well.

/home/himanshu/clang-thread-safety-analysis/include/net/sch_generic.h:170:2: warning: mutex 'qdisc->seqlock' is not held on every path through here [-Wthread-safety-analysis]
        raw_write_seqcount_begin(&qdisc->running);
        ^
/home/himanshu/clang-thread-safety-analysis/include/net/sch_generic.h:161:8: note: mutex acquired here
                if (!spin_trylock(&qdisc->seqlock))
                     ^

https://elixir.bootlin.com/linux/v5.2-rc2/source/include/net/sch_generic.h#L170