summaryrefslogtreecommitdiffstats
path: root/drivers/net/ppp_generic.c
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2011-10-17 11:22:50 +0000
committerArnd Bergmann <arnd@arndb.de>2011-10-17 11:22:50 +0000
commit8eb41582d2106eccc7717047d1184481f5a1b3a6 (patch)
tree12257bbe39b5c8ae6918198fde682ed0aacd8e00 /drivers/net/ppp_generic.c
parent127d4eb97b7bebc15fd692603263e75c220e24f9 (diff)
parent1cb17e2dbd09436069733500ea48e0c9b1f0a1cc (diff)
Merge branch 'ep93xx/board' into next/board
Diffstat (limited to 'drivers/net/ppp_generic.c')
-rw-r--r--drivers/net/ppp_generic.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/ppp_generic.c b/drivers/net/ppp_generic.c
index 10e5d985afa..edfa15d2e79 100644
--- a/drivers/net/ppp_generic.c
+++ b/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)