From owner-svn-src-all@FreeBSD.ORG Sun Apr 25 19:22:06 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AE4D9106566C; Sun, 25 Apr 2010 19:22:06 +0000 (UTC) (envelope-from n_hibma@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 83CAC8FC13; Sun, 25 Apr 2010 19:22:06 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o3PJM62f047286; Sun, 25 Apr 2010 19:22:06 GMT (envelope-from n_hibma@svn.freebsd.org) Received: (from n_hibma@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o3PJM6dq047284; Sun, 25 Apr 2010 19:22:06 GMT (envelope-from n_hibma@svn.freebsd.org) Message-Id: <201004251922.o3PJM6dq047284@svn.freebsd.org> From: Nick Hibma Date: Sun, 25 Apr 2010 19:22:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r207201 - stable/7/sys/dev/usb X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Apr 2010 19:22:06 -0000 Author: n_hibma Date: Sun Apr 25 19:22:06 2010 New Revision: 207201 URL: http://svn.freebsd.org/changeset/base/207201 Log: Remove the call to usbd_reset_device() as this panics the kernel on devices with many serial ports (the device is reset for each port that reports IOERROR). Remove statements that should have been removed when rewriting the if statement. Modified: stable/7/sys/dev/usb/ucom.c Modified: stable/7/sys/dev/usb/ucom.c ============================================================================== --- stable/7/sys/dev/usb/ucom.c Sun Apr 25 19:21:19 2010 (r207200) +++ stable/7/sys/dev/usb/ucom.c Sun Apr 25 19:22:06 2010 (r207201) @@ -689,11 +689,7 @@ ucomwritecb(usbd_xfer_handle xfer, usbd_ printf("%s: ucomwritecb: STALLED; clearing.\n", device_get_nameunit(sc->sc_dev)); usbd_clear_endpoint_stall_async(sc->sc_bulkout_pipe); - } else if (status == USBD_IOERROR) { - printf("%s: ucomwritecb: IOERROR; resetting device.\n", - device_get_nameunit(sc->sc_dev)); - usbd_reset_device(sc->sc_udev); - } else if (status != USBD_CANCELLED) { + } else { printf("%s: ucomwritecb: %s\n", device_get_nameunit(sc->sc_dev), usbd_errstr(status)); @@ -775,19 +771,13 @@ ucomreadcb(usbd_xfer_handle xfer, usbd_p 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); - else if (status == USBD_IOERROR) - usbd_reset_device(sc->sc_udev); if (status == USBD_STALLED) { printf("%s: ucomreadcb: STALLED; clearing.\n", device_get_nameunit(sc->sc_dev)); usbd_clear_endpoint_stall_async(sc->sc_bulkin_pipe); - } else if (status == USBD_IOERROR) { - printf("%s: ucomreadcb: IOERROR; resetting device.\n", - device_get_nameunit(sc->sc_dev)); - usbd_reset_device(sc->sc_udev); - } else if (status != USBD_CANCELLED) { + } else if (status == USBD_CANCELLED) { + /* noop */ + } else { printf("%s: ucomreadcb: %s\n", device_get_nameunit(sc->sc_dev), usbd_errstr(status));