Beispiel #1
0
static void
resolution_failed(struct adapter *sc, struct l2t_entry *e)
{
	struct tom_data *td = sc->tom_softc;

	mtx_assert(&e->lock, MA_OWNED);

	mtx_lock(&td->unsent_wr_lock);
	STAILQ_CONCAT(&td->unsent_wr_list, &e->wr_list);
	mtx_unlock(&td->unsent_wr_lock);

	taskqueue_enqueue(taskqueue_thread, &td->reclaim_wr_resources);
}
Beispiel #2
0
void
flowadv_add(struct flowadv_fclist *fcl)
{
	if (STAILQ_EMPTY(fcl))
		return;

	lck_mtx_lock_spin(&fadv_lock);

	STAILQ_CONCAT(&fadv_list, fcl);
	VERIFY(!STAILQ_EMPTY(&fadv_list));

	if (!fadv_active && fadv_thread != THREAD_NULL)
		wakeup_one((caddr_t)&fadv_list);

	lck_mtx_unlock(&fadv_lock);
}
Beispiel #3
0
static inline void cleanup_s(queue_s *queue) {
	if (STAILQ_EMPTY(queue)) return;
	STAILQ_CONCAT(&free_entries_s, queue);
}