On Mon, 23 Nov 1998, Nick Phillips wrote:
|Date: Mon, 23 Nov 1998 18:23:41 +0000
|From: Nick Phillips <[EMAIL PROTECTED]>
|To: [EMAIL PROTECTED]
|Cc: Linux Lists <[EMAIL PROTECTED]>,
| Valentin Abramov <[EMAIL PROTECTED]>
|Subject: Re: URL about PPP 2.3.5 minor typo
|
|Linux Lists wrote:
|>
|> Hello,
|>
|> Quick question: does someone have a URL pointing to the description of the
|> PPP 2.3.5 typo problem (instead of LINUX_VERSION_CODE >= , should be
|> LINUX_VERSION_CODE <= , or something on this line ...) ??
|
|It's *not* a typo; it's just that the 2.0.35 kernel moved to the same
|form of call to dev_kfree_skb that the recent 2.1.xx kernels use, and
|the logic in the ppp.c file can't deal with this (2.0.35 didn't exist
|when it was written).
I don't know the story behind this error but it's caused a lot of trouble.
And it _is_ an error. The function dev_kfree_skb, as defined in the file
linux/net/core/skbuff.c for 2.0.1, 2.0.35 and 2.0.36, uses two arguments.
I know this because I have the source code for these kernels. I also saved
a post in which the "too few arguments" errors occurred with the 2.0.30
kernel using the ppp.c from ppp-2.3.5. I know I've also seen at least
one post for the 2.0.34 kernel. So it's rather likely that this function
has two arguments for all the kernels of the 2.0.x series and that the
"too few arguments" errors will appear for these kernels when using the
ppp.c from a pristine ppp-2.3.5 package.
|
|Changing the > to < or whatever it was will enable ppp to compile with
|2.0.35, but it will break it with other (2.1.xx, if I remember right)
|kernels. So if you use this "fix" and later upgrade to a 2.1 series
|kernel, you'll have to "un-fix" it again.
I can't speak from direct knowledge for the 2.1.x series, but if there are
kernels that define the dev_kfree_skb function with only one argument then
they almost certainly can only come from the 2.1.x series. Changing the
"<" to ">=" makes this happen for the ppp.c dev_kfree_skb call in version
2.0.86 and higher while providing two arguments in the dev_kfree_skb call
for the entire 2.0.x series and the 2.1.x series though 2.1.85.
|
|I've put a patch file and a version of ppp.c that will work with any
|(well, maybe not the very recent ones - I haven't tried them) kernel on
|http://www.hizz.demon.co.uk. There aren't any other files there at the
|moment, so it should be obvious what's what. Put the patch file in the
|ppp-2.3.5 directory and patch from it, or just stick the ppp.c in the
|right place under the ppp source tree (can't remember where - is it
|ppp-2.3.5/linux/ppp.c ??), do the "make kernel" business again, build
|the kernel, build ppp and it should work.
The patch is wrong with respect to some kernels in the 2.0.x series
less than 2.0.35 and very likely all of them. The replacement of "<"
with ">=" may or may not be wrong for some or all of the 2.1.x series,
but it's a near certainty that it's right for all kernel versions in
the 2.0.x series, not just 2.0.1, 2.0.30, 2.0.34, 2.0.35 and 2.0.36.
The patch also says that there is just one argument for dev_kfree_skb
in the 2.1.x series through 2.1.85 and that from 2.1.86 up there are
two arguments. Since dev_kfree_skb seems to have two arguments in
the 2.0.x series, this means that there is a switch from two arguments
to one and then back to two. This may be so but it does not appear as
plausible as a single switch from two arguments to one argument beginning
at version 2.1.86. Does anybody really *know* what is correct here?
---
Clifford Kite Not a guru. (tm)
[EMAIL PROTECTED] Not even close.
-
To unsubscribe from this list: send the line "unsubscribe linux-ppp" in
the body of a message to [EMAIL PROTECTED]