CVSROOT: /cvs Module name: src Changes by: d...@cvs.openbsd.org 2024/11/19 19:18:45
Modified files: sys/net : ifq.c ifq.h Log message: provide ifq_deq_set_oactive. ifq_deq_set_oactive is a variation on ifq_set_oactive that can be called inside an if_deq_begin "transaction". afresh@ found de(4) was calling ifq_set_oactive while holding the ifq mutex via ifq_deq_begin, which led to a panic because ifq_set_oactive also tries to take the ifq mutex. ifq_deq_set_oactive assumes the caller is already holding the mutex. de(4) is confusing, so it seemed simpler to add a small tweak to ifqs than try and do major surgery on such a hairy driver. tested by afresh@