On Thu, May 28, 2020 at 01:41:43PM +0100, Stuart Henderson wrote:
> uaudio0 at uhub7 port 2 configuration 1 interface 1 "GN Netcom GN 9350" rev 
> 2.00/1.00 addr 7
> uaudio0: class v1, full-speed, sync, channels: 1 play, 1 rec, 4 ctls
> audio1 at uaudio0
> uhidev0 at uhub7 port 2 configuration 1 interface 3 "GN Netcom GN 9350" rev 
> 2.00/1.00 addr 7
> uhidev0: iclass 3/0
> uhid0 at uhidev0: input=2, output=2, feature=0
> uaudio0: can't reset interface
> uaudio0: can't reset interface
> audio1 detached
> uaudio0 detached
> uhid0 detached
> uhidev0 detached
> RA\xaf\xdeRA\xaf\xdeRA\xaf\xdeRA\xaf\xdeRA\xaf\xdeRA\xaf\xdeRA\xaf\xde: can't 
> set interface
> kernel: protection fault trap, code=0
> Stopped at      uaudio_stream_close+0x8a:       movzbl  0x8(%r12),%esi
> ddb{3}> [-- sthen@localhost attached -- Thu May 28 11:58:19 2020]
> 
> ddb{3}> 
> ddb{3}> tr
> uaudio_stream_close(ffff800001dfb000,1) at uaudio_stream_close+0x8a
> uaudio_stream_open(ffff800001dfb000,1,ffff8000001e8000,ffff8000001eaa80,2a8,ffffffff816f7630)
>  at uaudio_stream_open+0x761
> uaudio_trigger_output(ffff800001dfb000,ffff8000001e8000,ffff8000001eaa80,2a8,ffffffff816f7630,ffff800001e95c00)
>  at uaudio_trigger_output+0x47
> audio_start_do(ffff800001e95c00) at audio_start_do+0xb5
> audioioctl(2a01,20004126,ffff800035a74470,7,ffff800034fe6750) at 
> audioioctl+0x71
> VOP_IOCTL(fffffd867a72e9e0,20004126,ffff800035a74470,7,fffffd84fea6f9c0,ffff800034fe6750)
>  at VOP_IOCTL+0x55
> vn_ioctl(fffffd867d490f10,20004126,ffff800035a74470,ffff800034fe6750) at 
> vn_ioctl+0x75
> sys_ioctl(ffff800034fe6750,ffff800035a74580,ffff800035a745e0) at 
> sys_ioctl+0x2df
> syscall(ffff800035a74650) at syscall+0x389
> Xsyscall() at Xsyscall+0x128
> end of kernel

According to dmesg, audio1 was detached, so we shouldn't enter
audio_start_do().

At this point the DVF_ACTIVE flag is clear; audioioctl() calls
device_lookup() which is supposed to return NULL in this case, so
ioctl() is supposed to return ENXIO, not attempt to start playback.

Reply via email to