Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp2971999imu; Sun, 9 Dec 2018 14:01:01 -0800 (PST) X-Google-Smtp-Source: AFSGD/WmoLZgXktEPPNhoImTHIxlRpWWpS2gqcqgKp/M9ZQrihDYik9kK/u2m4kDc5JwS2o49dYo X-Received: by 2002:a63:f241:: with SMTP id d1mr8863916pgk.2.1544392861902; Sun, 09 Dec 2018 14:01:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544392861; cv=none; d=google.com; s=arc-20160816; b=CWTBbNT2t4waiEX3J/aZCMq2pLne16Cs0k+KF9eMMB2kuDfBe314yFSOkAh1WgoS1i CsV7XspgXNKwAgGit5s6KcnAuNYe9dugOo+R7Y0/v+a2/dqwthwshUVpqj8e6rqtJHNC +H7qgeqAREU0Rvs8wGK6z14taZVQ8mQmyG6q3+9gIwejJMqqTKKOmsnfUO07tGwl9n9W wtKglsOIwmzNCD2A2+ADpblMT9LMNYKkYta9VsctGlsySxURN8XT66MVXF0SCNzUYDUl f+6mAMk+oV4A5m6y616iFUgU8NMh5xvTq1HGV0xu1OpZ+ZEq/fyzQ0wywPpsvk5ucer0 OFhw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:subject:message-id:date:cc:to :from:mime-version:content-transfer-encoding:content-disposition; bh=419gHvdTrrFrMOtbG4bM2KNjwlAYY83gcnPCPV6urWo=; b=j58quE2XFcmwtbZJFR057iITkSZLFWjhGNHhORohFthMWUd3lyCDcyZWw/4Qhq2wZp Y/bT++i2VuazzJZsVXGS+/TEFhL5hENEGkNd8GAk6olgDCeO+Ryvgva5FwhRoy73o27v tvSkTFOiDBaVXMyMCVwzwV0wznrR8TTduAZpeTMGtp8EniJc8zMtGR/4GwABQqLQCdgd b8T4+VrECcXQWyf5okHgu1W7BiApTFTcZlH1cw5+D3pckLY0ZbmCCd6hIRvq6Rv0XUCZ TDtgZyrBWlcC90IdSITmTHbuJcNPWnFpqfY+hvY7ZBvFaqUzYUj0g3salg06bUzZgo33 Nmew== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e189si8604528pfc.202.2018.12.09.14.00.46; Sun, 09 Dec 2018 14:01:01 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727104AbeLIV6X (ORCPT + 99 others); Sun, 9 Dec 2018 16:58:23 -0500 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:36246 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726754AbeLIVzj (ORCPT ); Sun, 9 Dec 2018 16:55:39 -0500 Received: from pub.yeoldevic.com ([81.174.156.145] helo=deadeye) by shadbolt.decadent.org.uk with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1gW730-0002ia-Rk; Sun, 09 Dec 2018 21:55:35 +0000 Received: from ben by deadeye with local (Exim 4.91) (envelope-from ) id 1gW72g-0003Wx-Sw; Sun, 09 Dec 2018 21:55:14 +0000 Content-Type: text/plain; charset="UTF-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 From: Ben Hutchings To: linux-kernel@vger.kernel.org, stable@vger.kernel.org CC: akpm@linux-foundation.org, "Sven Eckelmann" , "Simon Wunderlich" , "Marek Lindner" Date: Sun, 09 Dec 2018 21:50:33 +0000 Message-ID: X-Mailer: LinuxStableQueue (scripts by bwh) X-Patchwork-Hint: ignore Subject: [PATCH 3.16 217/328] batman-adv: Place kref_get for softif_vlan near use In-Reply-To: X-SA-Exim-Connect-IP: 81.174.156.145 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 3.16.62-rc1 review patch. If anyone has any objections, please let me know. ------------------ From: Sven Eckelmann commit df28ca6bb3282a4c8dc5b65f60b0136fc190ee52 upstream. It is hard to understand why the refcnt is increased when it isn't done near the actual place the new reference is used. So using kref_get right before the place which requires the reference and in the same function helps to avoid accidental problems caused by incorrect reference counting. Signed-off-by: Sven Eckelmann Signed-off-by: Marek Lindner Signed-off-by: Simon Wunderlich [bwh: Backported to 3.16: - s/kref_get/atomic_inc/ - s/_put/_free_ref/] Signed-off-by: Ben Hutchings --- net/batman-adv/soft-interface.c | 4 ++++ 1 file changed, 4 insertions(+) --- a/net/batman-adv/soft-interface.c +++ b/net/batman-adv/soft-interface.c @@ -529,6 +529,7 @@ int batadv_softif_create_vlan(struct bat } spin_lock_bh(&bat_priv->softif_vlan_list_lock); + atomic_inc(&vlan->refcount); hlist_add_head_rcu(&vlan->list, &bat_priv->softif_vlan_list); spin_unlock_bh(&bat_priv->softif_vlan_list_lock); @@ -539,6 +540,9 @@ int batadv_softif_create_vlan(struct bat bat_priv->soft_iface->dev_addr, vid, BATADV_NULL_IFINDEX, BATADV_NO_MARK); + /* don't return reference to new softif_vlan */ + batadv_softif_vlan_free_ref(vlan); + return 0; }