From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751966AbdBALoQ (ORCPT ); Wed, 1 Feb 2017 06:44:16 -0500 Received: from mail-by2nam01on0053.outbound.protection.outlook.com ([104.47.34.53]:28416 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751764AbdBALnq (ORCPT ); Wed, 1 Feb 2017 06:43:46 -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;nxp.com; dkim=none (message not signed) header.d=none; From: To: CC: , , , , , , , , , , , Laurentiu Tudor Subject: [PATCH 4/9] staging: fsl-mc: don't use devres api for refcounted objects Date: Wed, 1 Feb 2017 05:43:24 -0600 Message-ID: <20170201114329.21276-5-laurentiu.tudor@nxp.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170201114329.21276-1-laurentiu.tudor@nxp.com> References: <20170201114329.21276-1-laurentiu.tudor@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131304230183092063;(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)(336005)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(305945005)(4326007)(38730400001)(626004)(33646002)(356003)(85426001)(68736007)(86362001)(2351001)(53936002)(2906002)(97736004)(36756003)(92566002)(50226002)(77096006)(5660300001)(5003940100001)(7416002)(110136003)(6916009)(6666003)(8656002)(2950100002)(47776003)(1076002)(54906002)(8676002)(8936002)(81156014)(189998001)(81166006)(2876002)(76176999)(105606002)(106466001)(50466002)(50986999)(86152003)(104016004)(48376002);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR0301MB1644;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11FD045;1:Kiy9mFpVgvO6NLsMLwsCInNLYhl8QyEBsvkHozQS8qv5naMxES07n9+elkf6VWBLq7nvzGwR0lpoRElVrPe/yeRySXynfXr7tYFJy1fkREdpSIh/6eD1aUAkxUOR9m4naB8tmOkq8sxN55nvP8f6SzCRwy1MqUiErtNVD2O9bzf5gO2cUXA1CJfv6IBLClJwIB+G2Q/36YgfC2ZET8JPk0cSQeXSdp7HK85mMk2fhfikQw+byMFcdjfF4oS4GRJzRFUb3W5LR8JC/252G9omzVJKDZr6A7pOyqs+FDS+TmdCPgi1i6d4+oC3vJCsWirVnM3ahHCaMU0gFNuUKICSQ46s6MYTcwwZ/o2aMi5Arze/3sdk0Aly1RPxH9KNXFByo9G/itlJYr7JV96ppcViCKkiDOqtFiXqFKtte0ZNlv4LWDkhGuDpcHd+hY85A8CARg6iD1Ko8UQryVweZgZHVkLJ0MTNwk+vqTgtnEn0Q4eu2SPnCXwtiS9XfxV84wKtuluIhiu5r55QxOa8LntjNdVId7B3A3mOQqAizd847c7xdSJ2EbShoUqyfSz36g0QsPgDV1m/l+r7I3WUhBV7GoUn8Ed1yJRcUDEWD9wv6Cvu0e4am91WHWy1/kJW+7D88mRlEAuLO1+J8d64tlAMeZvQqg8TcCyWiWJeZub/HtRUyBt7i8pK1U7q/zhCevD1SuUMKQlvjiJ7cHVq25Zz/w== MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 3214dc84-e4bb-4273-5ea9-08d44a979006 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:CY1PR0301MB1644; X-Microsoft-Exchange-Diagnostics: 1;CY1PR0301MB1644;3:SaeXSXj9ahnC5P89zWMN+S+kSPZpWWnC9Q5GUmfhpht2EKVHX577bB2iF91ojD8tGSY0kHz91GaXdxYPoVJTBYZhPSfmRycVsyA4meBf+uwMTjiGfDjO8MTcrU3eI7+7p7bDbyYLi+W0A8wijw9e6XF/tpHTC9alz4bm/J/v5IwpRqDaRyeZzVED2wstc2He6oFyTgfX/IGjuHyfujQV1yYwgE3SlvvKhlOCZqGlM5GKdEkvEQriO5WCANIntHx2meffMA/mCp2et8DvdvCHXXOQ2pPvcLraQLQl+4C+08FaA+vfAeakxiH2uGWjgzhLg9HGxLxmTSWOouxh7SnZFvh27tt/5e/AU4zh1JEX8vG111HNQNOI4g5kA6B0dzE/;25:9wIao4rYM5EmtY7BRBvM24poP6DpSkDKa6Jso6pv3s2oI3bmC0K6xluhMqwT29Q1ZmRU0Dgm4P4jiOpM6HpQIem7W+fxGio+G6E6rC7nxV7KPp96uU8pdvxLnIsTCWYp/SMDHOe64lm5ZMIaW/g2bP/AjiU1Q6VpvemLL5y6YIP8d/n8h8/6dKbqlS/cxRhRTrXSHjECfWH5YW5FufaNnNMacrZ7vfUTp7HPhhcvpC3TYdAhntaDavYSirnuTVOCHZttkUe04ZERjfDna29uxjpLVAS0F/kWjCMOnCrwT1bA4lI+QUxxvQgiSvcr9xtzLFh73L7ga8H14Rj3sxYuoN6SMZxCDF9Dh5RCPL+LeqadtMRQaDSYiwX3jEy/jOZm6NS2dYyOOXuwjW9CxAZII954PnjpRE8bOdIjdPZYxhtZ86bTBI/5HTKPxPCPG6X+oiLrA/CJE9N6yd8+iaqhwA== X-Microsoft-Exchange-Diagnostics: 1;CY1PR0301MB1644;31:tSjYUxfgFHIDkBJVzqYCltH9813hC7KzoFPvVbPtaEEPMchCCTD6HQhJzkD5Q8MMUj7pehlVz/NPdpr2K5VIjUSQ+prKE2D4z8pVsrVp6t3+LQ38nHG+92MsLXRhgD6gGNyfoAw0L8JzPRWr/aXVydP/0Rwiv2LWZxgCHtywMN4ytw36synklWscZnfBxj3bgC5hgBpap13m+/Wabx8VxbsNO99prL1k9PTKpj/RP3grYnj99jWU0fYrHDPkA9pjBHtEeIrrGToOKl0xUZ7kzg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6095060)(601004)(2401047)(13023025)(13017025)(13024025)(13018025)(13015025)(8121501046)(5005006)(10201501046)(3002001)(6055026)(6096035)(20161123561025)(20161123563025)(20161123559025)(20161123556025)(20161123565025);SRVR:CY1PR0301MB1644;BCL:0;PCL:0;RULEID:(400006);SRVR:CY1PR0301MB1644; X-Microsoft-Exchange-Diagnostics: 1;CY1PR0301MB1644;4:3CWivAXD1MIGRTCUBwn51heWMXOCfJ8+h3+CnnSzneS9L2XIT/kjzGMQ09RfZ7is6Iqu8tnU1+umbrgWJnhaN91Xl+90UQ1I6SK9zr1f94wCjWIlixgJ39zjIHomANc248LnXatI4PrvCPMhFmpLBrMFsQrrHejSQqnIi20UH56tcAc2fUIQQEW8jAB8KfCT5rZ7b2/17RLpglFIkPQJ/FjFZdoSCOifMeITtUdfh/eFdd9TUkPKiG6JyZw3zApa+Q8FDdu9hYHkRfitaNR19osWxj8IZP8OtRX536LNMGWM+Z4lFDuJrZaMhUL1nWVY4ls0pP1jz1z5rfxsdBaY3WLMZGm0XAEv88VVl8zwH2d4pysMOLsGFNBQV2iy39rz9vu7KWQ9/MpRKGBg4gtj8Z575Ezq2cCdekOk81t/mwwJPzgHPnIylWc8cU6cVKsZ992nL6a9RsVQAhWKMOL1ChNRzqyJ5mq/yLdq3Jy62PnsFoTbEVx/6s5BpPPq0BeGHRJLjKissqDmdknhKxlDArxoZIviro71iQ6WZLzUlaL73HZc4EAECanVd5xG7k0mKOKGQCZqCgXCiuq81yt3ugeiU9+B/umFJA+WCU/czcMGykmcGeyVqr8yEcJKFFQauocRDMITvLJbnHT+cyYvFEWUwnAtyA5d2jMqOWzvLIsuunennRB51wxuqIyDHy1Vpuu/zJsptCYZ+QjuAGTy37fetzbXYi2FU3ABVas44WDLHaf/qcWA9OQsod1DPKOR X-Forefront-PRVS: 0205EDCD76 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY1PR0301MB1644;23:27lDT1kSGIUVUiXK1ZgRt7+B6QYtaR8rSIZhXna?= =?us-ascii?Q?L5lXdd0X/AJj1QMTdSYG5BPiOIQh8Jbg014YJUFatfxoYHG8OLmqQFv3qZYw?= =?us-ascii?Q?oOROZrltYbCRG+reKOp2fqX4SqKJQVAiAzmbZ0fYZMN0CZrVGsyDGPy7gpDW?= =?us-ascii?Q?lgyqylcdKYBA5Xi9MoA8fd9erRzFJvOOBytoc9egpcZmJ3MeiGScvyZONM1+?= =?us-ascii?Q?/+FvpGj08mkIeb6dwNRwBkehjDPRbjwAXIj0XixAqqn0ckggPeaN35O7Nhil?= =?us-ascii?Q?L76oPmb6TR10LWW5m1x7xBKOjhuNXKVhfdVHFkDsBvIOgSyn4gKM3a7lp26A?= =?us-ascii?Q?v4ZCYMQROs7o2jFieiCvRgkyqWAMCjoZOGAi/0tSu7hg8cAO4x8d8bkV/Dig?= =?us-ascii?Q?icpM2hMLTD3FMEX7l/UPtdNbRs/uJ/CFeLB2Y0KjIle1xP+L5ReWxUVUI2EA?= =?us-ascii?Q?BHMd0WweWw3S2swDuxurqvcRMURu3IgT7KDXwBGIExWqN1ue+6CSX3ZmFVml?= =?us-ascii?Q?ksDBoq/94AY2uN7unQ6U5o9sGMLAJKF2mKA5FSUYG13CrWGgpUCVbIhLHj2V?= =?us-ascii?Q?O2Op92sTPT7We5TKEca6V2Tc2OYlZLipH30G4fvlPdLkYmy+JYOBYHLhJqFm?= =?us-ascii?Q?j20Lh9FcEtGJ/OUBJDtMWSD4Kmea13k4vr5kLGnJ+aGTtJmVvaXwXvKcDDAC?= =?us-ascii?Q?l0IGYRApewtF5RiHQs3hPFu5fw/Z7Xfq7H5HGCb1cvxWnZyjQQYOM0Qd2/Fk?= =?us-ascii?Q?Ux2cn18P5aq+LDneEqVUHW/JLY5dMm+RN+38SzPQzqt5/o2McOnLuYQqSp+y?= =?us-ascii?Q?8TzKLoH6jklL/b6tDBSdpIo8iMacKJ1HXTfCZTW4a8AtlTGcmR27YWiiWJFs?= =?us-ascii?Q?59z6jxVdg/heqkcqauDaS8HcNEh+b127ziK3c9w1+LBvM6fW6Rs1CyWClquu?= =?us-ascii?Q?fHSefphs+My5lwE9nijhJa3gSJsKfZIWjIR8yCUFLFORbe2q+m8HaBcPmbCz?= =?us-ascii?Q?XSk34rsUDvr0N0Oih9whw2YymrgNnJ3OdGueMnOEP/7LtCRva9qWc0Sf9JIm?= =?us-ascii?Q?dY5Wf/pDSO5MOrO+2Z3fapaWZmll2DfYRzqByKGfoEEkjhHQVYD/Ny0/jLK8?= =?us-ascii?Q?CMEaEzW+xAKF4vRLs3iiwwPFOP1yK/9Mk54z9zeNtdGNCpNposAge11KnnO3?= =?us-ascii?Q?cqS8QwZ+h0G+zHaVZpTRKk7J84Gvcdu5hjrfd?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR0301MB1644;6:ERLR0wBcpEaZZzXLs9NRZHYOfW0T7f/VzQF+7HGksGQzz0FVtEIVUOBUtLrLtv87XoQSTPAKcESkEPYXbVWn10661yXVuq3aiR2TgL0IahjhhadtnHETDU4TehRvO/wqSVjwyDMiyEmXjlgPSw/+JzOnMP0prBAGgFFgVmfZ1sFkpf8nz92K5Gb1EOF9mbJR1Lr2AbtmGlgan3b/giJEPiTKXt5dVbSKD+uGiCsbJ3dXEcWt1bz/q4Xop03xqMuhIETVVifuQClZD6VzdIyr2CB3KeUwC5ow5yISKBtHmu5J3yPkUW1D+u7lVsSrOF7k7EBS5unIAaNDd7tsvOc9k40PH9BY1mtRaoFBjyM0n/On0fBMiH8F0qeo5UEmKb7ShC438MUDL0QLlbGZ74Q2yQ9btey++sPL/vdskOS7UiVOj0+5vs4Ca3J2Wmr6e8cn;5:RQqIHgRZj9kszDqgMUmpq/fDzDIcxHAPaS81qAuFod5R7b5WrkE3vA6RNdoF48MmZ5RyieGDkBazzfZ6Main2qZbfInX5ij/sKWRd8L8ibveZV9IlNguWd+K+ns4iPTJPcSe2qFen7f7stYrMHEYbXS5PB2zyu+o+d6pe8ZoRnkcxZpCFbH/h+XeniI7tP2k;24:K5Ab1y+RchzZNvfDDGMFWUFm7CthQBfgNsUgnx3h+G9nFeRh7+MR9UBWw+wsfj6pDnaKPPTj4x9SxMbEtPz+mbOjaNaQ7pFZb+TZp0WaZ3E= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY1PR0301MB1644;7:+lumUN9PU2s84MH7zGPP+0knjCYwIL2k+B0X4CTWkmfIqctvpV5K7uLJ82yxkcLQrQ779iiEx0xJojzQRgBTRhFWrXNJszGrhycYYxN7/YBDdsamerwN8weUPXQUAuqwafZbB+2hv7o/HvqeaqIJu3ag5iWHDqZcs1oERuoEYEeLY9b83bfBFKpiKcy9AZlQFbWv96CU0A2Cmsgd98WDWF33s+yobcxFr/WNt956/JiTYdwuUF8bp8NtVKcySIV2pKBS+PkqqvGaQDBIci0yTUuhI7vk81cGQ0PiODaSdeXtQHdPbx7XgIJOD9Oos1asZMgfjecHvo0ky9aiGwlRc7cUTGqN3MSGfccCD5joEAxDzOSeOh0L7wdZKYC9jIByUZ6hGPC3HbAsZouj2C2LBti8Clc1Mia4RzLC9HhwsPzCPy0rA1NSHAoDbCCzGTKNR+DIF7u/1Q2KY4MkbF19CgJyUvAxgh6/9HVAB91saawjH/5yE4gWbop90zfFl75IW/1BWyQoQc0+Wd2HZsQTNkxy3hw37/zi+DvtyPZy8miIqSsSONjV8h6myvo03Nb0 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Feb 2017 11:43:38.1222 (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: CY1PR0301MB1644 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Laurentiu Tudor Mixing two memory management systems, in this case managed device resource api and refcounted objects is a bad idea. Lifetime of an object is controlled by its refcount so allocating it with other apis that have their own lifetime control is not ok. Drop devm_*() apis in favor of plain allocations. While at it, let's drop the slab cache for objects until we actually have proof that it improves performance. This allows for some code cleanup. Signed-off-by: Laurentiu Tudor --- drivers/staging/fsl-mc/bus/fsl-mc-bus.c | 43 +++++---------------------------- 1 file changed, 6 insertions(+), 37 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/fsl-mc-bus.c b/drivers/staging/fsl-mc/bus/fsl-mc-bus.c index 6601bde..c493427 100644 --- a/drivers/staging/fsl-mc/bus/fsl-mc-bus.c +++ b/drivers/staging/fsl-mc/bus/fsl-mc-bus.c @@ -27,8 +27,6 @@ #include "fsl-mc-private.h" #include "dprc-cmd.h" -static struct kmem_cache *mc_dev_cache; - /** * Default DMA mask for devices on a fsl-mc bus */ @@ -422,17 +420,12 @@ bool fsl_mc_is_root_dprc(struct device *dev) static void fsl_mc_device_release(struct device *dev) { struct fsl_mc_device *mc_dev = to_fsl_mc_device(dev); - struct fsl_mc_bus *mc_bus = NULL; kfree(mc_dev->regions); - - if (strcmp(mc_dev->obj_desc.type, "dprc") == 0) - mc_bus = to_fsl_mc_bus(mc_dev); - - if (mc_bus) - devm_kfree(mc_dev->dev.parent, mc_bus); + if (!strcmp(mc_dev->obj_desc.type, "dprc")) + kfree(to_fsl_mc_bus(mc_dev)); else - kmem_cache_free(mc_dev_cache, mc_dev); + kfree(mc_dev); } /** @@ -457,7 +450,7 @@ int fsl_mc_device_add(struct dprc_obj_desc *obj_desc, /* * Allocate an MC bus device object: */ - mc_bus = devm_kzalloc(parent_dev, sizeof(*mc_bus), GFP_KERNEL); + mc_bus = kzalloc(sizeof(*mc_bus), GFP_KERNEL); if (!mc_bus) return -ENOMEM; @@ -466,7 +459,7 @@ int fsl_mc_device_add(struct dprc_obj_desc *obj_desc, /* * Allocate a regular fsl_mc_device object: */ - mc_dev = kmem_cache_zalloc(mc_dev_cache, GFP_KERNEL); + mc_dev = kzalloc(sizeof(*mc_dev), GFP_KERNEL); if (!mc_dev) return -ENOMEM; } @@ -561,10 +554,7 @@ int fsl_mc_device_add(struct dprc_obj_desc *obj_desc, error_cleanup_dev: kfree(mc_dev->regions); - if (mc_bus) - devm_kfree(parent_dev, mc_bus); - else - kmem_cache_free(mc_dev_cache, mc_dev); + kfree(mc_bus ? (void *)mc_bus : (void *)mc_dev); return error; } @@ -578,23 +568,11 @@ int fsl_mc_device_add(struct dprc_obj_desc *obj_desc, */ void fsl_mc_device_remove(struct fsl_mc_device *mc_dev) { - struct fsl_mc_bus *mc_bus = NULL; - - kfree(mc_dev->regions); - /* * The device-specific remove callback will get invoked by device_del() */ device_del(&mc_dev->dev); put_device(&mc_dev->dev); - - if (strcmp(mc_dev->obj_desc.type, "dprc") == 0) - mc_bus = to_fsl_mc_bus(mc_dev); - - if (mc_bus) - devm_kfree(mc_dev->dev.parent, mc_bus); - else - kmem_cache_free(mc_dev_cache, mc_dev); } EXPORT_SYMBOL_GPL(fsl_mc_device_remove); @@ -835,14 +813,6 @@ static int __init fsl_mc_bus_driver_init(void) { int error; - mc_dev_cache = kmem_cache_create("fsl_mc_device", - sizeof(struct fsl_mc_device), 0, 0, - NULL); - if (!mc_dev_cache) { - pr_err("Could not create fsl_mc_device cache\n"); - return -ENOMEM; - } - error = bus_register(&fsl_mc_bus_type); if (error < 0) { pr_err("bus type registration failed: %d\n", error); @@ -882,7 +852,6 @@ static int __init fsl_mc_bus_driver_init(void) bus_unregister(&fsl_mc_bus_type); error_cleanup_cache: - kmem_cache_destroy(mc_dev_cache); return error; } postcore_initcall(fsl_mc_bus_driver_init); -- 1.8.3.1