Hello Ingo,

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?


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;

Reply via email to