From patchwork Sat Feb 16 22:53:26 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabio Estevam X-Patchwork-Id: 221045 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 7E2B92C007B for ; Sun, 17 Feb 2013 09:58:53 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754729Ab3BPW6u (ORCPT ); Sat, 16 Feb 2013 17:58:50 -0500 Received: from mail-gh0-f171.google.com ([209.85.160.171]:34864 "EHLO mail-gh0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754370Ab3BPW6t (ORCPT ); Sat, 16 Feb 2013 17:58:49 -0500 Received: by mail-gh0-f171.google.com with SMTP id r17so348567ghr.16 for ; Sat, 16 Feb 2013 14:58:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:from:to:cc:subject:date:message-id:x-mailer; bh=cHS9n2d2eGPtB9L4xtyHOYsAh4US2wT3TCvXZh03ChM=; b=DLx20wXhnzMbMxMddVLz9Y4WeukHet9MigEUGgc52nNX3eVzXtxtJU0CIQ4bWQq1vD XruhlwRHNmguvxteKkeI/K4A/O+328XuJ/g/BCK07TnJLBbRFd5PMy/Nosnq2tuuw+Z+ WmCdfIi4V9vsYU1d8sinCMhzXXVTDPBLzdiOK7MAOzld2bj/EGyfq+6mDISzsE5yuXD3 lPPPq/ZwMZTS2VXO6B6w/BytcUWOh4M4a9xDddr52/GGZhCULgvgRxpPRVEzt6RZapDy CGf0nqQxds8XtbgGqy80CFe367/TOf0y1QufdPbZd4k43wUOWscLJC3w+cK4gOyPJJJW xYug== X-Received: by 10.236.169.104 with SMTP id m68mr10972504yhl.27.1361055223986; Sat, 16 Feb 2013 14:53:43 -0800 (PST) Received: from localhost.localdomain ([201.82.137.218]) by mx.google.com with ESMTPS id x16sm101516047yhj.6.2013.02.16.14.53.41 (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sat, 16 Feb 2013 14:53:43 -0800 (PST) From: Fabio Estevam To: davem@davemloft.net Cc: s.hauer@pengutronix.de, shawn.guo@linaro.org, marex@denx.de, netdev@vger.kernel.org, Fabio Estevam Subject: [PATCH 1/2] net: fec: Do a sanity check on the gpio number Date: Sat, 16 Feb 2013 20:53:26 -0200 Message-Id: <1361055207-22870-1-git-send-email-festevam@gmail.com> X-Mailer: git-send-email 1.7.9.5 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Fabio Estevam Since commit 372e722ea4d (gpiolib: use descriptors internally) the following warning is seen on a mx28evk board: [ 5.116291] ------------[ cut here ]------------ [ 5.121306] WARNING: at drivers/gpio/gpiolib.c:125 gpio_to_desc+0x30/0x44() [ 5.128491] invalid GPIO -2 [ 5.131563] Modules linked in: [ 5.134846] [] (unwind_backtrace+0x0/0xf4) from [] (warn_slowpath_common+0x4c/0x68) [ 5.144682] [] (warn_slowpath_common+0x4c/0x68) from [] (warn_slowpath_fmt+0x30/0x40) [ 5.154693] [] (warn_slowpath_fmt+0x30/0x40) from [] (gpio_to_desc+0x30/0x44) [ 5.164002] [] (gpio_to_desc+0x30/0x44) from [] (gpio_request_one+0x10/0xe8) [ 5.173294] [] (gpio_request_one+0x10/0xe8) from [] (devm_gpio_request_one+0x40/0x74) [ 5.183332] [] (devm_gpio_request_one+0x40/0x74) from [] (fec_probe+0x2d0/0x99c) [ 5.192923] [] (fec_probe+0x2d0/0x99c) from [] (platform_drv_probe+0x14/0x18) [ 5.202228] [] (platform_drv_probe+0x14/0x18) from [] (driver_probe_device+0x90/0x224) [ 5.212332] [] (driver_probe_device+0x90/0x224) from [] (__driver_attach+0x94/0x98) [ 5.222162] [] (__driver_attach+0x94/0x98) from [] (bus_for_each_dev+0x78/0x98) [ 5.231642] [] (bus_for_each_dev+0x78/0x98) from [] (bus_add_driver+0x1a4/0x240) [ 5.241207] [] (bus_add_driver+0x1a4/0x240) from [] (driver_register+0x78/0x140) [ 5.250768] [] (driver_register+0x78/0x140) from [] (do_one_initcall+0x30/0x17c) [ 5.260347] [] (do_one_initcall+0x30/0x17c) from [] (kernel_init_freeable+0xe8/0x1b0) [ 5.270381] [] (kernel_init_freeable+0xe8/0x1b0) from [] (kernel_init+0x8/0xe4) [ 5.279886] [] (kernel_init+0x8/0xe4) from [] (ret_from_fork+0x14/0x2c) [ 5.288740] ---[ end trace c15c72a22979d58d ]--- mx28evk has two ethernet controllers. The GPIO that performs the ethernet reset on both ports is the same GPIO, so on the board dts file, only in one ethernet instance is passed the GPIO reset property. Validate the gpio number prior to requesting it in order to avoid such warning. Signed-off-by: Fabio Estevam Acked-by: Shawn Guo Acked-by: Marek Vasut --- drivers/net/ethernet/freescale/fec.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/ethernet/freescale/fec.c b/drivers/net/ethernet/freescale/fec.c index 0fe68c4..5864a67 100644 --- a/drivers/net/ethernet/freescale/fec.c +++ b/drivers/net/ethernet/freescale/fec.c @@ -1689,6 +1689,9 @@ static void fec_reset_phy(struct platform_device *pdev) msec = 1; phy_reset = of_get_named_gpio(np, "phy-reset-gpios", 0); + if (!gpio_is_valid(phy_reset)) + return; + err = devm_gpio_request_one(&pdev->dev, phy_reset, GPIOF_OUT_INIT_LOW, "phy-reset"); if (err) {