From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751630AbdEPNjA (ORCPT ); Tue, 16 May 2017 09:39:00 -0400 Received: from mail-sn1nam02on0088.outbound.protection.outlook.com ([104.47.36.88]:44913 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750757AbdEPNi4 (ORCPT ); Tue, 16 May 2017 09:38:56 -0400 Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=none action=none header.from=caviumnetworks.com; Date: Tue, 16 May 2017 15:38:38 +0200 From: Jan Glauber To: Rob Herring Cc: Ulf Hansson , David Daney , Frank Rowand , "Steven J . Hill" , "linux-mmc@vger.kernel.org" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH 5/5] mmc: cavium: Fix probing race with regulator Message-ID: <20170516133838.GA20659@hc> References: <20170516093655.17746-1-jglauber@cavium.com> <20170516093655.17746-6-jglauber@cavium.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Originating-IP: [88.67.130.225] X-ClientProxiedBy: HE1PR09CA0077.eurprd09.prod.outlook.com (10.174.50.149) To CO2PR07MB2582.namprd07.prod.outlook.com (10.166.201.21) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b6d3a31d-bff9-49e6-ee20-08d49c60e4f7 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:CO2PR07MB2582; X-Microsoft-Exchange-Diagnostics: 1;CO2PR07MB2582;3:8ysQ6W+X2TwoQnkFLdlJs2UvGYgarw5F7Bj0hVVu0pyJkcwuVLeLu9E0c/ROkGu/O1ixkJBck7L6CJlmG1JAxtAOX89WYyZ3kLwRTdGDUqsIL3DBUiwHVyMTv9vf8fbAXcmGrIONfoqwBXf0wgFSBbWxmO6EOEDLCj8EzLQEF0/iXEDPg9twZpOhTIDAfllGVXeinfakTmDHWZiy8dCXhIR9jCT1tiMzk6ASBTSguHbc7xLM9QJ5+F55zdfOirDH7V6vVBOeFMwG+5oVTidVt+/uHkCGRV3Y6JhNcFQiKwNZre/IaZkKCCM3Run6VVzYsLmY9kXMstu3fKilmau6Aw==;25:A+t0YZEuT0qaAz3oar1QpCyijjshgyTOyqoVgu+FWjUHcOJNEMnCQtTFRsamxfBBikcsyAxY3cIUX4gWXYhYWf8vS+g7tF0+X/2yNbFl86z2NFggsLYQjS5yTKMbe1X9FMewB4xb1h26ydx2i00ZeLsLvCNEjjbJx2QUvszSOIvT7Y1oi7TKKnebzDR0CNvInKe+YFuHul7wEZHBTles4qTZEhhHm+IgOi4REyjCh05T4OXXYX49HJFh4tTNspYP8pkZyGxSgE91Dk45fqCx9rG1pjqEq2TWa5+OqpPt8xdORT+aMcBuk0ZOVRh8dft6jQWUe3e7BXOI/RQVqA9tgj3dOvHA/gsk6pp4T6jXOms1PY7XNZWa0wCMGWSKK3ATX3XGOiA73dcdnY3HqcZF60UQKmfp5+OCgqRJCtGhDfnUedsrmL52sdRrwitMywCzJCJfX2E6RVUGoTADHfL4n2WAUn2VWXZPOvJdIz/evgw= X-Microsoft-Exchange-Diagnostics: 1;CO2PR07MB2582;31:SbSsDn7Bh+Vgzl5ugMl41lGxN+AmfxIZ8seOOyWmcxn8ZUPDkv7U/RDvoL3DOItTifvPnCODaaTgHxUPD0Ng61Jk1dgAFPc08lojNfU9Q6hF2nG1deNaeAAnTvAxbr8v9LvspjT5pdUPBZ8+rP27mrxccGlAAro/KzwVXGZJuxYVR+eWjKCyVaRZlPgtouCC9Im8SA6BiRQshGvupTfp6cG2MGC7qGvXyi8O1pgv6X4=;20:nXUEZk318ADSCJzBjFZ9CxT20ACgL+ISqsZZKQKj7ObEk0JEeFbZiuHZm3KVEE3eIBNrbELipw4og72IB1w5eSZsAMIGJBHh9yz7LPe47qK9Mw5PcgHYNEl05nyaTyIo97qVPbmLeWQLQhgUmQ7H+GOGSKvFiILK6yx7d5QKsDbYlM3xC8AlgdyPg5kZvKRtfp2fmVU5F5y5xA+Uy5kWgIdMvTV/OKwcaMt9iKQ5PTC2XlQ/a/Obn1r/CmaKL2frUy6bHOBPRKr+X4tm5AUb0FWFrlU1jRT6+V7nahv8C/4Lnw9l74cEyOLVcr3+T4Vq9IeiYT9Z9GqyXg5bA1G+ZxZk8dXNlEgN2/5FCrXLP8GaqE0JhfJvdKm8kziErWO+U6GlhlptupgILF/FmgUpjFfG4Ae5IBlbOxKvIgYv2Z2ZstDmtjBpGQKmXuzOZ+owcNZgAE9IKipbLhhC551oWcevRNLITLGOwf/tcD3yZxlGKGv/FKk9+V2PeVWUGHZ2WCd+1+aZKsLnC0jzB6xEl7AXizRZs0+SfkPerkwnDfKHThxVkMo+bEJBU0dpjrA2TYbFPSDb2F/4mwxl8TlXJtq487g34lTHVH+z8OXfmbk= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(10201501046)(93006095)(3002001)(6041248)(20161123558100)(20161123555025)(20161123560025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(6072148);SRVR:CO2PR07MB2582;BCL:0;PCL:0;RULEID:;SRVR:CO2PR07MB2582; X-Microsoft-Exchange-Diagnostics: 1;CO2PR07MB2582;4:sx8cEbocCXPDES1zLP6+XUlc1aJHSyh8U3uWlo70vNjzfedwbAm4U4ZnkPkkkttW75ducFz3Y/xr/RJJ0tleAmZ0+SpQQGX8L4uqTdsjWSHNzHUu5LWBelOPhNionaAqROXDh9tCg6XcVlOC71VuCYvRJ4oTUKqATpe1oIfK//8aeGKqKH8pEw5EaPfGhU/klRPpiWN+TrAex6q8aKELF8pvuL7UbiBeZefK+xySy89ZHnbGTJ0pW91i4uTbGn8ZiVzXztvhTW1mJCnI/O+FM+Zkk8kaInFmjNOdvB6yUFVtrXBgVqxchRLbj4ZyNp2pvivWjD6lO9FdwzwxBsvbDFemKWCVKH8EP0tJfHqZjZ4jSyy1TMsmTnGtFJD9RqnMT20vjEvyQ2Qdr2+05jYxIbzeR2O3zNTfXHjaUYLEXCORfEmBX1sYJApLV0w23IzOd9YHKm3yIHQmGZAdgpbdtRv1sg8GUYVjtOcH/GlLMCCUOgCwBCy6Jxnk36BWLkHQXLtuwC5v3t6qVKS0V0eEwwDj23jalc+01xdWngznyzq5UNMeLFQsSivmtf9cZmQXhOu3geqGUm3UHphKyBGXv8AognYD7W/c6hSPX4pluydbny3nmTjmVnQB41MqgYTeHl1GLgTtNYtwuz3gjKN8w22YY11+y4Wv6HBdvHx9JCM9luqgGbPZxfeVh666lOZJm2Z7RMY54XlWljWuSl0D0P4cAeoKBnoHMxYGJsUJTmqbxjhpOcFSwOn91V89DGRJPZjPxykbusESW0CEZQcGMQ== X-Forefront-PRVS: 03094A4065 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(39400400002)(39850400002)(39840400002)(39410400002)(39450400003)(377454003)(24454002)(50466002)(54356999)(9686003)(50986999)(54906002)(55016002)(25786009)(8676002)(76176999)(33656002)(53546009)(81166006)(4001350100001)(478600001)(53936002)(4326008)(189998001)(229853002)(7736002)(305945005)(38730400002)(110136004)(66066001)(47776003)(2906002)(72206003)(6666003)(5660300001)(42882006)(6496005)(3846002)(1076002)(83506001)(6116002)(6246003)(42186005)(2950100002)(33716001)(23726003)(18370500001);DIR:OUT;SFP:1101;SCL:1;SRVR:CO2PR07MB2582;H:hc;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CO2PR07MB2582;23:FY4+TMWaCHG1atNQ5m/thkee1xsvvy+HtEFfmSneZ?= =?us-ascii?Q?dvhlpbhzInCnFkCfFbfQc0RU8/vCzvm4ZdM8RZqeehx9yXZLQv9V8FzZlffK?= =?us-ascii?Q?rbWKtXRWJGdVe4J/BJGbMmttdyeFu2D4MX0AJQBLqzOvA3Pw1WF+CiAFvN3I?= =?us-ascii?Q?mhSp5DZHe6kpEQ/DuSJJswfwZMzfU6iHzZb/R7o5YBnRoyheuy+bQmBeM39B?= =?us-ascii?Q?1UpWgNV8wbcu6tBMOYR3sbSoYGjyANdchjjRbGY+58foV6GAzBlm5C0PctU6?= =?us-ascii?Q?BXuv3Noj5GiKuD5o81Iym6X9E0NVWS4M956TV6ITO9hZ2ve/QwHTcuHxB7Du?= =?us-ascii?Q?rMYD4zHpFXh+FDFUpekAoyldRGd7PXf7JwPAjhYsDK+xTdirs41MK/uSNZ6b?= =?us-ascii?Q?DwmwviPcOKMNs/w80PE96vC49sx00cA4bOy4EByb7m9cA4GlBH/vH1bjhecB?= =?us-ascii?Q?B+aklR4aw1OyHiuP9dWFfFzz0gQJOUqr4UaKCJG/tPL88n0sD7BpUldlKQQS?= =?us-ascii?Q?VZJVjH2oHk19lmPPAs5+n8aNAypMwd6yAXp9sCbA7rklnfmQL96sNfia3jn5?= =?us-ascii?Q?tlGE1f6T1i/jDlPwHHj7yjf1fXJEpK2IZNNcQUYhD1qhy3YcU/1st+zdVzDG?= =?us-ascii?Q?XWVBGqnUgGO4FRXeivtR8s/ysXdOyP1IJ7JsaFqUYfP3awCiHVsXmmw84sZK?= =?us-ascii?Q?s9U2fvnkW4A71jg7LicvFo25MNcV0gqh4BjqUsqGb8irOx+hfLRYFfvvb4N1?= =?us-ascii?Q?/Gpk73LMH7ztgyTd3QAz24a0PNMTq7+K2NTQPaI9vr8LurU4NDgv6+U6co3l?= =?us-ascii?Q?6FNF9iPjOvH1NvVkbCBzC01jQM4ZaEenaETUv9dAYjDowQJcsMZ8y+EmqeXS?= =?us-ascii?Q?o6Mnn2qzppLVE0ZfNu8ejJGFLbRWNJ9cbYsy6x8ie8dz6r54j2ixP/M7RCL4?= =?us-ascii?Q?6GkahuTmz/Ia1GUPkI3ricaanlA42wiCv+YDOdXCfHOsyI5D9SYj0aLOBCBt?= =?us-ascii?Q?IavU6NBS0NZWzJA3WvP0RwkSrCEeqEGdgOl0yRFiKVsXXNvh2ehXtwoPCrgs?= =?us-ascii?Q?hsCm8da7fV+mUIvq1jZ8d4hsYAVnRpsq4cezlEv5w04Zx118awoxk7s4iUAY?= =?us-ascii?Q?qt5ODHQSYKxo5IfTYkJHkGSjkaNm671lfjbREwdq5wlO018d/gkhHPIVMODY?= =?us-ascii?Q?bh+2ulg9tLCangBJ6UOhGoA/bNwpgmlv6jB3jn7UdyG1/O7BJZD98yfyg=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1;CO2PR07MB2582;6:KQjLuWNNo+4bWV1De2KIhsmRRYvWmnwF+AV0K4mW0fCT5z5XjC5SlGWsb2zAV5V3OC5twFg4RovWQkzf1ZuRACvxETfqj0XBSFUSxc3yCv8H/MPsTA8VN/dMoZJBub2JeHcmdjHu+Uq1gfR25eA3PoyZ7y6aa6qHxv5RLcIsAU0SHq2Mewzl+bthbx7L2rFefh4YQLepkc9ldV/i6g5b5ENy3/v6rZJpXODSJd0Ne/CDoFMF3wbsXV01baDLGduavKHerNOXkpmsP4zP1xaJQVEDwraGGsYO/+ariivAz23jt4shQPOhSjvlrvaEL2P/cCz8q+FpXvqn+N2HvP/0E2cLtUqWTxM9/aHitibP0H+L7aQnRI6deBAfs5c+kdfwUDjksDgJ1Z9YzWdaYIteI6NZfSj3uk/Xw1HQ25Wwfa/pqshJi/WEE9BCzeT2GQyTAPLXipwBqjgTmuFffRH5F6i0CO25XT137OZaoyfA79Wd+5xji3t/PDzS+FcnLI/i+/IXHRSj8dV33C8KJgEhwg==;5:AUheWuC9qt9SQwR4pRlw/IlGiPMcS0Ay53J+13qNgaW1hLz3VVYDQY664fXe9Y+63yE1BAAhKcVvJbByEVWQ4FqeomcrxsdlLHAOnXfBnPjfaFobA0RmXLu2QWAQ0l5idtQNtuKjWbxxi1FNZ/romw==;24:CRn+HNy1dcFtcimcYkW8o/WtvPLPfXTpYsG0e/dTPKJbuVUFAY3c5Bcmpor3PFXkqd9AXwdfj9C2CrvLudyaFHYzXiBUkrSPujKT1rS0548= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CO2PR07MB2582;7:CKnnKGPCpLQG8I2uaebTFlkaouHWa4InkOe0kI8eERLwDP0/YjYhqynnk/lMykbFjg6bZX8kMa0FAmFWnsh0L9qnjuWL7lyujzU8dgcHWpKs1L9d0XGIWiuy5gB1t4Ms0rbkPxcAQKWtzC1MGQnoaZwad3j3+kKWSfn4Hp+dvw0AiLh341votljUe3F88tRsziYeZViDf3hTsV+LCJHpI0UxPU9i/H0Bvj5umQBJwfuX7zo/BAdmOhu4FlZI2pXE4qpjbKT1glpiHCaFXVkrJ1kl12ww3uOLOqdQrEyvWL5IKloMbyhiiNlLeoDko4j3av12zvXW0BI1GSVmR1nq0g== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2017 13:38:51.6511 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR07MB2582 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, May 16, 2017 at 08:07:50AM -0500, Rob Herring wrote: > On Tue, May 16, 2017 at 4:36 AM, Jan Glauber wrote: > > If the regulator probing is not yet finished this driver > > might catch a -EPROBE_DEFER. Returning after this condition > > did not remove the created platform device. On a repeated > > call to the probe function the of_platform_device_create > > fails. > > > > Calling of_platform_device_destroy after EPROBE_DEFER resolves > > this bug. > > > > Signed-off-by: Jan Glauber > > --- > > drivers/mmc/host/cavium-thunderx.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/mmc/host/cavium-thunderx.c b/drivers/mmc/host/cavium-thunderx.c > > index fe3d772..257535e 100644 > > --- a/drivers/mmc/host/cavium-thunderx.c > > +++ b/drivers/mmc/host/cavium-thunderx.c > > @@ -137,8 +137,10 @@ static int thunder_mmc_probe(struct pci_dev *pdev, > > continue; > > > > ret = cvm_mmc_of_slot_probe(&host->slot_pdev[i]->dev, host); > > - if (ret) > > + if (ret) { > > + of_platform_device_destroy(&host->slot_pdev[i]->dev, NULL); > > What if this fails after the 1st iteration of the loop. It's only > cleaning up the current device. The platform device is just a dummy device created directly before cvm_mmc_of_slot_probe(). So there is no need to cleanup anything else. As far as I've seen it the platform code 'tags' the nodes it already used, but I need the same node to be parsed again on -EPROBE_DEFER. > Use devm_of_platform_populate or > of_platform_populate/of_platform_depopulate instead. I'm not sure one of these will work here. --Jan > Rob