From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756071AbeAIMnx (ORCPT + 1 other); Tue, 9 Jan 2018 07:43:53 -0500 Received: from mail-sn1nam01on0077.outbound.protection.outlook.com ([104.47.32.77]:4512 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751421AbeAIMnu (ORCPT ); Tue, 9 Jan 2018 07:43:50 -0500 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; From: Madalin Bucur To: , , CC: , , , , , , Madalin Bucur Subject: [PATCH net, v3] of_mdio: avoid MDIO bus removal when a PHY is missing Date: Tue, 9 Jan 2018 14:43:34 +0200 Message-ID: <1515501814-11517-1-git-send-email-madalin.bucur@nxp.com> X-Mailer: git-send-email 2.1.0 Reply-To: X-EOPAttributedMessage: 0 X-Matching-Connectors: 131599753975172898;(91ab9b29-cfa4-454e-5278-08d120cd25b8);() X-Forefront-Antispam-Report: CIP:192.88.168.50;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(39380400002)(39860400002)(396003)(376002)(346002)(2980300002)(1109001)(1110001)(339900001)(199004)(189003)(4326008)(39060400002)(53936002)(48376002)(77096006)(85426001)(68736007)(356003)(3450700001)(2906002)(110136005)(54906003)(6666003)(316002)(43066004)(86362001)(105606002)(106466001)(8656006)(2201001)(7416002)(16586007)(305945005)(104016004)(97736004)(498600001)(47776003)(36756003)(51416003)(50466002)(8936002)(5660300001)(50226002)(81166006)(8676002)(81156014);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR03MB2361;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11OLC010;1:k+XOd8hEjM7Lh8qDQMjbWcMC9anFUxjvTY3Sqv+wsieDw6KMoTFdKuupWOlL4aQ0khevSOBYvoNXU2YVsZHPW6iDzIIwb9Omo0Co/72CxYCpL82CTCFcXhfpsOfTHaiN MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d49ae1d5-af25-414c-0f22-08d5575e8eaf X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(4534020)(4628075)(201703131517081)(5600026)(4604075)(2017052603307);SRVR:CY1PR03MB2361; X-Microsoft-Exchange-Diagnostics: 1;CY1PR03MB2361;3:5BU+NmDtmkpMFHTL2YQOuD35WXU8ksOchqRLM73UveIfZNsCiBwNZ6WFlGTDnG5CBzML94VGn0lNZVPKV5obv74vh8mc3MLmFZ+CEf+nXo0rbbr70kVZI+p/56bzH77AEVZLkVXFSTDIdvG476T8ocjeap2NEGIbfGqG3AV8R/C38GvKxB8pQCkwlvwGqM4sjNiLn5JeoMwD7KFZlcgL2qXvy3T0YzRT6Ron4vd3amXLc07oRmSiJZPnMD4RrvIGSCNYJnenjClugvSiZ8FNFvnzuLuqZFHWnP9Eds17R7phTDvPrea9BOgI66amksUGWDs1KeGPhtHxg4OTMWaLbJ3S5K9qMDZM20r83nM8JtE=;25:xAoKaUvb3tNJgE1mNStOIufZ2Rbw5QlVAF/H/u47Y88f3Hft+jaGQO1SkMsiERFe1kNib0AB2FaxhCtDkFXEra9cy6VKKI4tbG6xOfwUUhGlm+i372WIXkuKIz2Kj6BodV3YKcnX33do7nxUbI/6/ys5k+fmKEJ2Ptj6V4d4//tI0pW641ndhDuGaJP1lhIi/qcWlshkRk+bE3PrDGfPDrkPpJ1ODbvGqPA1YA7NTHb3tGAVfyYcu7S5fjvZ2wswf+Jbge2qZqo9pygiS7b6pxW1UJfD47AQUdzvm5LWQ9vk07LhKWktY5El7cKcXwFruX2xNSKikPVZC2V/CWf69A== X-MS-TrafficTypeDiagnostic: CY1PR03MB2361: X-Microsoft-Exchange-Diagnostics: 1;CY1PR03MB2361;31:AsZQGaYlJGto1524vtBtUWRRINvYsXKhfeQJChmeIuI0bsKfkZ7a56sEor6Pmq0QQlLj0/IBFBNzwxh7jyBwk4B9E7ENMX4HxlAlCLalRrBRa7+CBSFdydTNHp4b4/IP+kzTZHIHyTN9rGfbWEbucW0yrjlfbGRPn2MLhCGFoyhmm3P6rWY5kaAgnjJUy+YYj/j8iMe/O82C1Om5rS3/xsRu2CYif/M/CwZdZYAKkSg=;4:ti6HxmNJfC8GkzkFDxaj2cUVKqpn/AGjCD/ek6v+8Hl73f5d5k62Y/p4CRLayjpGP/+OJ+kHW4mwv/11LaYA+jFdfiE8Yb2eNOPKdGW1LfuLT7nEQFL5+zN9Cxi5n0FvmEyfBD04GiaQt3HIeoVB+RFKJ80kgAqq5BqGtxADfVxOq2S42Vbk7EN2xNQ05hokaqwFWB9bwnXt0HHsVNy2RSVRqaORP75GPoWAhPcAIOs2D+93BBH+PVnken2OMqOgiFe7WhT3nlQKcpBBuKTm8MA15yWblcymnYD8V8022mbxtU9X+62llJop/u3qMlMj X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6095135)(2401047)(5005006)(8121501046)(3231023)(944501110)(10201501046)(3002001)(93006095)(93001095)(6055026)(6096035)(20161123565025)(20161123556025)(201703131430075)(201703131448075)(201703131433075)(201703161259150)(201703151042153)(20161123561025)(20161123559100)(20161123563025)(201708071742011);SRVR:CY1PR03MB2361;BCL:0;PCL:0;RULEID:(100000803101)(100110400095)(400006);SRVR:CY1PR03MB2361; X-Forefront-PRVS: 0547116B72 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY1PR03MB2361;23:EHuNaSVUO1jK1zLtwddxNN7rS8xk5mMT9viSSMUGl?= =?us-ascii?Q?J4OIh473hb2qikOlb19eVOjoMnSwwicCEFZMicuhVfArg2ZqKNBIMNLoTJQA?= =?us-ascii?Q?v6+xtH0sMhIYTp6WbUxm4XArl+DScYpARyANTrznVMXgpeZOjIF4e3vNhIca?= =?us-ascii?Q?zUXecl92mCGwcCYhlazsXLeJwp3QgLXlSdAJCrTlGotgZjgGlzZrmp4AkyH+?= =?us-ascii?Q?7JBBygzwFcdZLTSNUMVgt8K2zLsg9rQ5IYaXwqA5uKK8yQyBRoOrI6L7d0zP?= =?us-ascii?Q?or6Y1/Z9KgmeDNNlx2y+cvGrx+VhcUGsSUYbP3/IL/KOqJV502yJweankrxO?= =?us-ascii?Q?CZycLDzwgdSnL6tAPM9ELlO++Tpw5fj4XMeKxpESbkhGpCtW74KKM7AaJDkN?= =?us-ascii?Q?BA6OqVrGn4VR1ms1Jd1d5DFQ3Q3SKtCUCFKqXYRnr/Ml5vK0cFAvTne3H4Ey?= =?us-ascii?Q?k2R2VRV1jsKwuc7+Z7+DdZoZEfpT44u372zVJwoMaZX9ipRBf09JkYbuvQAY?= =?us-ascii?Q?0Wamtf+/jcI+vQxtVaYpl7qRwUHC3b7Rc8bY7S8yaAh21M6BKeNbNmKxW5/d?= =?us-ascii?Q?MDrg9q/SYnNXZVV7hcGOdTD8L5crIMpJq3eNRMDFBOhxesjL6t4MfvhtYLiW?= =?us-ascii?Q?hwv9RiGAjw8TsRrB3Oj7ZTqIj1O121mm/WuqidDvhTZLhDL4JMFyUYTIZ8/4?= =?us-ascii?Q?L6j0PUuz6mU3bzrkbZcvwhOoVm+HxPoGK6Uos3+u5IRUuYS7cMOxj88l9kMA?= =?us-ascii?Q?Qz0Bf0JpHUFYfJ1MfDXVRtOx4zRGkgVI52vWehfZQb5IV012kd5BAcMWcEoJ?= =?us-ascii?Q?5BStDd+NLxD6SMrbMMZ3pUltYlJLtqjSPS3GozaKuh5SLCmqgRGBHMCbYX8I?= =?us-ascii?Q?/Qo2/oPlN5iKt1ds1TnDN7sSYbW59bcmYE1GsORuVrlQ7x3fnI7wdzAY/2US?= =?us-ascii?Q?4JIswJibNfpigvl+e2GnYWTGnZi7KlPG3kkXYEmi/Dq4W3+2PqXOJfDO5G7K?= =?us-ascii?Q?MLQC3tvnbekNCqCPlMx6RmQ1mdfytshXZZNq6cspjyyAc+PwBM0xp4SUvvPQ?= =?us-ascii?Q?iaw6nCSdoDAsy5iD7QF+4WGxQ82kOJep8LFhZ9KNCHnB8hlVPQKFr2S8HQGa?= =?us-ascii?Q?NUi3goABWk=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR03MB2361;6:YAV3NgpOOdGFXBCfOUMVgJchn1AgFZV8YC0Txo+6B/rgd8PgA7NF3yRe3IpOQDHOc6EikJMTrH9FCUGPIkYPBPSC5XSQ3Qw8NzKaMAg342cCfu9kNug2+lmciisEgYfQkVcocFYvFmS4wHjixbROSIGxQ4F3Jyb7LshivHxUs8yHyAPk4T7rAQABVsYtd88PzP5ucJB2NypbfS70TJe12vJcghY2uNRQabA9FKy9xNEAOQRqcm65yru9L03I7kY821I62Auz5y1S3L6OpCLOWZYxCjmKwiPu08inBJNc5UOMiqq4J9IBpJwDKCg6hLTbM1Pe+6CGaVf+G3JzCNsdCQvstEhwLG01hIzImuNdiPk=;5:0LF0C6PDNATkLp09zx23Nk1lyV2Ud3Zm0NX4hQz9BMEf6bavoL8gNo5Ql7GXHspyRpjH+1HzI7XkW9A0ug0okeeajSFc5B8/+jjb9aob/j51fh5Pr9auQdFCnhN61CGcQQPs8wNqge58j+K+OQ+cltoCHkMYBzkxF7pKc9JlgSs=;24:maj69+vJos54GAviVoW5tSveBpIcOyxwjbMlHx81hqbHabAokx1GXfd373WeJKarycHB1HPmAJ0wOrfe+uEZstkZ1FrrZQ363Al8P8leTk8=;7:J/VqOz/QnwpILslnlwiMBHfv25NsJ+uNo2ziRrjnxMR+bsd+255MsbAAxvAQIGMn75JjPnl+BilwDhlDJ+2GY5d+QPIYb75PfjYdkRX7w3sk0IJAt7V6obqA/9HmuqRkBE1vSw4axNW+BI+yNGuvkYzgAwCdSpgusZcoLs3dxfJKXbRsLtohaJzLMnkYKix1a/KxadVx6rqsVVb6UEhztdmJkEBfQ+7BhJOucmrhg04vWWhvgaVM+b3d5uNPgRvD SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jan 2018 12:43:17.3300 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d49ae1d5-af25-414c-0f22-08d5575e8eaf X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;Ip=[192.88.168.50];Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR03MB2361 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: If one of the child devices is missing the of_mdiobus_register_phy() call will return -ENODEV. When a missing device is encountered the registration of the remaining PHYs is stopped and the MDIO bus will fail to register. Propagate all errors except ENODEV to avoid it. Signed-off-by: Madalin Bucur --- v3: move if after else v2: add an error print for the first change; the second place has some noise already generated by the existing code drivers/of/of_mdio.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/of/of_mdio.c b/drivers/of/of_mdio.c index 3481e69..a327be1 100644 --- a/drivers/of/of_mdio.c +++ b/drivers/of/of_mdio.c @@ -231,7 +231,12 @@ int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np) rc = of_mdiobus_register_phy(mdio, child, addr); else rc = of_mdiobus_register_device(mdio, child, addr); - if (rc) + + if (rc == -ENODEV) + dev_err(&mdio->dev, + "MDIO device at address %d is missing.\n", + addr); + else if (rc) goto unregister; } @@ -255,7 +260,7 @@ int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np) if (of_mdiobus_child_is_phy(child)) { rc = of_mdiobus_register_phy(mdio, child, addr); - if (rc) + if (rc && rc != -ENODEV) goto unregister; } } -- 2.1.0