1848 {
1849 usbser_open_queues_fini(pp);
1850
1851 usbser_open_fini(pp);
1852 }
1853
1854
1855 /*
1856 *
1857 * thread management
1858 * -----------------
1859 *
1860 *
1861 * dispatch a thread
1862 */
1863 static void
1864 usbser_thr_dispatch(usbser_thread_t *thr)
1865 {
1866 usbser_port_t *pp = thr->thr_port;
1867 usbser_state_t *usp = pp->port_usp;
1868 /*LINTED E_FUNC_SET_NOT_USED*/
1869 int rval;
1870
1871 ASSERT(mutex_owned(&pp->port_mutex));
1872 ASSERT((thr->thr_flags & USBSER_THR_RUNNING) == 0);
1873
1874 thr->thr_flags = USBSER_THR_RUNNING;
1875
1876 rval = ddi_taskq_dispatch(usp->us_taskq, thr->thr_func, thr->thr_arg,
1877 DDI_SLEEP);
1878 ASSERT(rval == DDI_SUCCESS);
1879 }
1880
1881
1882 /*
1883 * cancel a thread
1884 */
1885 static void
1886 usbser_thr_cancel(usbser_thread_t *thr)
1887 {
1888 usbser_port_t *pp = thr->thr_port;
|
1848 {
1849 usbser_open_queues_fini(pp);
1850
1851 usbser_open_fini(pp);
1852 }
1853
1854
1855 /*
1856 *
1857 * thread management
1858 * -----------------
1859 *
1860 *
1861 * dispatch a thread
1862 */
1863 static void
1864 usbser_thr_dispatch(usbser_thread_t *thr)
1865 {
1866 usbser_port_t *pp = thr->thr_port;
1867 usbser_state_t *usp = pp->port_usp;
1868 int rval;
1869
1870 ASSERT(mutex_owned(&pp->port_mutex));
1871 ASSERT((thr->thr_flags & USBSER_THR_RUNNING) == 0);
1872
1873 thr->thr_flags = USBSER_THR_RUNNING;
1874
1875 rval = ddi_taskq_dispatch(usp->us_taskq, thr->thr_func, thr->thr_arg,
1876 DDI_SLEEP);
1877 ASSERT(rval == DDI_SUCCESS);
1878 }
1879
1880
1881 /*
1882 * cancel a thread
1883 */
1884 static void
1885 usbser_thr_cancel(usbser_thread_t *thr)
1886 {
1887 usbser_port_t *pp = thr->thr_port;
|