Panic with usb serial

Vince Hoffman jhary at unsane.co.uk
Wed Apr 2 04:34:59 PDT 2008


Kostik Belousov wrote:
> On Wed, Apr 02, 2008 at 10:50:39AM +0100, Vince Hoffman wrote:
>> Kostik Belousov wrote:
>>> On Tue, Apr 01, 2008 at 09:55:19AM +0100, Vince Hoffman wrote:
>>>> Kostik Belousov wrote:
>>>>> On Mon, Mar 31, 2008 at 12:13:31PM +0100, Vince Hoffman wrote:
>>>>>> Kostik Belousov wrote:
>>>>> Compile the ddb into the kernel (instructions are provided at the same
>>>>> web page) and post the output of the console on the panic
>>>> I tried this but other than the fact I can drop into ddb and step though
>>>> stuff I'm not sure what I can do with it. Since I cant (obviously) get a
>>>> serial console on my laptop I have done it the other way and taken a
>>>> picture of the console on panic. When I have more time I'll carry on
>>>> reading up on ddb but I think I have a steep learning curve since my
>>>> previous looks at programing stopped at 'hello world':)
>>>> Panic console at:
>>>> http://unsane.co.uk/~jhary/freebsd/IMAGE_119.jpg
>>> Thanks, this is enough. Two chunks were missed from the rev. 1.210.
>>> Please, try the patch below.
>>>
>>> diff --git a/sys/kern/kern_conf.c b/sys/kern/kern_conf.c
>>> index 843498e..7e6e048 100644
>>> --- a/sys/kern/kern_conf.c
>>> +++ b/sys/kern/kern_conf.c
>>> @@ -402,8 +402,7 @@ giant_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int fflag, struct thread
>>>  	if (dsw == NULL)
>>>  		return (ENXIO);
>>>  	mtx_lock(&Giant);
>>> -	retval = dev->si_devsw->d_gianttrick->
>>> -	    d_ioctl(dev, cmd, data, fflag, td);
>>> +	retval = dsw->d_gianttrick->d_ioctl(dev, cmd, data, fflag, td);
>>>  	mtx_unlock(&Giant);
>>>  	dev_relthread(dev);
>>>  	return (retval);
>>> @@ -419,8 +418,7 @@ giant_read(struct cdev *dev, struct uio *uio, int ioflag)
>>>  	if (dsw == NULL)
>>>  		return (ENXIO);
>>>  	mtx_lock(&Giant);
>>> -	retval = dev->si_devsw->d_gianttrick->
>>> -	    d_read(dev, uio, ioflag);
>>> +	retval = dsw->d_gianttrick->d_read(dev, uio, ioflag);
>>>  	mtx_unlock(&Giant);
>>>  	dev_relthread(dev);
>>>  	return (retval);
>> Hi Kostik,
>> 	Yes this stops the panic. I do still get the console spammed with
>> informational messages
>>
>> Apr  2 10:36:30 prawn kernel: ucom0: <FTDI usb serial converter, class
>> 0/0, rev 1.10/4.00, addr 3> on uhub2
>> Apr  2 10:36:33 prawn login: ROOT LOGIN (toor) ON ttyv0
>> Apr  2 10:36:56 prawn kernel: ucom0: ucomreadcb: IOERROR
>> Apr  2 10:36:56 prawn kernel: ucom0: at uhub2 port 1 (addr 3) disconnected
>> Apr  2 10:36:57 prawn kernel: Still 4294967295 threads in ttyU0
>> Apr  2 10:37:16 prawn last message repeated 188 times
>> Apr  2 10:37:16 prawn login: ROOT LOGIN (toor) ON ttyv1
>> Apr  2 10:37:16 prawn kernel: Still 4294967295 threads in ttyU0
>> Apr  2 10:37:47 prawn last message repeated 303 times
>> Apr  2 10:37:55 prawn last message repeated 85 times
>>
>>
>> but I can live with that.
>>
>> I had opened PR usb/122287 for this, and I have updated this with the
>> relevent information from this thread.
> 
> I committed the fix to the HEAD. I tested the patch with the uark(4)
> cable, and simply running the tip over the ttyU0 did not produced the
> "Still -1 threads in ttyU0" message. Are you running tip, or something
> else over the port ?
> 
Just tip.
[~](12:30:32)
{root at prawn}#grep usb0 /etc/remote
usb0:dv=/dev/ttyU0:br#9600:pa=none:

then

[~](12:31:20)
{root at prawn}#tip usb0
connected

Router>

then unplugged the usb adapter


Vince


More information about the freebsd-stable mailing list