[PATCH] Fix for USB ugen panics

Martin nakal at web.de
Wed Jan 7 09:41:15 PST 2004

On Wed, 2004-01-07 at 00:16, Jay Cornwall wrote:

> I can't remember the last time I actually remembered to attach a patch that I 
> was talking about.
> My apologies. :)

Can happen :)

Good news: the panic is gone.

But, there are still some minor problems. Maybe I should explain what
I'm doing first, so you don't get confused.

I'm _trying_ to write a small capture program for my webcam
(Creative Videoblaster Webcam Go). I'm not very successful.
I managed to get a stream of black(?) pixels from my webcam,
using the so-called isochronous transfer mode. The program is
called "camtest".

I was doing some experiments with ugen to check out why only
black pixels are coming from the interface and so I tried out
a sysctl "USB_SET_CONFIG". That caused a panic instantly.
I removed all unnecessary code around the sysctl-call to
submit a PR and called the program "camtest-panic".

The behavior of the 2 programs can be described like this
(now, after the patching of the ugen-code; earlier I got
a panic, of course):

- you can start "camtest" as many times as you want after
fresh reboot and the isochronous transfer can be established
- after starting "camtest-panic", first time there is no error
- after starting "camtest-panic" only one time, you will not
get past the sysctl-call "USB_SET_ALTINTERFACE" in "camtest",
it stops with the message (from perror): "Invalid argument"
- after starting "camtest-panic" first time, you get an error
when starting it (e.a. "camtest-panic") more times after the 
sysctl-call "USB_SET_CONFIG", it stops with the message
(perror): "Input/output error"

I hope you can see from my description that there is still
something weird going on with ugen. I wish I could help, but
I don't know much about USB and just started my first program.
It just looks for me like there is something not being
cleaned up correctly after the USB_SET_CONFIG-sysctl in 

Thanks for the patch,

More information about the freebsd-current mailing list