HomeFreeBSD

hdac: Handle interrupts racing with device suspend

Description

hdac: Handle interrupts racing with device suspend

  • Avoid looping forever if a concurrent reset causes a read of the interrupt status register to return all ones.
  • Lock the softc before reading the interrupt status, so as to avoid a similar infinite loop in hdac_one_intr().

This fixes suspend-to-S3 on some laptops.

PR: 261207
Reviewed by: mav, imp
Tested by: uqs
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D34117

Details

Provenance
markjAuthored on Mar 16 2022, 4:09 PM
Reviewer
mav
Differential Revision
D34117: hdac: Handle interrupts racing with device suspend
Parents
rG28d08dc7d051: clock_gettime: Fix CLOCK_THREAD_CPUTIME_ID race
Branches
Unknown
Tags
Unknown