Module Name: src Committed By: mrg Date: Mon May 6 23:47:39 UTC 2019
Modified Files: src/sys/dev/usb: umodem_common.c umodemvar.h Log Message: revert most of: >fix umodem(4) detach: > >- ucom(4) needs kpreempt disabled around softint_schedule() >- switch a copied printf() to aprint_error_dev() >- use static normally in umodem_common.c >- remove unused sc_openings in softc, convert sc_dying to real bool >- add sc_refcnt, sc_lock and sc_detach_cv to softc. usage is: > - sc_dying is protected by sc_lock > - sc_detach_cv is matched with sc_lock for cv operations > - sc_refcnt is increased in open and decreased in close, any time > it is decreased, it is checked for less than zero, and a broadcast > performed on sc_detach_cv. detach waits for sc_refcnt. >- umodem_param() and umodem_set() check for sc_dying > >this fixes pullout out an open ucom@umodem. > >@skrll. > >XXX: pullup it only fixes the issue by chance (slightly delays, which allows task to run, but there is no guarantee. real fix is incoming for all ucom parents. To generate a diff of this commit: cvs rdiff -u -r1.28 -r1.29 src/sys/dev/usb/umodem_common.c cvs rdiff -u -r1.10 -r1.11 src/sys/dev/usb/umodemvar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.