In the Linux kernel, the following vulnerability has been resolved:
firmware: qcom: scm: Mark getwqctx() as atomic call
Currently getwqctx() is wrongly configured as a standard call. When two SMC calls are in sleep and one SMC wakes up, it calls getwqctx() to resume the corresponding sleeping thread. But if getwqctx() is interrupted, goes to sleep and another SMC call is waiting to be allocated a waitq context, it leads to a deadlock.
To avoid this getwqctx() must be an atomic call and can't be a standard SMC call. Hence mark getwqctx() as a fast call.