Skip to contentSkip to conversation

Bug in ppp_async.c

PATCH Jo l'Indien 5 participants 7 messages Jan 24, 2001 – Jan 26, 2001 Network drivers

lore
Share & tools
lore
#0 lore raw

I found a bug in the 2.4.1-pre10 version of ppp_async.c

In fact, a lot of ioctl are not supported any more, whih make the pppd start fail.
The bad patch is:

diff -u --recursive --new-file v2.4.0/linux/drivers/net/ppp_async.c linux/drivers/net/ppp_async.c

drivers/net/ppp_async.c Mon Jan 15 11:04:57 2001 renamed from linux/drivers/net/ppp_async.c Fri Apr 21 13:31:10 2000 +0 -19
@@ -259,25 +244,6 @@
   err = 0;
   break;
 
-/*
- * For now, do the same as the old 2.3 driver useta
- */
- case PPPIOCGFLAGS:
- case PPPIOCSFLAGS:
- case PPPIOCGASYNCMAP:
- case PPPIOCSASYNCMAP:
- case PPPIOCGRASYNCMAP:
- case PPPIOCSRASYNCMAP:
- case PPPIOCGXASYNCMAP:
- case PPPIOCSXASYNCMAP:
- case PPPIOCGMRU:
- case PPPIOCSMRU:
-  err = -EPERM;
-  if (!capable(CAP_NET_ADMIN))
-   break;
-  err = ppp_async_ioctl(&ap->chan, cmd, arg);
-  break;
-
  case PPPIOCATTACH:
  case PPPIOCDETACH:
   err = ppp_channel_ioctl(&ap->chan, cmd, arg);

When I apply this patch back, I got the connection, but it fail after a few seconds...
In fact, there are two other patches to reverse in order to make the driver do its job again (sure it does: I'm using this kind of kernel now...):

diff -u --recursive --new-file v2.4.0/linux/drivers/net/ppp_async.c linux/drivers/net/ppp_async.c

drivers/net/ppp_async.c Mon Jan 15 11:04:57 2001 renamed from linux/drivers/net/ppp_async.c Fri Apr 21 13:31:10 2000 +1 -6
@@ -181,12 +175,7 @@
 ppp_asynctty_read(struct tty_struct *tty, struct file *file,
     unsigned char *buf, size_t count)
 {
- /* For now, do the same as the old 2.3.x code useta */
- struct asyncppp *ap = tty->disc_data;
-
- if (ap == 0)
-  return -ENXIO;
- return ppp_channel_read(&ap->chan, file, buf, count);
+ return -EAGAIN;
 }
 
 /*

Then:

diff -u --recursive --new-file v2.4.0/linux/drivers/net/ppp_async.c linux/drivers/net/ppp_async.c

drivers/net/ppp_async.c Mon Jan 15 11:04:57 2001 renamed from linux/drivers/net/ppp_async.c Fri Apr 21 13:31:10 2000 +1 -6
@@ -203,12 +193,7 @@
 ppp_asynctty_write(struct tty_struct *tty, struct file *file,
      const unsigned char *buf, size_t count)
 {
- /* For now, do the same as the old 2.3.x code useta */
- struct asyncppp *ap = tty->disc_data;
-
- if (ap == 0)
-  return -ENXIO;
- return ppp_channel_write(&ap->chan, buf, count);
+ return -EAGAIN;
 }
 
 static int

Without these modifications, everything is allright !

Jocelyn Mayer

PS: sorry, but I don't know who is the actual maitainer of this
driver... ý:.žË›±Êâmçë¢kaŠÉb²ßìzwm…éb�ïîžË›±Êâmébžìÿ‘êçz_âžØ^n‡r¡ö¦zË�ëh™¨è­Ú&£ûàz¿äz¹Þ—ú+€ù^jÇ«y§m…á@A«a¶Úÿÿü0ÃûnÇú+ƒùd

#1 lore raw
Quoted 4 lines · Jo l'Indien

I found a bug in the 2.4.1-pre10 version of ppp_async.c

In fact, a lot of ioctl are not supported any more, whih make the pppd start fail.

I'll bet you're using an old pppd. You need version 2.4.0 of pppd, available from ftp://linuxcare.com.au/pub/ppp/, as documented in the Documentation/Changes file.

Quoted 2 lines

PS: sorry, but I don't know who is the actual maitainer of this driver...

Me.

Signature · 8 lines
Paul Mackerras, Open Source Research Fellow, Linuxcare, Inc.
+61 2 6262 8990 tel, +61 2 6262 8991 fax
[email protected], http://www.linuxcare.com.au/
Linuxcare.  Support for the revolution.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/
#2 lore raw
Quoted 10 lines · Paul Mackerras
Quoted 4 lines · Jo l'Indien

I found a bug in the 2.4.1-pre10 version of ppp_async.c

In fact, a lot of ioctl are not supported any more, whih make the pppd start fail.

