X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fnet%2Fppp_async.c;h=caabbc408c343c6e6ef6f1cfb0118725b9046fbf;hb=refs%2Fheads%2Fvserver;hp=aa6540b39466d464f0c70f497469b90820458ac8;hpb=76828883507a47dae78837ab5dec5a5b4513c667;p=linux-2.6.git diff --git a/drivers/net/ppp_async.c b/drivers/net/ppp_async.c index aa6540b39..caabbc408 100644 --- a/drivers/net/ppp_async.c +++ b/drivers/net/ppp_async.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -124,8 +125,8 @@ static struct ppp_channel_ops async_ops = { * way to fix this is to use a rwlock in the tty struct, but for now * we use a single global rwlock for all ttys in ppp line discipline. * - * FIXME: this is no longer true. The _close path for the ldisc is - * now guaranteed to be sane. + * FIXME: this is no longer true. The _close path for the ldisc is + * now guaranteed to be sane. */ static DEFINE_RWLOCK(disc_data_lock); @@ -276,7 +277,7 @@ ppp_asynctty_write(struct tty_struct *tty, struct file *file, * Called in process context only. May be re-entered by multiple * ioctl calling threads. */ - + static int ppp_asynctty_ioctl(struct tty_struct *tty, struct file *file, unsigned int cmd, unsigned long arg) @@ -570,7 +571,7 @@ ppp_async_encode(struct asyncppp *ap) * character if necessary. */ if (islcp || flag_time == 0 - || jiffies - ap->last_xmit >= flag_time) + || time_after_eq(jiffies, ap->last_xmit + flag_time)) *buf++ = PPP_FLAG; ap->last_xmit = jiffies; fcs = PPP_INITFCS; @@ -801,9 +802,9 @@ process_input_packet(struct asyncppp *ap) /* check for address/control and protocol compression */ p = skb->data; - if (p[0] == PPP_ALLSTATIONS && p[1] == PPP_UI) { + if (p[0] == PPP_ALLSTATIONS) { /* chop off address/control */ - if (skb->len < 3) + if (p[1] != PPP_UI || skb->len < 3) goto err; p = skb_pull(skb, 2); }