lkml.org 
[lkml]   [2022]   [Aug]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 17/32] tcp: Fix a data-race around sysctl_tcp_invalid_ratelimit.
    Date
    From: Kuniyuki Iwashima <kuniyu@amazon.com>

    [ Upstream commit 2afdbe7b8de84c28e219073a6661080e1b3ded48 ]

    While reading sysctl_tcp_invalid_ratelimit, it can be changed
    concurrently. Thus, we need to add READ_ONCE() to its reader.

    Fixes: 032ee4236954 ("tcp: helpers to mitigate ACK loops by rate-limiting out-of-window dupacks")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    net/ipv4/tcp_input.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
    index 04788bd5e82c..38412d93400a 100644
    --- a/net/ipv4/tcp_input.c
    +++ b/net/ipv4/tcp_input.c
    @@ -3420,7 +3420,8 @@ static bool __tcp_oow_rate_limited(struct net *net, int mib_idx,
    if (*last_oow_ack_time) {
    s32 elapsed = (s32)(tcp_jiffies32 - *last_oow_ack_time);

    - if (0 <= elapsed && elapsed < net->ipv4.sysctl_tcp_invalid_ratelimit) {
    + if (0 <= elapsed &&
    + elapsed < READ_ONCE(net->ipv4.sysctl_tcp_invalid_ratelimit)) {
    NET_INC_STATS(net, mib_idx);
    return true; /* rate-limited: don't send yet! */
    }
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-08-09 20:08    [W:2.792 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site