Re: 2.2.13 ISDN funnies

Henner Eisen (eis@baty.hanse.de)
Thu, 28 Oct 1999 23:07:52 +0200


>>>>> "Alan" == Alan Cox <alan@lxorguk.ukuu.org.uk> writes:

>> I heared similar problems with ppp over ethernet and normal
>> ppp.

Alan> There was a sign bug months ago with this that bit Alpha
Alan> users for one. That was fixed. Other than that we haven't
Alan> seen anything. So right now I believe the bug is in the isdn

Maybe there is still another bug in ip_output.c::ip_queue_xmit():
There, the re-allocation of header space is only done if the
device has a dev->hard_header() method:

if (skb_headroom(skb) < dev->hard_header_len && dev->hard_header) {
struct sk_buff *skb2;

skb2 = skb_realloc_headroom(skb, (dev->hard_header_len + 15) & ~

Async ppp in 2.2.x as well as the generic ppp in 2.3.x have no
dev->hard_header() method. Karsten's routing scenario
(e.g. from slip or raw hdlc device to ppp-over-ethernet) will result in
header space growing larger then the implict space of 16 byte
as provided by dev_alloc_skb(). Now, if ip_output does not reallocate
headroom because ppp has no dev->hard_header() method, problems might
occur.

Henner

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/