On Thu, Jun 25, 2020 at 3:54 AM Vitaliy Makkoveev <[email protected]> wrote: > ifp = ifunit(name); > if (ifp == NULL) > return (ENXIO); > + ifp->if_dying = 1;
Reference counting, plus an explicit tear-down window, and wait period, like you've proposed sounds like a good idea. You'll probably want to make if_dying volatile or cast it to that so that the compiler doesn't reorder it. But I wonder, at this point, why not go full-on srp/rcu?
