From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751505AbcHLByp (ORCPT ); Thu, 11 Aug 2016 21:54:45 -0400 Received: from mail-by2nam01on0079.outbound.protection.outlook.com ([104.47.34.79]:44263 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751143AbcHLByn (ORCPT ); Thu, 11 Aug 2016 21:54:43 -0400 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;nxp.com; dkim=none (message not signed) header.d=none; From: Peter Chen To: , CC: , Peter Chen Subject: [PATCH 1/1] nvmem: core: add missing of_node_put after calling of_parse_phandle Date: Fri, 12 Aug 2016 09:31:14 +0800 Message-ID: <1470965474-30431-1-git-send-email-peter.chen@nxp.com> X-Mailer: git-send-email 1.9.1 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131154396340625398;(91ab9b29-cfa4-454e-5278-08d120cd25b8);() X-Forefront-Antispam-Report: CIP:192.88.168.50;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(2980300002)(1109001)(1110001)(339900001)(189002)(30594003)(199003)(68736007)(356003)(81166006)(87936001)(81156014)(8676002)(50986999)(2906002)(305945005)(4326007)(8666005)(50226002)(19580405001)(19580395003)(36756003)(5003940100001)(189998001)(8936002)(7846002)(586003)(85426001)(77096005)(105606002)(5001770100001)(11100500001)(92566002)(50466002)(33646002)(104016004)(47776003)(48376002)(229853001)(106466001)(97736004)(86362001)(626004)(7059030);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR03MB2709;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN1AFFO11FD006;1:oz1FRhPTq4Zy2NzCcsZZBsVujivS0KLa/gsK2pj9j6ZZkmKDmLFqFAfDV8Bk9twspVLBJzM5Si54Q7ogYwf/JjBS2pjGqhqOUINjbUw1+HRWRZgUBRkdq4GOuhO0hIjf+Rk5fX2m1MdhQBYK/GnCoQky650+gYwMO+Z55C44AbNyfu/f1pFQBzjg8KLySkM+qo8MlcjGf0BA1DNhOJalchUwdEo9bw3kXHdAmyq9T09xzYO2ywLTrCxxUdD5HH5W/IaN9p0gLtY6UQmrVyEUkjK3ClzSHnCzL/P35Htm/6EsL2gLatvo0vsUwO18sCA1fP1UgBXnYt2oV/cCr4GXw1FhhnPOmDvaKRXKsoNGWxeC3XNLkntYH0ksMCw+rmEtJ6ad1IRMnUWUu1p2pMKPcfi2Qmo6kOj6U8jsKVCeA3WDSPIIisD8ASgeDc/nqJEI5bE0fzsXfIbtYksGZFZAT1/ioN1/BKXYfn5q+SaNoqRbmDHC5ZJvJQf3PnqeBCsCImHrOFnELYgNVltavNo5yfAFsbPj4ow0BZGtCrUaGRuHUEGHEPFPRodSwGpdYTJWG6w8s88Cr1H+s7A11NcYHMpf8HkD9E6f8TwPJgyb4upvAI3tqcs4YnflUvYPkqi62OBjYZGveDEv1cW/PzVkT1PjBI+59NLJH+5r+Q/QP9E5SI9aWpSsk/jgwZi2vcWDBrnvcnRmaKej/XsDzWKpXI+bn3BEvMJoC0IFCzQ8d0g= MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: daa52b72-808a-417f-be95-08d3c251a711 X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2709;2:54AX+c3lAh+mdliaYXL4J/8P86bNMOGNDYUQB3umLzEr7CsXML8b5swKxVpeBrMV9+gwa0M90ZXwyL3cCDa+RR3r/C8SfUBpCrArvh1D0t9j49cziVZeAkv8QMUCf5jRfdIYRaUz/fmbtnXjmywwCPgiaT6gfwJPOrkwwAO0UQLmXg7dcK66cYSBHfF/vopW;3:+1/nxEcec+vxEgcG7GU3A16O1YXHXSnIyUjw2I4RLsulC52g6ovacpeSIzdqrYglG0Eq/4X4J5P1SHql8y8v5LegqvF4KQJW+e3MFzRe3Rj8Zejjd55dS7rwexC0+ErH+xi55aawmHerkltAkKnfk+x+MNkYNh9x434iNLGC8TK4z264j63VPEUQF9ZZ89kfehq1w1gzFhl9ATPiFbcuHB4ETE4zgMtuTJy7kR2dLWo=;25:LepiBlY0hhidbfAK79pQrifrwqrlO/FmNP5N5yzl+8kQ/48GTp0SKVTXbXhT/LQaFmkF4R6jyPjXsH8wkDeGwWMqF5IoVGxpF9HZ/WjHOev5kbEnkEnBsicVRAIgWuSRMCdlvuU4m1BvQR8BLFGAsoNGifabH2OZm6lq5aKBNXlik0ReGplCwIXu2O2ITKoAjaLaenu7gH8aEwzV9IvbIV8CRVS7jg/SvWeviyTkOY8UpjuU2YysmSjB/OF7EjTVXh0XFvb0R1ehVzEmzbedjKanmnA7FUAM7AQb6oiOrSYczgzW55+uhA837hHhLRuZ6XvW0KMLoCpNr5Vf2sf35M3J1ajKkxQIhr7/BVFqvmUIuYP02YzwqvMLbQCWNOkEvqZ9LzJZsAcCKOyTIHUmdflr/vataLs3fj31UhopYNI= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY4PR03MB2709; X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2709;31:PAHGzYkMzIFlmhS97LbWNq8a9Ul7xss79byBPL+t3skpQgKRjzAgeswzVGe9Ri9qdcWn2SS/DUl5WRq5isxTxf2xkQdBe6Dt8Hg3WDiVsbBXo2VCN86/BY4XU5Vu/h7o4Y4kiio4rNeWOHGbJLAiqVxNK+YNAkQGv2FE81BPR5vazq0e40usURXTuV3D5Ci4HMIZ2f8ZFlrhikxM4VfXHnOtx2Q/0Rke5DTCd5DZX6s=;4:lx7Ne0mRvAH6vmkRSkmXHfbDrHp4AEG3CuYJdzG6jRzZw1ZOMATNVT8Y7k7ILh3CS9uF7D43BFA7Kr9cnJHUXdYu2xM2k5LU+KsQuuEK76CFWiwGc6CfP/BszecuMKu24vUnLACY4yuGymx629RBtl4DeFEUqMcFqKjlUehDMCDq01NHuWKtQ1nPnXwz5ywLA2c0aSXjFAyJ84NvB9ieJ1IjX1/GqX2Lwi0qoU3TKZ10p/TRa4Yz7oBHXKw+U5rC2yQcsR0GlMrgWNEhXwcXxVtjcixuWJLQzDM7r0EVpGEgjsYCCsSe5jI+MlQ14pAC3iiGC8XkH6qV/a0h8eREPXqNHr11IQmTEfe4pzj6Crj+o6+ZMDbQTavbYnSM2HSGKGpip/XCqGBH3O0V9G083gh1fv7QRl6pDZPsvbkGqWGLFqhz4r0boP9Odf38oCJZIrYY8R7PekGk0C2lOugITnbLNF5800v6fGaYLRviCjlQqMiGfwCW8bMB0y372RB+vVK8180Ld02NSssHHHrsTc4LunIicNmVHxWpX2gjfOUT64zWdhaPEv1sTKW89B3snPasRv1kyJFzUfFAY06E3A== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(58145275503218); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040175)(601004)(2401047)(13018025)(13017025)(13023025)(13015025)(13024025)(8121501046)(5005006)(10201501046)(3002001)(6055026);SRVR:CY4PR03MB2709;BCL:0;PCL:0;RULEID:(400006);SRVR:CY4PR03MB2709; X-Forefront-PRVS: 003245E729 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY4PR03MB2709;23:YzpXkYa5ED32a8uBFEySIVxGdHnaM9gmBqxNrIFha?= =?us-ascii?Q?7zlaIfYtdIREeKTiwr0eBNGR0Ysu+90BZ7I52gzguI2eQLrzW6ecofI1xD0Q?= =?us-ascii?Q?h+a448zllue2Sei4nVFJT0L4vNwxcU3fxKOCYDFKMBjhkF6JvBxBlKy7/TbP?= =?us-ascii?Q?M2lurMrr5GRrcmx4mKLKim0Wd442+qVMWGuRVKtvPKssN8/waMtJJmynZW4h?= =?us-ascii?Q?xaDFnEgU7qmkGbASY2aPuZFZWmnoMFS8mb4iX8k2svNZpUTCzyM/JR1aSjQi?= =?us-ascii?Q?NVCozhKHFpLpE/jeta3vNtirffsZnmK8lds+Gh2mIU+ovmA9PfU0h4YdinEo?= =?us-ascii?Q?Df+28OtcjCWqitwN7MCfCu54PzwgLCf4qfJfgN8PkttmZ8ncUi4Rt4CHp7N5?= =?us-ascii?Q?WAnw4fv8qYGqI9T21qgVVnUwtaHKxLgLpHV+IsDaMgwKFQ+rpLLmIWbi3H2F?= =?us-ascii?Q?cgBjV5PqF0eZjJn/Gn4uHktXfxgSeEWr2e1/0GmHX1Zj1IcM5EM/iMFNRm7n?= =?us-ascii?Q?/ONOzIj5o64z0UooymKIz6BOSvXaBqPA37shOkxASrgdjxT6DTsRStj7RCRa?= =?us-ascii?Q?C2sdo4WqNhLQn+ReDSNVDPOT0VBBXu9+b2nObHZmna7d8hRtzDmAxwUSs0ER?= =?us-ascii?Q?nZBJvroCsaKqkW41kEYi+ZDRIaw/6Z0LbIuYwadmJw0jJXJb5NMPYLkwRNuC?= =?us-ascii?Q?NjNpCkUFUcrYdaMkP1tbSG+BDCeB0ROzLaFc3NBeHkqapAv/S/2Gt3Lid30E?= =?us-ascii?Q?aOhmMYnppyIpg5P5WKz/suBc8YjKAug6TC5o15j4OsOHsx+BeEzJB1BAOTTY?= =?us-ascii?Q?b6eJMIfRhWe9fPqT/21ObXaEncKao0uXo3H5AWj2PK0FOEIXijob5V2u5WKO?= =?us-ascii?Q?e5n6+1PWzPKXtDGXzJAuHhgqqeH85nb7ePMU2/H1cT1S8WwBSDZJqXhB8eJV?= =?us-ascii?Q?fMfgnBlBbDIjcGIxUPxM8wsNHFnHki7fg5o3gz88y8T72U0UOe6qvB1zGiQ7?= =?us-ascii?Q?OOJqQitqfitTK5GClfH0Cl7xdf5O3xTLKLLyfiODgUwKlNB6LqiJI4719XnR?= =?us-ascii?Q?OHYEvgoXfO2c7y0ujI0ObV5amtJb/cGuUbiIagbfsWQF5hnl6wZ1qVZHIqLo?= =?us-ascii?Q?NS3j4g2tMY=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2709;6:hfPjiOGXzkmx53Q1earGT0sXQGVq6ctpsK1zxxiFvvO4dfWe3kpH5L90qr3zjxYx6DGgU8eVmy3YFkVNyaHDKSrAhW+rOj7pgJ6dyjrDqH1zhedI8mJl2Z9sNZJ+/5NmHRiU3mjGr6BDHMHVOq+jIKPMii3ef9Fd6gdTAhHnpZmXLzDV0hm6AsDQtlfADxkwhGNAlDGuvMd3o5PzspYJsu1bpoVfBCcSYUEpjVWql9/9D3/MHY421jaiBcEGMF2fnJW8RuDo+OMtPg5ok34JhZZBuWRIiEvKXodiAwVOR+w=;5:nmrmv1266Yp2apR9Z0SkuKAcrwBAA7oySPp1segA11Uu4303+AUndHjnCowvFjD1mP0KTMdx3saLCwk+KOoucW1g70zDB39ZVIPJRZ4hXdHNMhV4GqACCDHFislXcrp6OglHcI3K1CpC7ZTCepRvqtiRmj0GGyAgZX7mAhDFFq0=;24:ui75AbU4HEqwXOItS1GKsjR9sapthQceY0W5Cuau59Ek/MtizjlCeMxNy1iIy0XrjLauQGLagiZFdiV4X8Gq5gjjvvOfU+O6qHova2ynK1Y=;7:X5c7TqozF7RmgRlcbecj9HTtwCf1rzb/Z+UM09FEfO/hdVU7WYLSjxBi4bMTmgLpCqiA66NNx9kDBRBTX8wdSqnNCeapFFLcp11xOIMF2cJX1vJM/UDJ9YjrfBnpwaFbmJGDGy0/X7yj03StxHpS9J5fRHBzbB90/w98H5yG0ZscA1siPlVKug7aELuulKeaCv45YctrwEK+TC9cTC6oDSfR6DL3tyShKsZzM3LduBWCkHmIGIj51W44bl5BidNL SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2016 01:40:32.4869 (UTC) 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: CY4PR03MB2709 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org of_node_put needs to be called when the device node which is got from of_parse_phandle has finished using. Cc: Srinivas Kandagatla Cc: Maxime Ripard Signed-off-by: Peter Chen --- drivers/nvmem/core.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index 965911d..ea51472 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -619,6 +619,7 @@ struct nvmem_device *of_nvmem_device_get(struct device_node *np, const char *id) struct device_node *nvmem_np; int index; + struct nvmem_device *nvmem; index = of_property_match_string(np, "nvmem-names", id); @@ -626,7 +627,9 @@ struct nvmem_device *of_nvmem_device_get(struct device_node *np, const char *id) if (!nvmem_np) return ERR_PTR(-EINVAL); - return __nvmem_device_get(nvmem_np, NULL, NULL); + nvmem = __nvmem_device_get(nvmem_np, NULL, NULL); + of_node_put(nvmem_np); + return nvmem; } EXPORT_SYMBOL_GPL(of_nvmem_device_get); #endif @@ -768,12 +771,16 @@ struct nvmem_cell *of_nvmem_cell_get(struct device_node *np, return ERR_PTR(-EINVAL); nvmem_np = of_get_next_parent(cell_np); - if (!nvmem_np) + if (!nvmem_np) { + of_node_put(cell_np); return ERR_PTR(-EINVAL); + } nvmem = __nvmem_device_get(nvmem_np, NULL, NULL); - if (IS_ERR(nvmem)) + if (IS_ERR(nvmem)) { + of_node_put(cell_np); return ERR_CAST(nvmem); + } addr = of_get_property(cell_np, "reg", &len); if (!addr || (len < 2 * sizeof(u32))) { @@ -813,6 +820,7 @@ struct nvmem_cell *of_nvmem_cell_get(struct device_node *np, } nvmem_cell_add(cell); + of_node_put(cell_np); return cell; @@ -821,6 +829,7 @@ err_sanity: err_mem: __nvmem_device_put(nvmem); + of_node_put(cell_np); return ERR_PTR(rval); } -- 1.9.1