• Eric Dumazet's avatar
    net: devinet: Reduce refcount before grace period · 9d40c84c
    Eric Dumazet authored
    Currently, the inetdev_destroy() function waits for an RCU grace period
    before decrementing the refcount and freeing memory. This causes a delay
    with a new RCU configuration that tries to save power, which results in the
    network interface disappearing later than expected. The resulting delay
    causes test failures on ChromeOS.
    
    Refactor the code such that the refcount is freed before the grace period
    and memory is freed after. With this a ChromeOS network test passes that
    does 'ip netns del' and polls for an interface disappearing, now passes.
    Reported-by: default avatarJoel Fernandes (Google) <joel@joelfernandes.org>
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Signed-off-by: default avatarJoel Fernandes (Google) <joel@joelfernandes.org>
    Cc: David Ahern <dsahern@kernel.org>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
    Cc: Jakub Kicinski <kuba@kernel.org>
    Cc: Paolo Abeni <pabeni@redhat.com>
    Cc: <netdev@vger.kernel.org>
    Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
    9d40c84c
devinet.c 69 KB