Page MenuHomeFreeBSD

snd_maestro3: Do not hold sc_lock across the hwvol handlers
Needs ReviewPublic

Authored by christos on Thu, Oct 8, 12:28 PM.
Tags
None
Referenced Files
F175249147: D60464.diff
Fri, Oct 9, 10:25 AM
F175248549: D60464.id189048.diff
Fri, Oct 9, 10:19 AM
F175236588: D60464.diff
Fri, Oct 9, 8:08 AM
F175232455: D60464.id189048.diff
Fri, Oct 9, 7:23 AM
F175208464: D60464.diff
Fri, Oct 9, 2:55 AM
F175195803: D60464.id189048.diff
Fri, Oct 9, 12:41 AM
Subscribers

Details

Reviewers
markj
emaste
kib
Summary

mixer_hwvol_*() can end up taking sound(4)'s channel lock through
mixer_set_softpcmvol() or mixer_set_eq(). m3_pchan_trigger() takes
sc_lock with the channel lock already held, which can cause a LOR. Drop
sc_lock for the duration of the hwvol handlers, as snd_uaudio(4) does
for the same reason.

MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 77846
Build 74729: arc lint + arc unit