Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/netmap/netmap.c
Show First 20 Lines • Show All 4,323 Lines • ▼ Show 20 Lines | if (busy + mbq_len(q) >= kring->nkr_num_slots - 1) { | ||||
nm_prdis(2, "%s %d bufs in queue", na->name, mbq_len(q)); | nm_prdis(2, "%s %d bufs in queue", na->name, mbq_len(q)); | ||||
/* notify outside the lock */ | /* notify outside the lock */ | ||||
m = NULL; | m = NULL; | ||||
error = 0; | error = 0; | ||||
} | } | ||||
mbq_unlock(q); | mbq_unlock(q); | ||||
done: | done: | ||||
if (m) | if (m) { | ||||
if_inc_counter(ifp, IFCOUNTER_OQDROPS, 1); | |||||
m_freem(m); | m_freem(m); | ||||
} | |||||
/* unconditionally wake up listeners */ | /* unconditionally wake up listeners */ | ||||
kring->nm_notify(kring, 0); | kring->nm_notify(kring, 0); | ||||
/* this is normally netmap_notify(), but for nics | /* this is normally netmap_notify(), but for nics | ||||
* connected to a bridge it is netmap_bwrap_intr_notify(), | * connected to a bridge it is netmap_bwrap_intr_notify(), | ||||
* that possibly forwards the frames through the switch | * that possibly forwards the frames through the switch | ||||
*/ | */ | ||||
return (error); | return (error); | ||||
▲ Show 20 Lines • Show All 285 Lines • Show Last 20 Lines |