O problema está relacionado à função tpm pm suspend() no kernel Linux, que pode causar conflitos de acesso com outros acessadores de TPM no sistema. Especificamente, o driver hw random do TPM utiliza a função tpm get random(), e essa função é chamada em um loop a partir de um kthread, o que significa que ela não fica congelada junto com o espaço do usuário e, portanto, pode entrar em conflito com o trabalho realizado durante a suspensão do sistema. O número estimado de dispositivos potencialmente afetados em todo o mundo não está disponível. Não há informações sobre incidentes reais em que esse problema tenha sido explorado.
A função `tpm pm suspend()` está vulnerável, e a função `tpm get random()` é chamada em um loop a partir de um kthread.
Para corrigir isso, a função `tpm try get ops()` é chamada, que por sua vez é um wrapper em torno de `tpm chip start()`, mas utiliza o mutex apropriado.