I'll bet you're using an old pppd. You need version 2.4.0 of pppd, available from ftp://linuxcare.com.au/pub/ppp/, as documented in the Documentation/Changes file.

Even Red Hat 7 only has the 2.3.11 version.

The 2.4.xx series is supposed to be stable. If there is any way you could add a compatibility hack, please do so.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

#3 lore raw
Quoted 6 lines · Albert D. Cahalan
Quoted 3 lines · Paul Mackerras

I'll bet you're using an old pppd. You need version 2.4.0 of pppd, available from ftp://linuxcare.com.au/pub/ppp/, as documented in the Documentation/Changes file.

Even Red Hat 7 only has the 2.3.11 version.

That's probably because Red Hat 7 didn't ship with a 2.4.0 kernel.

Quoted 2 lines

The 2.4.xx series is supposed to be stable. If there is any way you could add a compatibility hack, please do so.

The 2.4.0 Documentation/Changes file already said that pppd should be at least v2.4.0. That hasn't changed, AFAICT.

Signature · 7 lines
dwmw2


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/
#4 lore raw
In reply to Albert D. Cahalan
Quoted 4 lines · Albert D. Cahalan

Even Red Hat 7 only has the 2.3.11 version.

The 2.4.xx series is supposed to be stable. If there is any way you could add a compatibility hack, please do so.

Stable != backwards compatible to the year dot. ppp-2.4.0 has been out for over 5 months now. Adding the compatibility stuff back in would make the PPP subsystem much more complicated and less robust. And pppd is not the only thing you would have to upgrade if you are using a 2.4.0 with Red Hat 7.0 - I would expect that you would also at least have to upgrade modutils, and switch over from ipchains to iptables if you use the netfilter stuff.

Paul.

Signature · 8 lines
Paul Mackerras, Open Source Research Fellow, Linuxcare, Inc.
+61 2 6262 8990 tel, +61 2 6262 8991 fax
[email protected], http://www.linuxcare.com.au/
Linuxcare.  Support for the revolution.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/
#5 lore raw
Quoted 8 lines · Paul Mackerras
Quoted 4 lines · Albert D. Cahalan

Even Red Hat 7 only has the 2.3.11 version.

The 2.4.xx series is supposed to be stable. If there is any way you could add a compatibility hack, please do so.

Stable != backwards compatible to the year dot.

I know. It means that you don't break the API between 2.4.0 and 2.4.1 though. It means you don't break distributions that were supposed to be ready for the 2.4.xx kernels.

Quoted 2 lines

ppp-2.4.0 has been
out for over 5 months now.

That is less than the typical time between releases of a normal Linux distribution.

Quoted 2 lines

Adding the compatibility stuff back in
would make the PPP subsystem much more complicated and less robust.

I wouldn't be asking you to add it back if you hadn't removed it. It was already there.

I don't trust that the new version will be a drop-in replacement due to past experiences, and I wonder if my 2.0.xx kernel will still be supported by the new user-space code. So this sucks.

Quoted 4 lines

And pppd is not the only thing you would have to upgrade if you are using a 2.4.0 with Red Hat 7.0 - I would expect that you would also at least have to upgrade modutils, and switch over from ipchains to iptables if you use the netfilter stuff.

Nope, the network people even offer some Linux 2.0 compatibility. That dates back many years! Hey, I like your example.

For modutils, there was a security problem anyway.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

#6 lore raw
In reply to Paul Mackerras

I do ppp using 2.4.0 w/ redhat 7 now, no upgrades besides modultils and the kernel :>
-- Dan Egli
-- Network Administrator / President
-- Frankenstein Computers
-- 801-671-7875
----- Original Message -----
From: "Paul Mackerras" <[email protected]>
To: "Albert D. Cahalan" <[email protected]>
Cc: <[email protected]>; <[email protected]>; <[email protected]>; <[email protected]>
Sent: Wednesday, January 24, 2001 2:45 AM
Subject: Re: Bug in ppp_async.c

Quoted 17 lines
Quoted 4 lines · Albert D. Cahalan

Even Red Hat 7 only has the 2.3.11 version.

The 2.4.xx series is supposed to be stable. If there is any way you could add a compatibility hack, please do so.

Stable != backwards compatible to the year dot. ppp-2.4.0 has been out for over 5 months now. Adding the compatibility stuff back in would make the PPP subsystem much more complicated and less robust. And pppd is not the only thing you would have to upgrade if you are using a 2.4.0 with Red Hat 7.0 - I would expect that you would also at least have to upgrade modutils, and switch over from ipchains to iptables if you use the netfilter stuff.

Paul.

Quoted 10 lines

--
Paul Mackerras, Open Source Research Fellow, Linuxcare, Inc. +61 2 6262 8990 tel, +61 2 6262 8991 fax [email protected], http://www.linuxcare.com.au/
Linuxcare. Support for the revolution.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/