Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Oct 2004 17:39:14 +0200
From:      Andre Oppermann <andre@freebsd.org>
To:        Sam Leffler <sam@errno.com>
Cc:        cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/sys protosw.h src/sys/kern  uipc_domain.cuipc_socket2.c
Message-ID:  <41753522.1E39FEAE@freebsd.org>
References:  <200410191513.i9JFDUbf072176@repoman.freebsd.org> <417532A2.9000901@errno.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Sam Leffler wrote:
> 
> Andre Oppermann wrote:
> > andre       2004-10-19 15:13:30 UTC
> >
> >   FreeBSD src repository
> >
> >   Modified files:
> >     sys/sys              protosw.h
> >     sys/kern             uipc_domain.c uipc_socket2.c
> >   Log:
> >   Support for dynamically loadable and unloadable protocols within existing protocol
> >   families.
> >
> 
> I don't recall seeing this posted anywhere for comment.  I have some
> concerns about this general topic and this code seems incomplete (e.g. I
> see no locking).

Locking is not needed because there are no dead moments in transitioning
from unregistered to registered and back.  All calls to any of the protocol
specific functions will return a valid result (even if it is only EOPNOTSUPP).
There is no list manipulation going on.

The caller of the function is required to assure that no dangeling sockets,
references or memory allocations are left behind after unregistering.  It's
simply impossible to solve otherwise.  For IPDIVERT which I have converted
this works very well (it will simply refuse to unload if a divert socket is
open).

What remaining concerns do you have?

-- 
Andre



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?41753522.1E39FEAE>