From: Adapted from http://bugzilla.kernel.org/show_bug.cgi?id=6530 Reschedule the async Tx tasklet if the transmit queue was full. Cc: Paul Mackerras Signed-off-by: Andrew Morton --- drivers/net/ppp_async.c | 2 ++ 1 files changed, 2 insertions(+) diff -puN drivers/net/ppp_async.c~ppp_async-hang-fix drivers/net/ppp_async.c --- devel/drivers/net/ppp_async.c~ppp_async-hang-fix 2006-05-10 02:28:15.000000000 -0700 +++ devel-akpm/drivers/net/ppp_async.c 2006-05-10 02:28:53.000000000 -0700 @@ -516,6 +516,8 @@ static void ppp_async_process(unsigned l /* try to push more stuff out */ if (test_bit(XMIT_WAKEUP, &ap->xmit_flags) && ppp_async_push(ap)) ppp_output_wakeup(&ap->chan); + else if (test_bit(XMIT_FULL, &ap->xmit_flags)) + ppp_asynctty_wakeup(ap->tty); } /* _