CVSROOT:        /cvs
Module name:    src
Changes by:     m...@cvs.openbsd.org    2022/07/10 15:26:55

Modified files:
        sys/net        : if.c 

Log message:
if_detach() should wait until concurrent (*if_qstart)() interface start
routines finished.

Call ifq_barrier(9) just after we unlinked dying interface from the stack.
>From this point it is not accessible by if_get(9) and if_unit(9), and all
concurrent threads owning interface pointer finished. It also detached
from pseudo drivers like bridge(4). We only could have concurrent
(*if_qstart)() handlers running, so wait them and then continue
destruction.

Reported and tested by Hrvoje Popovski.

ok bluhm@

Reply via email to