On Sun, Jan 11, 2015 at 01:20:35PM +0100, Martin Pieuchot wrote: > On 11/01/15(Sun) 09:54, Ingo Feinerer wrote: > > With the latest snapshot I have /var/log/messages filled up with > > > > uaudio_chan_rintr: count < n > > usb_transfer_complete: actlen > len 2824 > 0 > > usb_transfer_complete: actlen > len 3 > 0 > > usb_transfer_complete: actlen > len 2816 > 0 > > > > when playing audio. The problem is that I have disk activity because > > /var/log/messages fills up extremely fast (e.g. it was 80 MB after > > watching a video via mplayer for a few minutes). > > Thanks for the bug report, don't hesitate to send it to bugs@ next time. > Not all the developers read misc@. > > I am the one to blame for this regression. I wanted to make sure every > USB transfer was checked for buffer overrun but isoc transfers are > special. Could you tell me if the diff below fixes it?
Yes, it does. Thank you very much! Best regards, Ingo > Index: usbdi.c > =================================================================== > RCS file: /cvs/src/sys/dev/usb/usbdi.c,v > retrieving revision 1.77 > diff -u -p -r1.77 usbdi.c > --- usbdi.c 9 Jan 2015 12:15:48 -0000 1.77 > +++ usbdi.c 11 Jan 2015 11:12:34 -0000 > @@ -732,7 +732,7 @@ usb_transfer_complete(struct usbd_xfer * > pipe->running = 0; > > #ifdef DIAGNOSTIC > - if (xfer->actlen > xfer->length) { > + if (xfer->actlen > xfer->length && xfer->length != 0) { > printf("%s: actlen > len %u > %u\n", __func__, xfer->actlen, > xfer->length); > xfer->actlen = xfer->length;