HomeFreeBSD

sound(4): fixing panic for INVARIANTS kernel

Description

sound(4): fixing panic for INVARIANTS kernel

3e7bae08210e0 turns the BUS_READ_IVAR() failure from a warning into a
KASSERT. For certain PCI audio devices such like snd_csa(4) and
snd_emu10kx(4), the ac97_create() keeps the device handler generated
by device_add_child(pci_dev, "pcm"), which is not really a PCI device
handler. This in turn causes the subsequent pci_get_subdevice()
inside ac97_initmixer() triggering a panic.

This patch tries to put a bandaid for the aforementioned pcm device
children such that they can use the correct PCI handler(from parent)
to avoid a KASSERT panic in the INVARIANTS kernel.

Tested with: snd_csa(4), snd_ich(4), snd_emu10kx(4)
Reviewed by: imp
MFC after: 1 month

Details

Provenance
avatarAuthored on Apr 22 2021, 12:45 PM
Parents
rG4281bfec3628: nfsd: fix session slot handling for failed callbacks
Branches
Unknown
Tags
Unknown