Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Nov 2007 20:26:19 +0200 (EET)
From:      hsu@bbnetworks.net
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   kern/118141: usb serial and nokia phones ucomreadcb ucomreadcb: IOERROR
Message-ID:  <200711191826.lAJIQJe0004963@ranta.suonsivu.net>
Resent-Message-ID: <200711200010.lAK0A169078684@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         118141
>Category:       kern
>Synopsis:       usb serial and nokia phones ucomreadcb ucomreadcb: IOERROR
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Nov 20 00:10:01 UTC 2007
>Closed-Date:
>Last-Modified:
>Originator:     Heikki Suonsivu <hsu@bbnetworks.net>
>Release:        FreeBSD 7.0-BETA3 i386
>Organization:
bbnetworks.net
>Environment:
System: FreeBSD ranta.suonsivu.net 7.0-BETA3 FreeBSD 7.0-BETA3 #2: Mon Nov 19 12:35:21 EET 2007 hsu@joutseno.wlansystems.com:/usr/obj/usr/src/sys/EBOX2300 i386

Various Nokia phones connected to USB port, RELENG_7.

>Description:

Nokia modem connection generates this:

Nov 19 20:10:38 ranta kernel: ucom1: ucomreadcb: IOERROR

and the serial port gets hung here.  Restarting pppd works, but the
problem repeats itself.

When pppd restarts, chat gets a bufferfull of ppp data, so apparently
the data was received, it just was never passed to pppd reading the tty.

ucom seems to have a missing bit here, like it was not finished:

	if (status != USBD_NORMAL_COMPLETION) {
		if (!(sc->sc_state & UCS_RXSTOP))
			printf("%s: ucomreadcb: %s\n",
			       device_get_nameunit(sc->sc_dev), usbd_errstr(status));
		sc->sc_state |= UCS_RXSTOP;
		if (status == USBD_STALLED)
			usbd_clear_endpoint_stall_async(sc->sc_bulkin_pipe);
		/* XXX we should restart after some delay. */
		return;
	}

Could this abnormal completion somehow be ignored?

I have also seen writecb errors, but they do not seem to break the
connection.

>How-To-Repeat:

Nokia 6680 seems a good candidate, but I have seen the problem on 9300
as well.  9300 is worse as it will not restart after one successful
connection without taking it off the usb for a moment.

>Fix:

Could the code do resubmit instead of error?


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200711191826.lAJIQJe0004963>