From patchwork Thu Nov 3 17:40:20 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 690951 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 3t8skM3nGTz9t1F for ; Fri, 4 Nov 2016 04:42:51 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=WGC52gZh; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933106AbcKCRmJ (ORCPT ); Thu, 3 Nov 2016 13:42:09 -0400 Received: from mail-lf0-f65.google.com ([209.85.215.65]:34854 "EHLO mail-lf0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758223AbcKCRlI (ORCPT ); Thu, 3 Nov 2016 13:41:08 -0400 Received: by mail-lf0-f65.google.com with SMTP id p100so3196708lfg.2; Thu, 03 Nov 2016 10:41:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=A7cSSZH+tXS1g5VS2bRJs80EhKewp8ZX7+CW/dHJjOc=; b=WGC52gZhMrHovy8yuf1tXIxVy/Ev7UozQpeZktQ09EoAY+Br7lKQhy1wfG9gcPLPgl 4Epz3FH5PN8PlbuOXK2pSawci/Cedh/S1YpLpL6Q08fJJb4gYd8y4yzYCGYI/Eo8mXNK XlNVS+fMACA2DX5hV/HzILvbG46LHZkBXqyWMxkKoLYvIg9SLnHhUVE0ry/AMcmKXwE7 3LSGsjd6BBKyZ4iu3sS+QR2dDRp0DjSa7TXLqCpqXeIQyV2kSrroKA3hl1HXYNXQF7Rr M77maAe37WldzE9hfPu1mPKUnxbNM8irB/Zn4oL+VHHfebE+ScSY5cB7Kz0bngX4XQsE xeiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=A7cSSZH+tXS1g5VS2bRJs80EhKewp8ZX7+CW/dHJjOc=; b=CG492c9/z9CMxWvyufFU+hTNn4BpVG5v0kjhcNFjc7Xbdu4ZwJqLKUVhmyHDPSeZiy dUwbPtjk0TyWBv9iTohHVMwvuIp80NmkE3LL/4xOxTt4w/0TVkPs1EISucJGZCtu7+// oYpInW1OEE3U+Ms+TI5l65lFQrYcRXA01jKKoqPmBSZqPZ9ksPzMpXNIHb7SXkgGKse5 3UALyv6VpJNwA1RqRMbB9ns/19EVlajnppQ7m8f9RWdzDLfv/2iGRIX+N/myqeLz/V3i wOU4o6BFeEy+M8zGJr9KEWQsbwIj0M0xoFw/zJjoCITdaxsfnxJ4oWbF7X+fPz7IbMla AdwA== X-Gm-Message-State: ABUngvei3qzW5EyiIm7UmsNqz4EPqtz01jNh3yelRAkCJDQFk4qa3p06boA5K/kRHZoDYA== X-Received: by 10.25.18.90 with SMTP id h87mr3956889lfi.91.1478194866625; Thu, 03 Nov 2016 10:41:06 -0700 (PDT) Received: from xi.terra (c-04aadb54.07-184-6d6c6d4.cust.bredbandsbolaget.se. [84.219.170.4]) by smtp.gmail.com with ESMTPSA id u3sm1594743lja.8.2016.11.03.10.41.05 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 03 Nov 2016 10:41:05 -0700 (PDT) Received: from johan by xi.terra with local (Exim 4.87) (envelope-from ) id 1c2M0k-0007hR-J8; Thu, 03 Nov 2016 18:41:10 +0100 From: Johan Hovold To: Florian Fainelli , Mugunthan V N , Yisen Zhuang , Salil Mehta , "David S. Miller" Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , Grygorii Strashko , linux-omap@vger.kernel.org Subject: [PATCH net v2 2/4] net: ethernet: ti: cpsw: fix device and of_node leaks Date: Thu, 3 Nov 2016 18:40:20 +0100 Message-Id: <1478194822-29545-3-git-send-email-johan@kernel.org> X-Mailer: git-send-email 2.7.3 In-Reply-To: <1478194822-29545-1-git-send-email-johan@kernel.org> References: <1478194822-29545-1-git-send-email-johan@kernel.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Make sure to drop the references taken by of_get_child_by_name() and bus_find_device() before returning from cpsw_phy_sel(). Note that holding a reference to the cpsw-phy-sel device does not prevent the devres-managed private data from going away. Fixes: 5892cd135e16 ("drivers: net: cpsw-phy-sel: Add new driver...") Cc: Mugunthan V N Cc: Grygorii Strashko Cc: linux-omap@vger.kernel.org Signed-off-by: Johan Hovold Reviewed-by: Grygorii Strashko --- drivers/net/ethernet/ti/cpsw-phy-sel.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/ethernet/ti/cpsw-phy-sel.c b/drivers/net/ethernet/ti/cpsw-phy-sel.c index 054a8dd23dae..ba1e45ff6aae 100644 --- a/drivers/net/ethernet/ti/cpsw-phy-sel.c +++ b/drivers/net/ethernet/ti/cpsw-phy-sel.c @@ -176,9 +176,12 @@ void cpsw_phy_sel(struct device *dev, phy_interface_t phy_mode, int slave) } dev = bus_find_device(&platform_bus_type, NULL, node, match); + of_node_put(node); priv = dev_get_drvdata(dev); priv->cpsw_phy_sel(priv, phy_mode, slave); + + put_device(dev); } EXPORT_SYMBOL_GPL(cpsw_phy_sel);