From patchwork Mon Oct 14 17:40:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Torokhov X-Patchwork-Id: 1176554 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=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="UyAstIQE"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46sQnk6snZz9sP7 for ; Tue, 15 Oct 2019 04:40:42 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388626AbfJNRka (ORCPT ); Mon, 14 Oct 2019 13:40:30 -0400 Received: from mail-pl1-f193.google.com ([209.85.214.193]:37272 "EHLO mail-pl1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730046AbfJNRk3 (ORCPT ); Mon, 14 Oct 2019 13:40:29 -0400 Received: by mail-pl1-f193.google.com with SMTP id u20so8322913plq.4; Mon, 14 Oct 2019 10:40:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=gE9bQVVDhd4T/cCCR+Ovd6p8+MI1yTW0xdbW/J9w9Gw=; b=UyAstIQE0PN46Kkskyy2uxaH4f0d6TsN/vj+VzGLBWIJLXQgDpMEsxbdVBrzfgIH9z NDSAyqPJcMuHzfQoATESh2AqEt9eswpsHk72ncFwzPg1aMhESZ/CBgP9U2UUMWMMCDfH uXEZNcOGtWuG5aBUFDrnqQBeNza+FdXyDr0GmCIw1e8q4SuZPA2YDFGHeA+NAL3VNIX7 M8fBJBwnSAq1uhQmuZq0Yz2YV4xqjyWqQOLNvOtaPvRDm7p5xMZQuZ745+L3yRfCJJwA 5MxkQX7P/QyIAfzNL4SN7FLd6BDKe9LRttnZaEammxImLNswNPf77acTuWj0eTUtfvNi eVYg== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=gE9bQVVDhd4T/cCCR+Ovd6p8+MI1yTW0xdbW/J9w9Gw=; b=B3Cx48g+HOXFYqIHLylQslzbCa0vf8V0sOfcLDrFOESCO7rGsxZObdiN2dAg4MJhFB F5zK4UJFeloyaiyPbW2jQQksfMK+Ngh8QpdvCW9UZ09Wixsz0JCi6wrdfyhm/rN5euv0 1qESso7tQu7WUJni9IS/I41Ae1rjkkIxOOKrQ4CoPm61lnRgb/3ZX9wwd1AH/gbQsa6s kL7YMI0kguqAqvxdyjy0kB4TMQDcbAn00EWJ33Vuc3U0c4yqVA82jPRh9sANE3RbVtx6 GhrAEzNL/F345uXVaOe+mO+B9ujPvidMvw1TvHCcvzhang4yy5Ebt2M42uaimgpgJ+Tl U73Q== X-Gm-Message-State: APjAAAXvPWcbusmDLa7Si8+Kb1U/RbIlS16fgYYbDpJV7tWJcYt5wU0D UsC7WOjLsCI8TnBR3QL5yrlqq1No X-Google-Smtp-Source: APXvYqwjzyXMeRIbcqjuRlTSLxEgR8Gj0YPZbGL/pVhFDqjjFCt42nURp67dpmg3wp3EJ7748iwD9w== X-Received: by 2002:a17:902:403:: with SMTP id 3mr29990082ple.206.1571074827255; Mon, 14 Oct 2019 10:40:27 -0700 (PDT) Received: from dtor-ws.mtv.corp.google.com ([2620:15c:202:201:3adc:b08c:7acc:b325]) by smtp.gmail.com with ESMTPSA id k66sm18784535pjb.11.2019.10.14.10.40.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Oct 2019 10:40:26 -0700 (PDT) From: Dmitry Torokhov To: Linus Walleij Cc: netdev@vger.kernel.org, "David S . Miller" , linux-kernel@vger.kernel.org, Andy Shevchenko , Andrew Lunn , Florian Fainelli , Heiner Kallweit , Russell King Subject: [PATCH v2 1/3] net: phylink: switch to using fwnode_gpiod_get_index() Date: Mon, 14 Oct 2019 10:40:20 -0700 Message-Id: <20191014174022.94605-2-dmitry.torokhov@gmail.com> X-Mailer: git-send-email 2.23.0.700.g56cf767bdb-goog In-Reply-To: <20191014174022.94605-1-dmitry.torokhov@gmail.com> References: <20191014174022.94605-1-dmitry.torokhov@gmail.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Instead of fwnode_get_named_gpiod() that I plan to hide away, let's use the new fwnode_gpiod_get_index() that mimics gpiod_get_index(), but works with arbitrary firmware node. Reviewed-by: Andy Shevchenko Acked-by: David S. Miller Signed-off-by: Dmitry Torokhov Acked-by: Russell King --- drivers/net/phy/phylink.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c index a5a57ca94c1a..c34ca644d47e 100644 --- a/drivers/net/phy/phylink.c +++ b/drivers/net/phy/phylink.c @@ -168,8 +168,8 @@ static int phylink_parse_fixedlink(struct phylink *pl, pl->link_config.pause |= MLO_PAUSE_ASYM; if (ret == 0) { - desc = fwnode_get_named_gpiod(fixed_node, "link-gpios", - 0, GPIOD_IN, "?"); + desc = fwnode_gpiod_get_index(fixed_node, "link", 0, + GPIOD_IN, "?"); if (!IS_ERR(desc)) pl->link_gpio = desc; From patchwork Mon Oct 14 17:40:21 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Torokhov X-Patchwork-Id: 1176553 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=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="p/R7QSQB"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46sQnh3rndz9sP7 for ; Tue, 15 Oct 2019 04:40:40 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388645AbfJNRkb (ORCPT ); Mon, 14 Oct 2019 13:40:31 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:37602 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388622AbfJNRka (ORCPT ); Mon, 14 Oct 2019 13:40:30 -0400 Received: by mail-pf1-f194.google.com with SMTP id y5so10796965pfo.4; Mon, 14 Oct 2019 10:40:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=YC7OuTz25ULgsZk3/xaxUiSD3IVX8OuT8dFOQHTV40E=; b=p/R7QSQB/JIgdcZLWg63WYXM9JqkIUj4KkL51SFfUzwIdlmjnaGcJ2Fts7ES0teWL2 LDampenpFQMPtMe5xnU0wJcUxrwBX3m5PSWm9ktsFwBUrCWU4OMWnPucr6Lb3+QUN/+O m0B3BFGVKAHN5p994nZKa37kQv0DEEn86yN1Ouw2zYeCnUgvBbrUqN1/XlbjHnmSfUhg Fi/BHVx6eVPciQbHWaEVIhLoIZF8sKO4blUYoqs4uXiKN64Vvuf6rz0atVVfz/PTDSlj SMXpdr3xMeLX9wWbxyF5OwsJm8PmGRtfMXQ3tuvw7DfLAjZoizaMaXWJHutVN9PlVt0U jYZQ== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=YC7OuTz25ULgsZk3/xaxUiSD3IVX8OuT8dFOQHTV40E=; b=CJtLutojD7mUOdLtDvGQ8nCbL0c/j2ZmmEUZreEHNGSA0+lBgiRwsEbCn6ZmSMSEHx 4w4yvOn2kK0u4SkaKp0lpF48LCruzmdDrM5Gj6FnJ8qxqOig7ar+bb/TVXsbiBKTaBdk VcStmgMhLMWFi13YvRoIfapbKhIrCPskvaQZBB5uypDzlWpUEjpHZS+LQDrMoZFi12yw YYhVN67CNylTkgH3zVK1BkYQma9ntDSY7OhWUTC6chW+4bvOeU6NENmM/r65eweWXoiY HULcSs9hsF/gvhof/w1DzeJ5xJFayd5OZEjF2ya+WSB1/tyDhqwbK0Uf9SOAtQv0x8MS A8Pw== X-Gm-Message-State: APjAAAWa6XlEOl7venNJKU7JbeX4FEK2S1Ki2pMG9TiPjk2OHB9kt0DZ GzOgoSshdejNgLPWS5YctOo= X-Google-Smtp-Source: APXvYqxjOKCo3M7ZMV6KqJbNw2aP1f6Tu1bNKcPINJqxxAoKbD7tAVsN3USqmsrTUf1gVVvq8Fov5w== X-Received: by 2002:a63:1423:: with SMTP id u35mr12871006pgl.122.1571074829319; Mon, 14 Oct 2019 10:40:29 -0700 (PDT) Received: from dtor-ws.mtv.corp.google.com ([2620:15c:202:201:3adc:b08c:7acc:b325]) by smtp.gmail.com with ESMTPSA id k66sm18784535pjb.11.2019.10.14.10.40.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Oct 2019 10:40:27 -0700 (PDT) From: Dmitry Torokhov To: Linus Walleij Cc: netdev@vger.kernel.org, "David S . Miller" , linux-kernel@vger.kernel.org, Andrew Lunn , Florian Fainelli , Heiner Kallweit Subject: [PATCH v2 2/3] net: phy: fixed_phy: fix use-after-free when checking link GPIO Date: Mon, 14 Oct 2019 10:40:21 -0700 Message-Id: <20191014174022.94605-3-dmitry.torokhov@gmail.com> X-Mailer: git-send-email 2.23.0.700.g56cf767bdb-goog In-Reply-To: <20191014174022.94605-1-dmitry.torokhov@gmail.com> References: <20191014174022.94605-1-dmitry.torokhov@gmail.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org If we fail to locate GPIO for any reason other than deferral or not-found-GPIO, we try to print device tree node info, however if might be freed already as we called of_node_put() on it. Acked-by: David S. Miller Signed-off-by: Dmitry Torokhov Reviewed-by: Andrew Lunn --- drivers/net/phy/fixed_phy.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/net/phy/fixed_phy.c b/drivers/net/phy/fixed_phy.c index 7c5265fd2b94..4190f9ed5313 100644 --- a/drivers/net/phy/fixed_phy.c +++ b/drivers/net/phy/fixed_phy.c @@ -212,16 +212,13 @@ static struct gpio_desc *fixed_phy_get_gpiod(struct device_node *np) */ gpiod = gpiod_get_from_of_node(fixed_link_node, "link-gpios", 0, GPIOD_IN, "mdio"); - of_node_put(fixed_link_node); - if (IS_ERR(gpiod)) { - if (PTR_ERR(gpiod) == -EPROBE_DEFER) - return gpiod; - + if (IS_ERR(gpiod) && PTR_ERR(gpiod) != -EPROBE_DEFER) { if (PTR_ERR(gpiod) != -ENOENT) pr_err("error getting GPIO for fixed link %pOF, proceed without\n", fixed_link_node); gpiod = NULL; } + of_node_put(fixed_link_node); return gpiod; } From patchwork Mon Oct 14 17:40:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Torokhov X-Patchwork-Id: 1176551 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=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="M9lDjrMJ"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 46sQnb0gfVz9sPJ for ; Tue, 15 Oct 2019 04:40:35 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388662AbfJNRkd (ORCPT ); Mon, 14 Oct 2019 13:40:33 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:46202 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388646AbfJNRkc (ORCPT ); Mon, 14 Oct 2019 13:40:32 -0400 Received: by mail-pg1-f195.google.com with SMTP id e15so2489919pgu.13; Mon, 14 Oct 2019 10:40:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3raRjkh411jqmJuSd7tR/NOj57+SAWqZk6Zr5JKxLGc=; b=M9lDjrMJjbBDodTzmoFm5niWXhLC4ZLf1L2eBPYPVBZfQMDdupuwl7Kv3Tdxid15Kh P0vSblrBDXOET3c1Sv5Gzk5USK6ITosJaFXMY7Nt/bpQs+63Y1p5SHyMpvfikGTEHFO/ wCN1liPBoaSVwFT33Oa52zjCYDkUERbsj1XAmRUcW0PKo5+xjpzA1uFG0fBSl9oC77lV CSO9MkD69ZghjRHZzl8UnJNLjLWc76tgJoeiHOZ3SKzf5jVJgRcjrZiagUq5taHHgmSr e8oZG9eaz7zcseCnbTvllZHwdZlo2jXQNG+1zJ+LJa3XgBy9zyOl2LviMpSksuSgc4GL p9EA== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=3raRjkh411jqmJuSd7tR/NOj57+SAWqZk6Zr5JKxLGc=; b=Q/Gsy89tqJFPoGTsR8FJVMTsBYSA2efnSshYOc+u/hUX6RUoWLp0uH5rSbVaZa70lh /NzS9prZKkKS5RzojouVcfk93GdGKk/i/m4vXqUL+Ga2vVWEn53kQ0ntLJRt512jlX+j LDB9OU2TVkztPZj3QW04OD+OF8LAiJ4OfHkDMDYErcNI2ylXlREgvCvHw6Ijkzde1BP6 2oGtgb64vT8qgSGQj1ueqEhDofInxDdYr+shNaXHODgJZvrxXOlTNreH3sAQkuK9Vd46 bFc5UqbBsqRgtrF/+0OAXM0293Jba6yDZMHVFdqs047defoYLr+5jralq+7GbBEIXM0r +Uvg== X-Gm-Message-State: APjAAAXW/VF3gWhoPnrL5pFW20YtnrCIOND/v2CVPt3x+Obqs6FxWq9v Tbj/V6WZW+2ylwKd5sUY7VY= X-Google-Smtp-Source: APXvYqyt6H4tar6sW6SeNzx59TyuW49NybHYbW3BHLGUt3TOtKmZZ0JCqYd1VaFEjjncfgVVopMMoA== X-Received: by 2002:a17:90a:b003:: with SMTP id x3mr37943388pjq.101.1571074830826; Mon, 14 Oct 2019 10:40:30 -0700 (PDT) Received: from dtor-ws.mtv.corp.google.com ([2620:15c:202:201:3adc:b08c:7acc:b325]) by smtp.gmail.com with ESMTPSA id k66sm18784535pjb.11.2019.10.14.10.40.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Oct 2019 10:40:30 -0700 (PDT) From: Dmitry Torokhov To: Linus Walleij Cc: netdev@vger.kernel.org, "David S . Miller" , linux-kernel@vger.kernel.org, Andrew Lunn , Florian Fainelli , Heiner Kallweit Subject: [PATCH v2 3/3] net: phy: fixed_phy: switch to using fwnode_gpiod_get_index Date: Mon, 14 Oct 2019 10:40:22 -0700 Message-Id: <20191014174022.94605-4-dmitry.torokhov@gmail.com> X-Mailer: git-send-email 2.23.0.700.g56cf767bdb-goog In-Reply-To: <20191014174022.94605-1-dmitry.torokhov@gmail.com> References: <20191014174022.94605-1-dmitry.torokhov@gmail.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org gpiod_get_from_of_node() is being retired in favor of [devm_]fwnode_gpiod_get_index(), that behaves similar to [devm_]gpiod_get_index(), but can work with arbitrary firmware node. It will also be able to support secondary software nodes. Let's switch this driver over. Acked-by: David S. Miller Signed-off-by: Dmitry Torokhov --- drivers/net/phy/fixed_phy.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/phy/fixed_phy.c b/drivers/net/phy/fixed_phy.c index 4190f9ed5313..73a72ff0fb16 100644 --- a/drivers/net/phy/fixed_phy.c +++ b/drivers/net/phy/fixed_phy.c @@ -210,8 +210,8 @@ static struct gpio_desc *fixed_phy_get_gpiod(struct device_node *np) * Linux device associated with it, we simply have obtain * the GPIO descriptor from the device tree like this. */ - gpiod = gpiod_get_from_of_node(fixed_link_node, "link-gpios", 0, - GPIOD_IN, "mdio"); + gpiod = fwnode_gpiod_get_index(of_fwnode_handle(fixed_link_node), + "link-gpios", 0, GPIOD_IN, "mdio"); if (IS_ERR(gpiod) && PTR_ERR(gpiod) != -EPROBE_DEFER) { if (PTR_ERR(gpiod) != -ENOENT) pr_err("error getting GPIO for fixed link %pOF, proceed without\n",