From 0fe6ba7fbca6d7f4da99208b41ec2a6444ca7d15 Mon Sep 17 00:00:00 2001 From: Henry Wong Date: Sun, 18 Sep 2011 13:41:49 +0000 Subject: [PATCH] --- yaml --- r: 264058 b: refs/heads/master c: 22e83a2926998fe132ae4dd26f1e998c70ae2e38 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/ppp_generic.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 201edd89450f..d923a7d186f5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d706f00f65146822c0097b796b3557ea8980c305 +refs/heads/master: 22e83a2926998fe132ae4dd26f1e998c70ae2e38 diff --git a/trunk/drivers/net/ppp_generic.c b/trunk/drivers/net/ppp_generic.c index 10e5d985afa3..edfa15d2e795 100644 --- a/trunk/drivers/net/ppp_generic.c +++ b/trunk/drivers/net/ppp_generic.c @@ -1465,7 +1465,12 @@ static int ppp_mp_explode(struct ppp *ppp, struct sk_buff *skb) continue; } - mtu = pch->chan->mtu - hdrlen; + /* + * hdrlen includes the 2-byte PPP protocol field, but the + * MTU counts only the payload excluding the protocol field. + * (RFC1661 Section 2) + */ + mtu = pch->chan->mtu - (hdrlen - 2); if (mtu < 4) mtu = 4; if (flen > mtu)