git: 0f9544d03e89 - main - iflib: Fix detach of pseudo interfaces
Mark Johnston
markj at freebsd.org
Fri Feb 19 22:14:29 UTC 2021
On Fri, Feb 19, 2021 at 10:11:31PM +0000, Mark Johnston wrote:
> The branch main has been updated by markj:
>
> URL: https://cgit.FreeBSD.org/src/commit/?id=0f9544d03e89d180f94a7a84b110ec7d2b6c625a
>
> commit 0f9544d03e89d180f94a7a84b110ec7d2b6c625a
> Author: Mark Johnston <markj at FreeBSD.org>
> AuthorDate: 2021-02-19 22:08:34 +0000
> Commit: Mark Johnston <markj at FreeBSD.org>
> CommitDate: 2021-02-19 22:10:41 +0000
>
> iflib: Fix detach of pseudo interfaces
>
> In commit 38bfc6dee33b we added an IFDI_DETACH() call to
> iflib_pseudo_deregister() since it looked like it was missing. One is
> present in the error-handling path of iflib_pseudo_register(). However,
> the detach actually comes from the DEVICE_DETACH() method for the
> above-mentioned device_t,
Sorry, missing context. A device is instantiated for each pseudo
interface, I believe just to satisfy iflib's internal interfaces.
> so now we're calling IFDI_DETACH() twice when
> destroying a pseudo interface.
>
> Fix the problem by not calling IFDI_DETACH() from the device detach
> routine. This way we can ensure that iflib de-initialization always
> happens in a consistent order. It also ensures that you can't do silly
> things like "devctl detach <pseudo ifnet>", which would previously
> detach the driver without tearing down the corresponding ifnet.
More information about the dev-commits-src-all
mailing list