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;