Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/usb ucom(4): Nix broken error branch.



details:   https://anonhg.NetBSD.org/src/rev/ef14c9e1c7b8
branches:  trunk
changeset: 373564:ef14c9e1c7b8
user:      riastradh <riastradh%NetBSD.org@localhost>
date:      Fri Feb 17 23:38:54 2023 +0000

description:
ucom(4): Nix broken error branch.

This error branch was introduced to make the system act, when a USB
serial adapter is yanked, as if the other end had spat out a line
feed in an attempt to wake any sleeping readers so they will stop
using the USB serial port.

This is no longer necessary, because ttycancel will wake them anyway,
and it is actually harmful because it puts stuff in the output queue
(CR LF) that will never be processed, causing subsequent users to
hang trying to open the device.

Problem found and patch tested by tih@.

diffstat:

 sys/dev/usb/ucom.c |  14 ++------------
 1 files changed, 2 insertions(+), 12 deletions(-)

diffs (37 lines):

diff -r 63cf3cabbcc6 -r ef14c9e1c7b8 sys/dev/usb/ucom.c
--- a/sys/dev/usb/ucom.c        Fri Feb 17 23:13:01 2023 +0000
+++ b/sys/dev/usb/ucom.c        Fri Feb 17 23:38:54 2023 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ucom.c,v 1.134 2022/10/26 23:48:43 riastradh Exp $     */
+/*     $NetBSD: ucom.c,v 1.135 2023/02/17 23:38:54 riastradh Exp $     */
 
 /*
  * Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ucom.c,v 1.134 2022/10/26 23:48:43 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ucom.c,v 1.135 2023/02/17 23:38:54 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_usb.h"
@@ -1446,18 +1446,8 @@
 
        if (status == USBD_CANCELLED || status == USBD_IOERROR ||
            sc->sc_closing) {
-
                DPRINTF("... done (status %jd closing %jd)",
                    status, sc->sc_closing, 0, 0);
-
-               if (status == USBD_IOERROR || sc->sc_closing) {
-                       /* Send something to wake upper layer */
-                       (tp->t_linesw->l_rint)('\n', tp);
-                       ttylock(tp);    /* XXX */
-                       ttwakeup(tp);
-                       ttyunlock(tp);  /* XXX */
-               }
-
                mutex_exit(&sc->sc_lock);
                return;
        }



Home | Main Index | Thread Index | Old Index