Author: hselasky Date: Wed Nov 7 18:44:05 2012 New Revision: 242702 URL: http://svnweb.freebsd.org/changeset/base/242702
Log: The tty_inwakeup callback appears to be called both locked and unlocked. Handle the required locking automatically for now. MFC after: 1 weeks Modified: head/sys/dev/usb/serial/usb_serial.c Modified: head/sys/dev/usb/serial/usb_serial.c ============================================================================== --- head/sys/dev/usb/serial/usb_serial.c Wed Nov 7 17:41:17 2012 (r242701) +++ head/sys/dev/usb/serial/usb_serial.c Wed Nov 7 18:44:05 2012 (r242702) @@ -788,15 +788,20 @@ ucom_inwakeup(struct tty *tp) { struct ucom_softc *sc = tty_softc(tp); uint16_t pos; + int locked; if (sc == NULL) return; - tty_lock(tp); + locked = mtx_owned(sc->sc_mtx); + + if (locked == 0) + tty_lock(tp); if (ttydisc_can_bypass(tp) != 0 || (sc->sc_flag & UCOM_FLAG_HL_READY) == 0) { - tty_unlock(tp); + if (locked == 0) + tty_unlock(tp); return; } @@ -821,7 +826,8 @@ ucom_inwakeup(struct tty *tp) (sc->sc_flag & UCOM_FLAG_RTS_IFLOW)) ucom_rts(sc, 0); - tty_unlock(tp); + if (locked == 0) + tty_unlock(tp); } static int _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"