+--- linux-2.4.18/drivers/net/ppp_generic.c.orig Mon May 12 01:36:31 2003
++++ linux-2.4.18/drivers/net/ppp_generic.c Mon May 12 03:09:13 2003
+@@ -99,6 +99,7 @@
+ spinlock_t rlock; /* lock for receive side */
+ spinlock_t wlock; /* lock for transmit side */
+ int mru; /* max receive unit */
++ int mru_alloc; /* MAX(1500,MRU) for dev_alloc_skb() */
+ unsigned int flags; /* control bits */
+ unsigned int xstate; /* transmit state bits */
+ unsigned int rstate; /* receive state bits */
+@@ -126,6 +127,7 @@
+ struct sock_fprog pass_filter; /* filter for packets to pass */
+ struct sock_fprog active_filter;/* filter for pkts to reset idle */
+ #endif /* CONFIG_PPP_FILTER */
++ int comp_pad; /* padding for compressor (MPPE) */
+ };
+
+ /*
+@@ -531,6 +533,10 @@
+ if (get_user(val, (int *) arg))
+ break;
+ ppp->mru = val;
++ if (ppp->mru > ppp->mru_alloc)
++ ppp->mru_alloc = ppp->mru;
++ else if (ppp->mru < PPP_MRU)
++ ppp->mru_alloc = PPP_MRU; /* shrink to minimum */
+ err = 0;
+ break;
+
+@@ -1006,8 +1012,8 @@