Re: git: a730d82378d3 - main - tcp: fix RACK and BBR when using VIMAGE enabled kernel
Date: Tue, 20 Jul 2021 00:59:30 UTC
> On 20 Jul 2021, at 08:03, Michael Tuexen <tuexen@freebsd.org> wrote:
>
> The branch main has been updated by tuexen:
>
> URL: https://cgit.FreeBSD.org/src/commit/?id=a730d82378d3cdf5356775ec0c23ad2ca40c5edb
>
> diff --git a/sys/netinet/tcp_stacks/rack_bbr_common.c b/sys/netinet/tcp_stacks/rack_bbr_common.c
> index baa267b43752..bf93359368f9 100644
> --- a/sys/netinet/tcp_stacks/rack_bbr_common.c
> +++ b/sys/netinet/tcp_stacks/rack_bbr_common.c
> @@ -508,16 +508,18 @@ skip_vnet:
> m_freem(m);
> m = m_save;
> }
> - if (no_vn == 0)
> + if (no_vn == 0) {
> CURVNET_RESTORE();
> + }
> INP_UNLOCK_ASSERT(inp);
> return(retval);
> }
> skipped_pkt:
> m = m_save;
> }
> - if (no_vn == 0)
> + if (no_vn == 0) {
> CURVNET_RESTORE();
> + }
> return(retval);
> }
Not to pick on this particular commit, but does anyone know why CURVNET_RESTORE os not defined such that it doesn't require wrapping with {}?
Looking through vnet.h I see that VNET_ASSERT, VNET_GLOBAL_EVENTHANDLER_REGISTER_TAG, and VNET_GLOBAL_EVENTHANDLER_REGISTER have a do { } while(0) wrapper but CURVNET_SET_QUIET, CURVNET_SET_VERBOSE, CURVNET_RESTORE, VNET_SYSINIT, and VNET_SYSUNINIT don't.
--
Daniel O'Connor
"The nice thing about standards is that there
are so many of them to choose from."
-- Andrew Tanenbaum