aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorBen McKeegan <ben@netservers.co.uk>2009-07-28 07:43:57 +0000
committerDavid S. Miller <davem@davemloft.net>2009-08-02 12:20:31 -0700
commita53a8b56827cc429c6d9f861ad558beeb5f6103f (patch)
treea7af8f3197dd2361d27adfd74781bb7922931791 /net
parentixgbe: Fix RSC completion delay causing Rx interrupts to stop (diff)
downloadlinux-dev-a53a8b56827cc429c6d9f861ad558beeb5f6103f.tar.xz
linux-dev-a53a8b56827cc429c6d9f861ad558beeb5f6103f.zip
ppp: fix lost fragments in ppp_mp_explode() (resubmit)
This patch fixes the corner cases where the sum of MTU of the free channels (adjusted for fragmentation overheads) is less than the MTU of PPP link. There are at least 3 situations where this case might arise: - some of the channels are busy - the multilink session is running in a degraded state (i.e. with less than its full complement of active channels) - by design, where multilink protocol is being used to artificially increase the effective link MTU of a single link. Without this patch, at most 1 fragment is ever sent per free channel for a given PPP frame and any remaining part of the PPP frame that does not fit into those fragments is silently discarded. This patch restores the original behaviour which was broken by commit 9c705260feea6ae329bc6b6d5f6d2ef0227eda0a 'ppp:ppp_mp_explode() redesign'. Once all 'free' channels have been given a fragment, an additional fragment is queued to each available channel in turn, as many times as necessary, until the entire PPP frame has been consumed. Signed-off-by: Ben McKeegan <ben@netservers.co.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
0 files changed, 0 insertions, 0 deletions