• Neal Cardwell's avatar
    tcp: Simplify tcp_set_congestion_control() load=false case · 5050bef8
    Neal Cardwell authored
    Simplify tcp_set_congestion_control() by removing the initialization
    code path for the !load case.
    
    There are only two call sites for tcp_set_congestion_control(). The
    EBPF call site is the only one that passes load=false; it also passes
    cap_net_admin=true. Because of that, the exact same behavior can be
    achieved by removing the special if (!load) branch of the logic. Both
    before and after this commit, the EBPF case will call
    bpf_try_module_get(), and if that succeeds then call
    tcp_reinit_congestion_control() or if that fails then return EBUSY.
    
    Note that this returns the logic to a structure very similar to the
    structure before:
      commit 91b5b21c ("bpf: Add support for changing congestion control")
    except that the CAP_NET_ADMIN status is passed in as a function
    argument.
    
    This clean-up was suggested by Martin KaFai Lau.
    Suggested-by: default avatarMartin KaFai Lau <kafai@fb.com>
    Signed-off-by: default avatarNeal Cardwell <ncardwell@google.com>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Cc: Lawrence Brakmo <brakmo@fb.com>
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: Yuchung Cheng <ycheng@google.com>
    Cc: Kevin Yang <yyd@google.com>
    5050bef8
tcp_cong.c 11.4 KB