From patchwork Mon Sep 30 20:29:11 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andi Kleen X-Patchwork-Id: 279256 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 62EC12C00EF for ; Tue, 1 Oct 2013 06:31:34 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932089Ab3I3Uaw (ORCPT ); Mon, 30 Sep 2013 16:30:52 -0400 Received: from mga02.intel.com ([134.134.136.20]:33002 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756523Ab3I3U3Q (ORCPT ); Mon, 30 Sep 2013 16:29:16 -0400 Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga101.jf.intel.com with ESMTP; 30 Sep 2013 13:29:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.90,1010,1371106800"; d="scan'208";a="412029775" Received: from tassilo.jf.intel.com (HELO tassilo.localdomain) ([10.7.201.86]) by orsmga002.jf.intel.com with ESMTP; 30 Sep 2013 13:29:14 -0700 Received: by tassilo.localdomain (Postfix, from userid 1000) id A503F301114; Mon, 30 Sep 2013 13:29:14 -0700 (PDT) From: Andi Kleen To: linux-kernel@vger.kernel.org Cc: Andi Kleen , netdev@vger.kernel.org Subject: [PATCH 10/11] tcp: Always set options to 0 before calling tcp_established_options Date: Mon, 30 Sep 2013 13:29:11 -0700 Message-Id: <1380572952-30729-11-git-send-email-andi@firstfloor.org> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1380572952-30729-1-git-send-email-andi@firstfloor.org> References: <1380572952-30729-1-git-send-email-andi@firstfloor.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Andi Kleen tcp_established_options assumes opts->options is 0 before calling, as it read modify writes it. For the tcp_current_mss() case the opts structure is not zeroed, so this can be done with uninitialized values. This is ok, because ->options is not read in this path. But it's still better to avoid the operation on the uninitialized field. This shuts up a static code analyzer, and presumably may help the optimizer. Cc: netdev@vger.kernel.org Signed-off-by: Andi Kleen --- net/ipv4/tcp_output.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 7c83cb8..f3ed78d 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c @@ -637,6 +637,8 @@ static unsigned int tcp_established_options(struct sock *sk, struct sk_buff *skb unsigned int size = 0; unsigned int eff_sacks; + opts->options = 0; + #ifdef CONFIG_TCP_MD5SIG *md5 = tp->af_specific->md5_lookup(sk, sk); if (unlikely(*md5)) {