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
F175369686: D60464.id.diff
Sat, Oct 10, 8:41 AM
F175280937: D60464.id189048.diff
Fri, Oct 9, 4:15 PM
F175275965: D60464.diff
Fri, Oct 9, 3:54 PM
F175274523: D60464.id189048.diff
Fri, Oct 9, 3:41 PM
Unknown Object (File)
Fri, Oct 9, 10:25 AM
Unknown Object (File)
Fri, Oct 9, 10:19 AM
Unknown Object (File)
Fri, Oct 9, 8:08 AM
Unknown Object (File)
Fri, Oct 9, 7:23 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