Re: possible bug on ppp_async

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jun 9, 2008 at 6:03 PM, Alan Cox <alan@xxxxxxxxxx> wrote:> On Mon, Jun 09, 2008 at 03:23:33PM -0300, Gustavo Fernando Padovan wrote:>> The problem occurs when the execution enters on switch's default case>> and call tty_mode_ioctl() and the cmd is not TCGETS or cmd is not>> TCGETA. I don't know why this happens, but happens. On kernel 2.6.23>> Which ioctl is making it go silly ?>>> tty_mode_ioctl(). This is the unique real change between the two>> versions, the others are only code restructuring. Then I made this>> patch to revert part of changes and make modem works again. I don't>> know if this is correct. I just put the modem to work.>> It's very useful as we now know what change has had the effect, but not> what your pppd is doing which is breaking it (and thus where the real bug> may lie)>>> --- a/drivers/net/ppp_async.c.     2008-06-09 13:12:25.000000000 -0300>> +++ b/drivers/net/ppp_async.c      2008-06-09 13:15:57.000000000 -0300>> @@ -309,6 +309,11 @@>>                 err = 0;>>                 break;>>>> +       case TCGETS:>> +       case TCGETA:>> +               err = tty_mode_ioctl(tty, file, cmd, arg);>> +               break;>> +>>         case TCFLSH:>>                 /* flush our buffers and the serial port's buffer */>>                 if (arg == TCIOFLUSH || arg == TCOFLUSH)>> @@ -324,8 +329,7 @@>>                 break;>>>>         default:>> -               /* Try the various mode ioctls */>> -               err = tty_mode_ioctl(tty, file, cmd, arg);>> +               err = -ENOIOCTLCMD;>> Can you add a printk to log which ioctl calls end up here and what they> return (both with/without the patch). That should give the needed info to> identify what is being done and returned which then breaks it.
I made two tries to connect with and without the patch. The tries areseparated by a blank line.
Debug without the patch: [ 5955.465357] cmd = 21506 (TCSETS) [ 5955.465369] err = 0 [ 5955.465372] ----------
 [ 5987.058871] TCGETS [ 5987.059094] err = 0 [ 5987.059276] ---------- [ 5987.059645] TCGETS [ 5987.059786] err = 0 [ 5987.059863] ---------- [ 5987.060008] cmd = 21534 (TIOCGSERIAL) [ 5987.060117] err = -515     (-ENOIOCTLCML) [ 5987.060194] ---------- [ 5987.060283] cmd = 21506 [ 5987.060371] err = 0 [ 5987.060444] ---------- [ 5987.110619] cmd = 21506 [ 5987.110760] err = 0 [ 5987.110836] ---------- [ 5987.110949] cmd = 21506 [ 5987.111037] err = 0 [ 5987.111109] ---------- [ 5987.111192] TCGETS [ 5987.111272] err = 0 [ 5987.111345] ---------- [ 6000.334483] cmd = 21506 [ 6000.334494] err = 0 [ 6000.334496] ----------
Debug with the patch:[ 8207.865204] cmd = 21506 (TCSETS)[ 8207.865213] err = -515[ 8207.865215] ----------
[ 8866.939075] cmd = 21506[ 8866.939084] err = -515[ 8866.939086] ----------
The problem seems the ioctl TCSETS, with the patch (and on kernel2.6.23) it returns immediately, and on kernel 2.6.24 (without thepatch) it goes to tty_mode_ioctl().
>> From that I can work out what is going on and what the right fix may be.>> Alan>>


-- ----------------------------------------------Gustavo Fernando PadovanEngenharia de Computação 2006LAS - Laboratório de Administração e Segurança de SistemasInstituto de Computação - UNICAMP
gfpadovan@xxxxxxxxxxxxxxxxx@students.ic.unicamp.brpao@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Seja Livre, use Software Livre��.n��������+%������w��{.n�����{���i�)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥


[Index of Archives]     [Linux Audio Users]     [Linux for Hams]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Fedora Users]

  Powered by Linux