From patchwork Mon Jun 4 22:29:51 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yousuk Seung X-Patchwork-Id: 925265 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="cx6rioTr"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4108kt2Hnrz9s1p for ; Tue, 5 Jun 2018 08:29:58 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751368AbeFDW3z (ORCPT ); Mon, 4 Jun 2018 18:29:55 -0400 Received: from mail-pg0-f67.google.com ([74.125.83.67]:43181 "EHLO mail-pg0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751232AbeFDW3y (ORCPT ); Mon, 4 Jun 2018 18:29:54 -0400 Received: by mail-pg0-f67.google.com with SMTP id p8-v6so144069pgq.10 for ; Mon, 04 Jun 2018 15:29:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=TtVeeYvbT0JilXbHaCvX7bzgX+zI1NlLo+0USoonKXs=; b=cx6rioTroDguF7DvLyieRSB+eUepcf73hKu0wxjpGf1/F82yGBQaqlkZ/4M1bnoi7A VR7y2a37TuN+xki4hKeHcYB3vzUIHDb0K6DQo6hJFf+UUhcskArB8WJZH6AOyAgNfdpc 9jewt+gH6aFB2f2aSI0Dx1Cp7c8/oYbStEYAQ++wydeLR6XqCYt8AL2WreTMv8f0QqBl XBP+kEptEthXhl+UMc/o4wv/C0NYgH1ZQMHy2VNFvNNr551ldZMRY8VWHyvts8b+6lyr aDwYOEl6V0T1DPL+8wgh2chuFhnmkM6KUoFSVfbuVOId8I8v2IogEi9aSaTNm6rgBi93 Ezsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=TtVeeYvbT0JilXbHaCvX7bzgX+zI1NlLo+0USoonKXs=; b=WFGiuVwgJ/7oQ1LGfPu+WMhVfLrq2rjyfD2BNVAaEOgjwZ+ESCY92MYZ/ynf7k/7QW LDTwlpqdnZOxQuDLH+er4l7QqF0ZMtLtcrZCILKSSmIe0VGwMj6zTk8cYvQyRvq9/aK7 Wi8DwPLPd+D/vlkb3FqmiGX5oTmVi/a6252PASKl8IZTCqd7a8EZuKlPuYHq3rt9cXWG xwIGaNSZuRedHw5Sfse+9vjS78i1iwuH+IlD6kQq5mzY9pJTtpsq8/r9FWk9uQoBO8r0 H8pBNt6bJvRQUIxsbvCHS3nwRkaYrkuxz+rhidsjp9nohR8h1K6vVQQ432F/pVL93ywN neug== X-Gm-Message-State: ALKqPwfpEmCZNE32WeZTMniM1HrzOpDoJqIgZ7c5wyuFMa0Q3jE/tvgR 9DoKDghXyLGhpFg8AhbvQ+NzC19TFn4= X-Google-Smtp-Source: ADUXVKJcmqcZVjvXAY+oqozu6B9JW++FExtkQotVrW5nBqeBeVZpzaC8wOtUcgg6XBoLJxNM7Nhyzg== X-Received: by 2002:a63:be4f:: with SMTP id g15-v6mr18929752pgo.115.1528151393843; Mon, 04 Jun 2018 15:29:53 -0700 (PDT) Received: from ysseung.svl.corp.google.com ([2620:15c:2c4:201:47c8:2bc4:30f4:c8]) by smtp.gmail.com with ESMTPSA id g4-v6sm41686167pfg.38.2018.06.04.15.29.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 04 Jun 2018 15:29:53 -0700 (PDT) From: Yousuk Seung To: David Miller Cc: netdev@vger.kernel.org, Yousuk Seung , Neal Cardwell , Yuchung Cheng , Eric Dumazet Subject: [PATCH net-next] tcp: refactor tcp_ecn_check_ce to remove sk type cast Date: Mon, 4 Jun 2018 15:29:51 -0700 Message-Id: <20180604222951.229735-1-ysseung@google.com> X-Mailer: git-send-email 2.17.1.1185.g55be947832-goog Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Refactor tcp_ecn_check_ce and __tcp_ecn_check_ce to accept struct sock* instead of tcp_sock* to clean up type casts. This is a pure refactor patch. Signed-off-by: Yousuk Seung Signed-off-by: Neal Cardwell Signed-off-by: Yuchung Cheng Signed-off-by: Eric Dumazet Acked-by: Soheil Hassas Yeganeh --- net/ipv4/tcp_input.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index d5ffb573ca4d..355d3dffd021 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -254,8 +254,10 @@ static void tcp_ecn_withdraw_cwr(struct tcp_sock *tp) tp->ecn_flags &= ~TCP_ECN_DEMAND_CWR; } -static void __tcp_ecn_check_ce(struct tcp_sock *tp, const struct sk_buff *skb) +static void __tcp_ecn_check_ce(struct sock *sk, const struct sk_buff *skb) { + struct tcp_sock *tp = tcp_sk(sk); + switch (TCP_SKB_CB(skb)->ip_dsfield & INET_ECN_MASK) { case INET_ECN_NOT_ECT: /* Funny extension: if ECT is not set on a segment, @@ -263,31 +265,31 @@ static void __tcp_ecn_check_ce(struct tcp_sock *tp, const struct sk_buff *skb) * it is probably a retransmit. */ if (tp->ecn_flags & TCP_ECN_SEEN) - tcp_enter_quickack_mode((struct sock *)tp, 1); + tcp_enter_quickack_mode(sk, 1); break; case INET_ECN_CE: - if (tcp_ca_needs_ecn((struct sock *)tp)) - tcp_ca_event((struct sock *)tp, CA_EVENT_ECN_IS_CE); + if (tcp_ca_needs_ecn(sk)) + tcp_ca_event(sk, CA_EVENT_ECN_IS_CE); if (!(tp->ecn_flags & TCP_ECN_DEMAND_CWR)) { /* Better not delay acks, sender can have a very low cwnd */ - tcp_enter_quickack_mode((struct sock *)tp, 1); + tcp_enter_quickack_mode(sk, 1); tp->ecn_flags |= TCP_ECN_DEMAND_CWR; } tp->ecn_flags |= TCP_ECN_SEEN; break; default: - if (tcp_ca_needs_ecn((struct sock *)tp)) - tcp_ca_event((struct sock *)tp, CA_EVENT_ECN_NO_CE); + if (tcp_ca_needs_ecn(sk)) + tcp_ca_event(sk, CA_EVENT_ECN_NO_CE); tp->ecn_flags |= TCP_ECN_SEEN; break; } } -static void tcp_ecn_check_ce(struct tcp_sock *tp, const struct sk_buff *skb) +static void tcp_ecn_check_ce(struct sock *sk, const struct sk_buff *skb) { - if (tp->ecn_flags & TCP_ECN_OK) - __tcp_ecn_check_ce(tp, skb); + if (tcp_sk(sk)->ecn_flags & TCP_ECN_OK) + __tcp_ecn_check_ce(sk, skb); } static void tcp_ecn_rcv_synack(struct tcp_sock *tp, const struct tcphdr *th) @@ -710,7 +712,7 @@ static void tcp_event_data_recv(struct sock *sk, struct sk_buff *skb) } icsk->icsk_ack.lrcvtime = now; - tcp_ecn_check_ce(tp, skb); + tcp_ecn_check_ce(sk, skb); if (skb->len >= 128) tcp_grow_window(sk, skb); @@ -4434,7 +4436,7 @@ static void tcp_data_queue_ofo(struct sock *sk, struct sk_buff *skb) u32 seq, end_seq; bool fragstolen; - tcp_ecn_check_ce(tp, skb); + tcp_ecn_check_ce(sk, skb); if (unlikely(tcp_try_rmem_schedule(sk, skb, skb->truesize))) { NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPOFODROP);