diff options
| author | Kevin Bowling <kbowling@FreeBSD.org> | 2026-08-27 11:51:10 +0000 |
|---|---|---|
| committer | Kevin Bowling <kbowling@FreeBSD.org> | 2026-09-01 18:22:27 +0000 |
| commit | 799e14aa60d81aa9eed1985e4683e12f6851ecfd (patch) | |
| tree | a816b52974fd23c0ba58402f846b699b746479ab /test/SemaCXX/dependent-types.cpp | |
| parent | 96ed6005082fc63d633408ba3ad697e8757e80f9 (diff) | |
Serialize TPM 1.2 commands, character-device methods, and power
transitions with an sx lock, following the command ownership model used
by the TPM 2.0 driver. Reject new operations once detach starts and
drain the character device before releasing transport resources.
Giant also closed the interrupt race between the final TIS status check
and tsleep. Replace that implicit dependency with a mutex and condition
variable, use an absolute deadline across unrelated wakeups, and make
the interrupt handler MPSAFE.
Create the device node atomically with its softc and finish failed write
transactions so every command path releases its transport state.
The polling path was validated on ThinkPad T430 and T440p systems with
their STMicro TPM 1.2 devices enabled. Exclusive-open behavior, 100
consecutive PCR reads, and module unload and reload completed without
errors on both systems. Two consecutive S3 cycles on each system
preserved PCR values and command access, including another 100 PCR reads
after resume, without lock or TPM diagnostics.
Reviewed by: kevans, seuros
MFC after: 2 weeks
Sponsored by: BBOX.io
Differential Revision: https://reviews.freebsd.org/D59211
Diffstat (limited to 'test/SemaCXX/dependent-types.cpp')
0 files changed, 0 insertions, 0 deletions
