In the Linux kernel, the following vulnerability has been resolved:
firmware: qcom: scm: Fix missing read barrier in qcomscmgettzmempool()
Commit 2e4955167ec5 ("firmware: qcom: scm: Fix scm and waitq completion variable initialization") introduced a write barrier in probe function to store global 'scm' variable. We all known barriers are paired (see memory-barriers.txt: "Note that write barriers should normally be paired with read or address-dependency barriers"), therefore accessing it from concurrent contexts requires read barrier. Previous commit added such barrier in qcomscmis_available(), so let's use that directly.
Lack of this read barrier can result in fetching stale '__scm' variable value, NULL, and dereferencing it.
Note that barrier in qcomscmis_available() satisfies here the control dependency.