Page MenuHomeFreeBSD

sound: Do not lock in midi_init()
AbandonedPublic

Authored by christos on Mon, Dec 15, 1:54 PM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Dec 17, 10:09 PM
Unknown Object (File)
Wed, Dec 17, 2:24 PM
Unknown Object (File)
Wed, Dec 17, 3:55 AM
Unknown Object (File)
Wed, Dec 17, 3:15 AM
Unknown Object (File)
Wed, Dec 17, 3:07 AM
Subscribers

Details

Summary

The device at this point is not initiliazed yet, so there is no fear of
concurrent access. This also fixes a WITNESS error where we keep holding
the lock during mpu401_pause():

Sleeping on "mpusetup" with the following non-sleepable locks held:
exclusive sleep mutex raw midi (raw midi) r = 0 (0xfffff80003373608) locked @ /mnt/src/sys/dev/sound/midi/midi.c:131
stack backtrace:
#0 0xffffffff80bbc105 at witness_debugger+0x65
#1 0xffffffff80bbd273 at witness_warn+0x403
#2 0xffffffff80b4fefa at _sleep+0x5a
#3 0xffffffff80b50690 at pause_sbt+0x80
#4 0xffffffff82d3aceb at mpu401_waitforack+0x4b
#5 0xffffffff82d3aa2a at mpu401_minit+0x6a
#6 0xffffffff82d39874 at midi_init+0x1e4
#7 0xffffffff82d3a74d at mpu401_init+0x7d
#8 0xffffffff82d15239 at dummy_attach+0x189
#9 0xffffffff80b815a4 at device_attach+0x464
#10 0xffffffff80b83430 at bus_generic_driver_added+0x90
#11 0xffffffff80b7ea69 at devclass_driver_added+0x39
#12 0xffffffff80b7e978 at devclass_add_driver+0x138
#13 0xffffffff80b1add0 at module_register_init+0xb0
#14 0xffffffff80b0938d at linker_load_module+0xc5d
#15 0xffffffff80b0b12f at kern_kldload+0x16f
#16 0xffffffff80b0b23c at sys_kldload+0x5c
#17 0xffffffff810a3b7c at amd64_syscall+0x16c

Sponsored by: The FreeBSD Foundation
MFC after: 1 week

Diff Detail

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