aboutsummaryrefslogtreecommitdiff
path: root/mt7996/debugfs.c
diff options
context:
space:
mode:
authorKevin Bowling <kbowling@FreeBSD.org>2026-08-27 11:51:10 +0000
committerKevin Bowling <kbowling@FreeBSD.org>2026-09-01 18:22:27 +0000
commit799e14aa60d81aa9eed1985e4683e12f6851ecfd (patch)
treea816b52974fd23c0ba58402f846b699b746479ab /mt7996/debugfs.c
parent96ed6005082fc63d633408ba3ad697e8757e80f9 (diff)
tpm: Remove Giant from the TPM 1.2 driverHEADmain
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 'mt7996/debugfs.c')
0 files changed, 0 insertions, 0 deletions