Subject: Re: small design problem with hso driver

From: Denis Joseph Barrow <[email-masked]>
Date: Thu, 09 Oct 2008 11:01:59 +0200

Hi,
I've found something suspicous but am not sure if
it's my problem. It looks like it when I'm
doing a gdb debug session but I can't believe
code so wrong can get into the kernel
& it didn't cause problems before.

Have a look at /drivers/char/tty_io.c

tty_open

around line 2234 this calls
tty->ops->open which calls hso_serial_open
& if this returns an error i.e. -ENODEV
release_dev is called which calls in tty_open
which calls tty->ops_close around line 2003 in tty_io.c.

Surely if the driver returns an error code on hso_serial_open
hso_serial_close shouldn't be called
or have I a complete misunderstanding
of char driver semantics.

Greg KH wrote:
> On Wed, Oct 08, 2008 at 03:52:38PM +0200, Denis Joseph Barrow wrote:
>> Hi,
>> I'm getting a fairly consistently reproducable problem
>> with the 3g modem hso driver. The most reproducable
>> bug I have.
>>
>> It happens when I plug out the usb modem & ctrl-c
>> out of an ioctl call with the modem connected in paralell over ppp
>> with wvdial 
>>
>> Basically whats happening is the hso_serial_close
>> is being called more times than the hso_serial_open &
>> I don't know why.
> 
> Care to put a trace or printk() to determine who is doing each open and
> close?
> 
> thanks,
> 
> greg k-h

-- 
best regards,
D.J. Barrow
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email-masked]
More majordomo info at  http://vger.kernel.org/majordomo-info.html