HomeFreeBSD

hdac: Defer interrupt allocation in hdac_attach()

Description

hdac: Defer interrupt allocation in hdac_attach()

hdac_attach() registers an interrupt handler before allocating various
driver resources which are accessed by the interrupt handler. On some
platforms we observe what appear to be spurious interrupts upon a cold
boot, resulting in panics.

Partially work around the problem by deferring irq allocation until
after other resources are allocated. I think this is not a complete
solution, but is correct and sufficient to work around the problems
reported in the PR.

Approved by: re (gjb)
PR: 268393
Tested by: Alexander Sherikov <asherikov@yandex.com>
Tested by: Oleh Hushchenkov <o.hushchenkov@gmail.com>
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D41883

(cherry picked from commit 015daf5221f7588b9258fe0242cee09bde39fe21)
(cherry picked from commit 1e8737f4e884fdf4b966056662e4e6003d3379d9)

Details

Provenance
markjAuthored on Sep 27 2023, 12:23 PM
Differential Revision
D41883: hdac: Defer interrupt allocation in hdac_attach()
Parents
rGe1105ded372d: unix: Fix a lock order reveral
Branches
Unknown
Tags
Unknown