Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751693AbeAIIdy (ORCPT + 1 other); Tue, 9 Jan 2018 03:33:54 -0500 Received: from mail-bn3nam01on0065.outbound.protection.outlook.com ([104.47.33.65]:64346 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750995AbeAIIdv (ORCPT ); Tue, 9 Jan 2018 03:33:51 -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, v2] of_mdio: avoid MDIO bus removal when a PHY is missing Date: Tue, 9 Jan 2018 10:33:39 +0200 Message-ID: <1515486819-8954-1-git-send-email-madalin.bucur@nxp.com> X-Mailer: git-send-email 2.1.0 Reply-To: X-EOPAttributedMessage: 0 X-Matching-Connectors: 131599603987523142;(91ab9b29-cfa4-454e-5278-08d120cd25b8);() X-Forefront-Antispam-Report: CIP:192.88.168.50;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(396003)(39380400002)(39860400002)(346002)(376002)(2980300002)(1109001)(1110001)(339900001)(189003)(199004)(110136005)(68736007)(48376002)(5660300001)(8656006)(50226002)(305945005)(356003)(51416003)(7416002)(4326008)(36756003)(43066004)(47776003)(50466002)(86362001)(77096006)(54906003)(53936002)(2906002)(316002)(16586007)(8676002)(81156014)(81166006)(85426001)(3450700001)(2201001)(97736004)(104016004)(106466001)(6666003)(8936002)(498600001)(39060400002)(105606002);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR03MB2702;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11FD007;1:irr5BRjPUGC2au2i9J5z2uJVrY8e0rK/2tbBtl9bbI3/bU0zjQtQZmNLe/q8whpgDzR1mj38gnPR8pQfFoLHYt3Sb8m91OC2UK7WmVp/RjxcAMVLt23erT1TaKoj8woJ MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3196f2c1-99e4-423d-2646-08d5573ba2b9 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(4534020)(4628075)(201703131517081)(5600026)(4604075)(2017052603307);SRVR:MWHPR03MB2702; X-Microsoft-Exchange-Diagnostics: 1;MWHPR03MB2702;3:FKeWDeLtPZpB2yYoCUwci+Sf9l1XkTY23Uni5+hUar+TH6yM7z1g/UFUYtV7oKn1kROIllLOe1zX7Q4P4UZKkzGh2rklIMXd5DVyfX67iw/m4x4wtIaeglbjoNMuev8j/Yppdoc3JoZTf5rLxLkXux0nb0ORfYUtAP9uf5YrYaEuWxQ7U+sjVJcap9q6suyj5ZDn7CFQRF3DqdV3FMvusdvvaD2pZHqQ+st4xGGPsxUI1ybwkFGSDZTQ9EPpCT/GA/CcLzobFAe981vlqIsoGcMEo2BoiaooGxwVUUi0TZIXTayDtMKtKVA8XtGtKHyF6Cx8DZK7ojV8H09p7aEwBiF4H/EtIAjIPiOBljcMy8o=;25:QG/lZyMxA8yzpqhXBBziXwxIg8O7x1MA25hJhkohZg/v1iHDnijWBh1Xl1USsrXXP12pMBtCysXRpU6hVX650H8U2Se8ivfjFRtHU4XI3Uolx2eG/hk9prRRF1Fu8klYYL6zBcsemyeaxuENLZIXNruwPRc1z++rcGk537nOLEMntbZZIR/nEmH27YwDMu0hHsYrQIh+XFGpJy2BeRkUFN5ARdPFVxJvBY1Dz+8fKOS54VcmoYqPt9rtG+TDngMmBz2hRb6ytFiEBM8WzW44HKUpN4ax8qwlt6d/LZ7SiWrX0M1xWPkmGGmr4puxzX6TjAdikJUdr9eFN8vT7nd9LA== X-MS-TrafficTypeDiagnostic: MWHPR03MB2702: X-Microsoft-Exchange-Diagnostics: 1;MWHPR03MB2702;31:wVGNc2Oiw5R0hiPV2Gp5UXLikSfxbpVrgr8RxOVZqURbadOl4J8HQaimhYRo+frR6u9eY7tg7IgBg+3yVJQMuPOj22MTXJHhcsES2N5scC86aEkgPR4BMrdVBgG+2qZ7yCXxbFuZ/sNZA82wOqBNqvJga5WhQ19J7oyqlIIhtbKbu+XU/yz9HEbWJIzel3x+g9T+zS/GDy5kVh8k/jxIacCqf+u7rKk/JqTwKbk5JG0=;4:P7cxml76lxf974Gb0tfWeFtXdz9rvnwonCrXrHbFQIXvqu1dNQ0EXPrHW1yWnqNXFyRYU66tKTxWstChV3N2nSnXRDkVgSzYjLOEl8Pd+SPj4BoMXBdpqQ+PY7PVAJb9mZXYc4IOb48tlzDulKoy9vbL7aHnSVB+0j4+JugHLCsWvzv1SVnxLcXXiNK9mu4CRajY2unKrtw09OhbLY+Jj8KUPJbZLKKE9PN4sg2plckyanAr2g/tgjmDSHR+uuhz0Mt7bvlH1odrDOjV18S4qWgRZTyzmwJkMaUH3sWyB+pNI5nNtiBBiL9DtSSiK/vr X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6095135)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3231023)(944510075)(944921075)(946801075)(946901075)(3002001)(6055026)(6096035)(201703131430075)(201703131448075)(201703131433075)(201703161259150)(201703151042153)(20161123565025)(20161123556025)(20161123563025)(20161123561025)(20161123559100)(201708071742011);SRVR:MWHPR03MB2702;BCL:0;PCL:0;RULEID:(100000803101)(100110400095)(400006);SRVR:MWHPR03MB2702; X-Forefront-PRVS: 0547116B72 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;MWHPR03MB2702;23:MHcVqnnF+mf5uuRoGzX+JdmYBMAqm2jIAGtHK0Ch2?= =?us-ascii?Q?pNAXtYv793mNpKnMpnalmBfOTsnbsWxyuf4px3tAL1HlLqm3pK0LHTIsD4jt?= =?us-ascii?Q?v6PjdCK0bpBYYBAvvpij9x0OgknD4Ve6uqJPKmftYYVRCvUSTgZHWKmPPXR9?= =?us-ascii?Q?k27yHtvlkGDjaPTlBU94KUVORyy41lhpnqxRt0bzvuDHBtmcaFV6SRTfO6SK?= =?us-ascii?Q?eT4Ba19pfiR3cq0BwWTvKSeXYBoSA5nOhNHcq/13Rada2qeqUD3BpJJsA7+K?= =?us-ascii?Q?7FbmN6I5Z+wdo98IZMR414UAY0re3cuc4zkkqKDrNJ+QhweF7oypIfbh2Wd8?= =?us-ascii?Q?g+MN8KriOEY7yjDHLNkaRkndPWMIyxJBtnDERDXeOaIUP4+gl3ZmdqaJO4zZ?= =?us-ascii?Q?tXF8ozk6idJEohNYKKqV7l7fw3vLyCGwZtk2n0oCOWmBqCOX5SUysTY64YaZ?= =?us-ascii?Q?igN7nVlQaVYbka6oK+dUnDFzwoUHwulM5L9xDZOu6XThYHYWxuQoPoqhZT0u?= =?us-ascii?Q?zQinOPm721MJJTVL0dahAjPhgzricL4Va/QwKL5iX5f8qAbewaGHLRIBqaat?= =?us-ascii?Q?h9g14se+DNpqjYF6Eg1qX2RrGBRiEq9jN//mFwvdjMHkEQyLtk+qeDP3DZuW?= =?us-ascii?Q?2OLDq500xYu7zBfls0dCWn8MDsBHHgXq5ZcThFzmVU3r8vP8POhChLKfKHbB?= =?us-ascii?Q?XjGr+mHTnpkjIwd1h3sYEMA4r0XZmWjCiX2alXENntTHF96i4upL1ABn7Uju?= =?us-ascii?Q?+Gq1g19ppr/uafyl9TpuRy1JWZCNl6vFqQkD98k7xD/y91s39as0eLjQZh1v?= =?us-ascii?Q?KeqCjpwlqwGppl2arN2BtX5W0OXdVSKQH8E7/KjJhU9zCapZnUJU3z1bzXF8?= =?us-ascii?Q?3WqJdBRYIEsOMIfPhd0ufGwDS4lkZ1s59W7p5TApgGsXGQnf+WNYcIxjvJJF?= =?us-ascii?Q?TgKn8KVxGkx4PDoIbTGsIHntoX/uoIZPNWIwMreCwv8WlBjE6pgcZyr1pyGk?= =?us-ascii?Q?lNzFC/+ANVcAEnDmKPzOqms8ukNm326+ieBR8nQvrq/0obXES1JTrYtPEF5o?= =?us-ascii?Q?3yVS5S6oHtvBY/huS7VSbUh4laV9VrEsRvswHHnrDOYdqXlDpS5AmfDZ6kJ4?= =?us-ascii?Q?QMMxXAJYBY=3D?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR03MB2702;6:fAlJXOwsLeHm8/wO7r6HGoMjJ5MYwkrD9edsktasoTY7J1j//2Qf9JT+rPQ0f3R4BeYkOBSTT1io5ac7WicCcrxTxUiUxYycQUhNsGWMRoieBm7iTgW0Eqko4gL+lrQfU0/LgnQzlowxBlCcY3l4adW4J/KA0Oeq2GG3hzTwDtIy4mvdSZCNZ5ffYzKAYu43erQOzh5nIwqkUgn2C1B6YWZX9gh5MOIGHBV+1gvpyZsTKddQX+Eh+Q58JLms0yAAmtPVaZqMKtqGzv4pk2cr4eEzJg8h94tmqLud/fEKqHVVcYmbRQO4iSfKo6XIbCZHJBiOYqGaTdZvcBnR2yF+1cAaaEu1mN4ktC3QlFAxYlU=;5:Tf2FhLkQ/av5F5zrbSh1yxYpm7OH5brNHDNJhQF26WbCJJxvZ9Se81fyl3HtkgsDf3C76WOtCnN30+lmi6G4IASAXaEF9zqn9AF2YGW9DFMizpAlZeP/J4MZUimOgH61gRZNdgdvpzn31Z7KrQDido4yU94D2zbRPFcVWfYyh/w=;24:CTBWpggf0e5l2/k2Vnpsk4nZxgg/9G3HeOZ35CCgDlKrtFMBgGVSmXXhQuWMKWMSJeKp1YYf1o8TURgpNWLKgywgca4PtajV7uo6ZdE6Qds=;7:+uYejlaFtefVDB8CyjN+BtmpXIbNNaWj9ZwZ2ba0fqp+MrpRrA8D6dI0DpvLeHxpoScuKTg2DkZ4LD6qgcm/SXANkARmBLcTyk2d2/CffHZq5NvMeGBjXWqG/Fxw0s3ioXK9a8l5wDxP1hHCgVRtSpWAyaw/vKqcPnrJPZuMDT5afTflYa7NKzz4kilv/cJJCdY54hpQa/+Wbbisguo9KIjxBSYlIBmgTYGLZ2Lp+Tab5En4+hJJe+OSp9v08NWk SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jan 2018 08:33:18.5651 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3196f2c1-99e4-423d-2646-08d5573ba2b9 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: MWHPR03MB2702 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 --- v2: add an error print for the first change; the second place has some noise aleady generated by the exing code drivers/of/of_mdio.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/of/of_mdio.c b/drivers/of/of_mdio.c index 3481e69..a249370 100644 --- a/drivers/of/of_mdio.c +++ b/drivers/of/of_mdio.c @@ -231,8 +231,14 @@ 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) - goto unregister; + + if (rc == -ENODEV) + dev_err(&mdio->dev, + "MDIO device at address %d is missing.\n", + addr); + else + if (rc) + goto unregister; } if (!scanphys) @@ -255,7 +261,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