FreeBSD/sys/dev/cxgbe/t4_main.c
/*
 * Tell if_ioctl and if_init that the VI is going away.  This is
 * special variant of begin_synchronized_op and must be paired with a
 * call to end_synchronized_op.
 */
Tell if_ioctl and if_init that the VI is going away.  This is
special variant of begin_synchronized_op and must be paired with a
call to end_synchronized_op.
Tell if_ioctl and if_init that the VI is going away . This is special variant of begin_synchronized_op and must be paired with a call to end_synchronized_op .
void
doom_vi(struct adapter *sc, struct vi_info *vi)
{
	ADAPTER_LOCK(sc);
	SET_DOOMED(vi);
	wakeup(&sc->flags);
	while (IS_BUSY(sc))
		mtx_sleep(&sc->flags, &sc->sc_lock, 0, "t4detach", 0);
	SET_BUSY(sc);
#ifdef INVARIANTS
	sc->last_op = "t4detach";
	sc->last_op_thr = curthread;
	sc->last_op_flags = 0;
#endif
	ADAPTER_UNLOCK(sc);
}
void doom_vi ( struct adapter * sc , struct vi_info * vi ) { ADAPTER_LOCK ( sc ) ; SET_DOOMED ( vi ) ; wakeup ( & sc -> flags ) ; while ( IS_BUSY ( sc ) ) mtx_sleep ( & sc -> flags , & sc -> sc_lock , 0 , " " , 0 ) ; SET_BUSY ( sc ) ; #ifdef INVARIANTS sc -> last_op = " " ; sc -> last_op_thr = curthread ; sc -> last_op_flags = 0 ; #endif ADAPTER_UNLOCK ( sc ) ; }
Tell if_ioctl and if_init that the VI is going away.
Tell if_ioctl and if_init that the VI is going away .