I have a diff or two for that, will send when I'll come home.

ср, 15 янв. 2020 г., 19:28 Martin Pieuchot <m...@openbsd.org>:

> Thanks for the report.
>
> > ddb{0}>
> memcpy(ffff800000165000,fffffd804da1f728,8d8,ffff800000165000,b5bd47118
> > ed5c95a,ffff800000165000) at memcpy+0x15
> > uvideo_vs_cb(fffffd80778f2870,ffff8000001667d8,0) at uvideo_vs_cb+0x8b
> > usb_transfer_complete(fffffd80778f2870) at usb_transfer_complete+0x20f
> > xhci_event_dequeue(ffff8000000af000) at xhci_event_dequeue+0x103
> > xhci_softintr(ffff8000000af000) at xhci_softintr+0x2d
> > softintr_dispatch(1) at softintr_dispatch+0xf2
> > Xsoftnet(0,ffffffff819c05e0,0,18041969,80,a) at Xsoftnet+0x1f
> > Xspllower(0,0,c7ef80837208d4cc,ffff80000159c000,ffffffff81983ee1,708000)
> at Xsp
> > llower+0x19
> > free(ffff80000159c000,2,708000) at free+0x160
> > uvideo_detach(ffff800000165000,1) at uvideo_detach+0x71
> > config_detach(ffff800000165000,1) at config_detach+0x152
> > usbd_detach(ffff800000137500,ffff800000086d00) at usbd_detach+0x5a
> > uhub_port_connect(ffff800000086d00,4,2a0,286) at uhub_port_connect+0x68
> > uhub_explore(ffff8000000a9500) at uhub_explore+0x23d
> > usb_explore(ffff8000000a9400) at usb_explore+0x12b
> > usb_task_thread(ffff80001f8efb30) at usb_task_thread+0x10b
> > end trace frame: 0x0, count: -16
> > ddb{0}>
> memcpy(ffff800000165000,fffffd804da1f728,8d8,ffff800000165000,b5bd47118
>
> It seems that the pipe aren't close when uvideo_detach() is called.
> This is similar to the recent race fixed in uhidev(4).  It would be
> great to find a generic way of handling this situation.
>
> uhidev_detach() calls vdevgone() for example...
>
>

Reply via email to