From: Simon Arlott <simon@xxxxxxxxxxx> Date: Fri, 30 Apr 2010 19:41:45 +0100 > Frequently when using PPPoE with an interface MTU greater than 1500, > the skb is likely to be non-linear. If the skb needs to be passed to > pppd then the skb must be linearised first. > > The previous commit fixes an issue with accidentally sending skbs > to pppd based on an invalid read of the protocol type. When that > error occurred pppd was reading invalid skb data too. > > Signed-off-by: Simon Arlott <simon@xxxxxxxxxxx> Don't propagate stupidity. The real problem is that ppp_read() can't handle non-linear SKBs, so fix that instead. The easiest way to do that is to put a "struct iovec iov;" on ppp_read()'s stack, fill it in with ther user buffer pointer and length, then use that to call skb_copy_datagram_const_iovec(). -- To unsubscribe from this list: send the line "unsubscribe linux-ppp" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html