{"id":808664,"url":"http://patchwork.ozlabs.org/api/1.0/patches/808664/?format=json","project":{"id":7,"url":"http://patchwork.ozlabs.org/api/1.0/projects/7/?format=json","name":"Linux network development","link_name":"netdev","list_id":"netdev.vger.kernel.org","list_email":"netdev@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null},"msgid":"<20170901115604.27513-6-clabbe.montjoie@gmail.com>","date":"2017-09-01T11:56:04","name":"[v2,5/5] net: mdio-mux: fix unbalanced put_device","commit_ref":null,"pull_url":null,"state":"accepted","archived":true,"hash":"072ef4a5fc0c9b70b7fc6a320b1d07eefc4c5062","submitter":{"id":64152,"url":"http://patchwork.ozlabs.org/api/1.0/people/64152/?format=json","name":"Corentin Labbe","email":"clabbe.montjoie@gmail.com"},"delegate":{"id":34,"url":"http://patchwork.ozlabs.org/api/1.0/users/34/?format=json","username":"davem","first_name":"David","last_name":"Miller","email":"davem@davemloft.net"},"mbox":"http://patchwork.ozlabs.org/project/netdev/patch/20170901115604.27513-6-clabbe.montjoie@gmail.com/mbox/","series":[{"id":1013,"url":"http://patchwork.ozlabs.org/api/1.0/series/1013/?format=json","date":"2017-09-01T11:56:01","name":"net: mdio-mux: Misc fix","version":2,"mbox":"http://patchwork.ozlabs.org/series/1013/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/808664/checks/","tags":{},"headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"l2nyDb/J\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xkHpT4tMQz9sRV\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri,  1 Sep 2017 21:59:13 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751918AbdIAL7B (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tFri, 1 Sep 2017 07:59:01 -0400","from mail-wr0-f195.google.com ([209.85.128.195]:35252 \"EHLO\n\tmail-wr0-f195.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751973AbdIAL6T (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Fri, 1 Sep 2017 07:58:19 -0400","by mail-wr0-f195.google.com with SMTP id a47so3578wra.2;\n\tFri, 01 Sep 2017 04:58:18 -0700 (PDT)","from Red.local (LFbn1-1-65-78.w90-118.abo.wanadoo.fr.\n\t[90.118.156.78]) by smtp.googlemail.com with ESMTPSA id\n\tp80sm3292wmf.13.2017.09.01.04.58.17\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tFri, 01 Sep 2017 04:58:17 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20161025;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=8VJWXzlTgtoWB6G6ZFoyXEF+RflzUmXRwen/GWujV5U=;\n\tb=l2nyDb/JX2i508wSce/C3BbjjE+TvKaZ7orcyOvJfEv0qHfMUBrCaQhp86LEds1c+3\n\tZyTKpnIjj0JQaU6RiiCIO4fyXzUM87KEmeb2jwUp7K9RdI+V5z4VUHo7zi4BMhCAplPo\n\tr6GPMvnIXZjaNv+5c8p/9n8wKU633lRgMccz3Kfbq2pt7BsrOFgm52EWl2pyM1QcqiWc\n\tYAOJOEYYLjAMn76h/U7TYaI8UEqiXh24jdPVhs9Fq2yrmEGlsSGk9O7QrpzGyPeYQiTV\n\tk1O4fmFwLQqrOwYQjeeLFgae8KQXBAxwY/EKMfT6Unk86kGTrAEu5MpfQASmdbQewgg8\n\tKeRA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=8VJWXzlTgtoWB6G6ZFoyXEF+RflzUmXRwen/GWujV5U=;\n\tb=OtWwrdzpjE0jBD96wUOJIg84jSd7itwsyYhxvgNuQFrHqazxZbR8brycejI9TncF13\n\twsOBTcU4NchFE7/aJKVehf5hWKYpBO0QDMMoep3TIo2DtEraivfdC4KxUX0mJEvChjCZ\n\tCqiP1535IlR4F5gfcppLZAzQtuKeXdiflnLS9DLax525oDyHE1uYUvBrMgU3CkK3Zv7f\n\t2MrNj3kpWJKHpVxAtWSeTBfX2dHIFqSu0F5IbgQXulfLDIe/SevsINR3K/MvoM8SNGJE\n\tHRLjmfpEibmoM+GMBzw4mH8L3U4Fg3TrLYEioKM8h5rA+2KTZ5mHqFLqgGBJlacqZkie\n\tClNw==","X-Gm-Message-State":"AHPjjUgHAN3ToqpQTmotRm9O3K6T7/8j9FpQDlgJmKBenEV3raZ3N7uZ\n\tBSg8urN6LxuvDA==","X-Google-Smtp-Source":"ADKCNb6PmpEqKBRi/p+cj/PStVFp1CuRgmMkNTl0+S88kV7WBWC3If9vNHMLIvN8TjGUunkvWQd4vw==","X-Received":"by 10.223.137.17 with SMTP id s17mr1090541wrs.285.1504267097982; \n\tFri, 01 Sep 2017 04:58:17 -0700 (PDT)","From":"Corentin Labbe <clabbe.montjoie@gmail.com>","To":"andrew@lunn.ch, f.fainelli@gmail.com","Cc":"netdev@vger.kernel.org, linux-kernel@vger.kernel.org,\n\tCorentin Labbe <clabbe.montjoie@gmail.com>","Subject":"[PATCH v2 5/5] net: mdio-mux: fix unbalanced put_device","Date":"Fri,  1 Sep 2017 13:56:04 +0200","Message-Id":"<20170901115604.27513-6-clabbe.montjoie@gmail.com>","X-Mailer":"git-send-email 2.13.5","In-Reply-To":"<20170901115604.27513-1-clabbe.montjoie@gmail.com>","References":"<20170901115604.27513-1-clabbe.montjoie@gmail.com>","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"},"content":"mdio_mux_uninit() call put_device (unconditionally) because of\nof_mdio_find_bus() in mdio_mux_init.\nBut of_mdio_find_bus is only called if mux_bus is empty.\nIf mux_bus is set, mdio_mux_uninit will print a \"refcount_t: underflow\"\ntrace.\n\nThis patch add a get_device in the other branch of \"if (mux_bus)\".\n\nSigned-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>\n---\n drivers/net/phy/mdio-mux.c | 6 ++----\n 1 file changed, 2 insertions(+), 4 deletions(-)","diff":"diff --git a/drivers/net/phy/mdio-mux.c b/drivers/net/phy/mdio-mux.c\nindex 282828551bdd..6f75e9f27fed 100644\n--- a/drivers/net/phy/mdio-mux.c\n+++ b/drivers/net/phy/mdio-mux.c\n@@ -116,6 +116,7 @@ int mdio_mux_init(struct device *dev,\n \t} else {\n \t\tparent_bus_node = NULL;\n \t\tparent_bus = mux_bus;\n+\t\tget_device(&parent_bus->dev);\n \t}\n \n \tpb = devm_kzalloc(dev, sizeof(*pb), GFP_KERNEL);\n@@ -184,9 +185,7 @@ int mdio_mux_init(struct device *dev,\n \tdev_err(dev, \"Error: No acceptable child buses found\\n\");\n \tdevm_kfree(dev, pb);\n err_pb_kz:\n-\t/* balance the reference of_mdio_find_bus() took */\n-\tif (!mux_bus)\n-\t\tput_device(&parent_bus->dev);\n+\tput_device(&parent_bus->dev);\n err_parent_bus:\n \tof_node_put(parent_bus_node);\n \treturn ret_val;\n@@ -204,7 +203,6 @@ void mdio_mux_uninit(void *mux_handle)\n \t\tcb = cb->next;\n \t}\n \n-\t/* balance the reference of_mdio_find_bus() in mdio_mux_init() took */\n \tput_device(&pb->mii_bus->dev);\n }\n EXPORT_SYMBOL_GPL(mdio_mux_uninit);\n","prefixes":["v2","5/5"]}