Re: PPP with PCMCIA modem stalls on 2.6.10 or later

From: Paul Fulghum
Date: Tue Feb 14 2006 - 12:10:44 EST


On Wed, 2006-02-15 at 00:57 +0900, Kouji Toriatama wrote:
> Following is a status of ppp0 interface when the above wget
> command finished. The count of RX errors, RX bytes and TX
> bytes has sometimes increased while stalling. In kernel
> 2.6.9, the count of Rx errors was 0.
> -------------------------------------------------------------
> ppp0 Link encap:Point-to-Point Protocol
> inet addr:202.179.209.95 P-t-P:172.24.24.22 Mask:255.255.255.255
> UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
> RX packets:44 errors:18 dropped:0 overruns:0 frame:0
> TX packets:50 errors:0 dropped:0 overruns:0 carrier:0
> collisions:0 txqueuelen:3
> RX bytes:15992 (15.6 KiB) TX bytes:2544 (2.4 KiB)

In 2.6.10, a new check for errors on received characters was added.

Try the patch below. It prevents the check from discarding
received frames, but outputs an error message to the syslog.

Run with the patch and return the results with
any syslog output containing the error message.

Thanks,
Paul

--- linux-2.6.15/drivers/net/ppp_async.c 2006-01-02 21:21:10.000000000 -0600
+++ b/drivers/net/ppp_async.c 2006-02-14 11:04:47.000000000 -0600
@@ -923,8 +923,9 @@ ppp_async_input(struct asyncppp *ap, con

c = buf[n];
if (flags != NULL && flags[n] != 0) {
- ap->state |= SC_TOSS;
- } else if (c == PPP_FLAG) {
+ printk("ppp_async:bad char c=%02X f=%02X\n", buf[n], flags[n]);
+ }
+ if (c == PPP_FLAG) {
process_input_packet(ap);
} else if (c == PPP_ESCAPE) {
ap->state |= SC_ESCAPE;


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/