From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751461AbbJDHK4 (ORCPT ); Sun, 4 Oct 2015 03:10:56 -0400 Received: from mail-bn1bon0134.outbound.protection.outlook.com ([157.56.111.134]:59553 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751199AbbJDHKw (ORCPT ); Sun, 4 Oct 2015 03:10:52 -0400 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=freescale.com; freescale.mail.onmicrosoft.com; dkim=none (message not signed) header.d=none;freescale.mail.onmicrosoft.com; dmarc=none action=none header.from=freescale.com; From: To: , , , CC: , , , , , , , , , , , Itai Katz Subject: [PATCH 4/5] staging: fsl-mc: add counter to track number of root DPRCs Date: Sun, 4 Oct 2015 10:09:53 +0300 Message-ID: <1443942594-7189-5-git-send-email-itai.katz@freescale.com> X-Mailer: git-send-email 1.7.7.4 In-Reply-To: <1443942594-7189-1-git-send-email-itai.katz@freescale.com> References: <1443942594-7189-1-git-send-email-itai.katz@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11OLC015;1:11eZiNmb8+KxgeuXXseFno49vtmrED9VSUMRmieDOzO4dksfgfOrz+INk9hV/BSczBZ22nkw+wSmaiWxbznmemSCCMyPFdlntICf2aSf/690Z7Ozn1mOLyfH5fc2vVZdVtkQGWs/PvhcAqQYOVC8c++8eGiM+fzC1EzJ9pmmC4cctzP8eV1o2ul2bBLszoxW1dUsd3rDyF4ziLJK1Y/q9z/rGEdkHhsZe2dQG2PIjtpvdjKNsREITF/Heh2KyEYrVergkiA0PAEBOtogp08FoFNLoHktgyO1mcpMXjSh6p8O+6o0HwPCNWfQwF0YcRtf333hvEcpgPbJ1GRpLgTlEsn97U2UHeRwJxaBcHG96khH2k8AK+8X28bAGgPz0bzUfbRXAt3hXZ4Gt5YHex1CrA== X-Forefront-Antispam-Report: CIP:192.88.158.2;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(5001920100001)(105606002)(48376002)(86362001)(2201001)(86152002)(50466002)(81156007)(77156002)(62966003)(87936001)(5001830100001)(68736005)(47776003)(64706001)(97736004)(4001540100001)(85426001)(5001770100001)(106466001)(46102003)(5001860100001)(2950100001)(229853001)(92566002)(36756003)(11100500001)(189998001)(5007970100001)(5003940100001)(104016004)(107886002)(5001960100002)(5008740100001)(69596002)(6806005)(50226001)(19580405001)(33646002)(50986999)(19580395003)(76176999)(17423001)(4001430100001);DIR:OUT;SFP:1102;SCL:1;SRVR:DM2PR0301MB0655;H:az84smr01.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Exchange-Diagnostics: 1;DM2PR0301MB0655;2:A/BhosDEkAEfmUDmj1KtffDi3eJA7tV9iXvJVUr5jYBtCz5kqa2znzVafY9zAaQS4NE+KCJaoNldJ79ZOk6F+OkaI1G16cA5w04FNeWOW9aPMm5cMfRwR2+mCMlhkUsKKMK1474dIwxSP/dIWSeR2EzNxaLvVeAKiUELTzomHI0=;3:+g+F6NEYjqt1jI2+0iWHDuJkkV5ce2w1RHm9XT4eTVRCCx7fbKV1f7fy+U95lLqS7v6hw+URcQkpFL4VMUBfVMwAmzEpDeJ45AP5IuxJpwzgjxAWJC+vfAh7mYFQ/Tk41WH48lMK4OH/f/gZieb1MBqoQxH1acsRVKISgOaLgkgkYjb0HbGnjp1B43jVVNSvwKDoc06yk9hxf3e5WFaEHwgt2myOQmEwgOJ4txbAjfk=;25:7A5eU6loLJS1r2nJYHlhsaKpxX6SvHBisn78lH3+2/MIwk2tldDhS/BhLXp93fslVo97FqNMNS21ynhfGGImx/Gyxd7FruKinj2TlUf2XKk27OsSWbQVdp/NA/F7qjyeEazMe8s/hCxwmNFKGistQ/vHQ2KKOu3++cyHvkJNjFW4Q5Hm3pd+fFJoWg6yOtBNI6kpoaFtv+qyQm0EOr/xsZB5Ga1VwHg1gjGw4Wd98HM19cmP/a8X2hykev8wqSrGD8HQ/xEpuyAyiB93DmAGxw== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM2PR0301MB0655; X-Microsoft-Exchange-Diagnostics: 1;DM2PR0301MB0655;20:rO3cJoWKtecKWKFH469Sccq/T5yk7j9BH6Bh1XfuafLQTD1KZ/5IPjw4nxCLnE6ZHB2MvYWFX7ba1iEkdDzGoesJNOg5Uk5/ZjRSSPv2wrGf1LtGyCrDCUt+3j4r1Fpgx/klLycc0unAHUZaVuGlxEvDA/CKwENJaY3blWryiVTOyZF04r0Pj1WRqW5V9l57cWclZH10QZDvBlSTd9n92XKnHmSmnJT1zaMggZYUiCFvCVS/rYC9GiUmqUcdbd5RuJ/vc9l9qywyNbFlz9uoERk1NOu2EWpXehvCRPRn4D3Bi7vWYccU5T5wBYfyPk5VpvDGFnfPzb3zjHoUX1JnfUE89XUwi2TKlU7vrWv++3A=;4:LP7UqrVzbrvxEblf2ZVSMAH6HDtqcl+MXYn3YqMoMy5XOWAgrIfazFd5bwLCmHI4MlE97nf4woy7XhgZIPK4m8/iyItT9NqjTN+d/120L6TwUzNNehGKPTaMJ7Dpu8YSvlCxdux2qJXjhk4WxZ1xf3cUZP+6BjufSmh3y6EI6dLix2iXrPRUiVxDrkUKjlNvkhflVNXG00T/BoChlmkGJokNCRo6WAfto7IjNrtVsmTE/lDxhwA3jxashQpi9YU/h+MsomzGhjwK4Y/gEmRkI5BwZrJa1UvobzDTJpu1F3iPNGQHad8cObSo5pyvyfCraLckcYEXqu6dEYPk0Ky51Hr2AChbPlHzm+tbbn/xAlU= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(3002001);SRVR:DM2PR0301MB0655;BCL:0;PCL:0;RULEID:;SRVR:DM2PR0301MB0655; X-Forefront-PRVS: 0719EC6A9A X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM2PR0301MB0655;23:4M0c4EIMyVDuDRzrGebtzAUD1/zgk+iWY4MFm9o?= =?us-ascii?Q?qli9zTnxfa1skMGSsbg8gFC1ImHF9MrmAlX6FMUKAA88MsfVpdUGlmLadEWz?= =?us-ascii?Q?e80b+ZrZq/72gU7x0Br00ZJ1mSSgXGdJjsEihx62RWeUeg65tQafcEgH6Z57?= =?us-ascii?Q?Epe/LR5S9xQUZ0QSfC139BdTLaNkeAlX1an/lL1bffJN01A4voCUF8zKgfgW?= =?us-ascii?Q?+SQO0rDTkN8t5mIaPaSFd/gyZnPsVMueFZ0t5VUP9ikX6QYwpDXY9kQB8d3H?= =?us-ascii?Q?S1XUhW6Mki8UjIMUCfqcg27zr5qoKYtGq3AmI6kNd5O1hLORxMHhvB0XaJUj?= =?us-ascii?Q?nryCw72JCj7Eg25iF4gecNhFTso5MyDmfmEnOgBGnSQEr/GU1ehbeMlasNpJ?= =?us-ascii?Q?Hp6SJeqm0Qoh3VFcTp/8V8FEP+Uqo6NEQYLViqMP8XMMLeKI5L3c48AVWegz?= =?us-ascii?Q?5VTCVhFL0vQb/aeY7D2FPIgRuBh/nvGFuBybaWnIjat4NH7vHoh3FiRexbSh?= =?us-ascii?Q?YTUDZau8leC5SXnCW1DBBQT9dJHWUU24vyU5u9BdiKhL7AMlkmOYpZtsQJ+1?= =?us-ascii?Q?K5oom3Dx85CN3nYCgC8GyVI81l8Xf5sc6zDWfhc7vowfQ0xGcZ4yXpAIB4uT?= =?us-ascii?Q?re8j8OMlhHDWVgCdHggsATxaislLmpwhecGVxrqXyR2lDNw50NcgI2i1b/I6?= =?us-ascii?Q?vNwdhbiJzJg8TVeLi04H9Y0jhkZW7KzRR3snwLohuCX0MaiyYoHBb5FGah0E?= =?us-ascii?Q?uITfFoN1WR1AALqiOM7/ycCZCcjyUu7l4BYnN38FcuENNOfuoW8h7nd6oOBL?= =?us-ascii?Q?/H5NAkPjtBMXrHf66Dug6qbV2+I/rUEVvxmZEgFM3bNpyxGKuLLzOvzGXrIf?= =?us-ascii?Q?h7ZwDUlIdEsvhrSTS8RjsSJvsxJEBJWxbhSsp3cnYIZ40w+BrpQ+6q8ecB5H?= =?us-ascii?Q?kkkEWq7pzDQVZrmlOaEUIG+/m/YqAgQBGQ5KHb7A+dwNKlPThSrXSdwQca97?= =?us-ascii?Q?FWlvT46gC5hAMLF+eXwAm9Kt1ZewL+K2cQ3NxVMPLVzcC1J/lGu3oXt2nsoF?= =?us-ascii?Q?rqrMGmhrkEmdayOqEpX8nJiFxJ4IZMjUYI5Xv6knPA7c5PzPa6OhrPats3ft?= =?us-ascii?Q?o7AEQsp+AOY7JiMr6oNSU5rJeDh8GxZh5lDmib1evuvtfspqU5lmi2+RhJOo?= =?us-ascii?Q?vhW/SfRMzh47qO9hatNUuDmz2PZg0hQryf73zK3WRIyD5xkLgUbCkdswEo+m?= =?us-ascii?Q?Srn4gO1hShFZpWuCmKZWLxwJk4P1Fbg9l+89TLG+VHzWTX8S0l1AnYGptKen?= =?us-ascii?Q?EmIkoqyIwJnjN+fIQNOFjO/b34odCPioCjla3WgoY4zokTYgFcCI/t8GV2HY?= =?us-ascii?Q?VkLR1hB5v+MTYyo2u7qDJSRp72lE=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM2PR0301MB0655;5:sPr79Wo/OzLBFDnchsWjOwf4W+WH8EV/W9QJXoua/1kFfXX+btHPeIWWn9pxt/X4UNNJABjBmbajjWksAK93TGnM1VfRWsuiYSWqWBTMGFuA0KzqwisBIDEC4YIRXE7KU3PeuK7vEKOub4rIWUcctQ==;24:FIKQJ1LRoTFEX8ppP2zMUb9ohkob3IaNNcZ9ek9MatMqTmmidsLMtCRfuaRijr0Ejl95u3AmvGxsWb2jebSLJrxPT7xi9Gw/fsM1BT2Y02Y=;20:gqtSCMA5G2V43aKoZd5JXKYUzV6oHn38v3PLt/M3YkLkUdbzrCP3S9StVudNjlwDLDri4c1QTrI97sLgpQAMPQ== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Oct 2015 07:10:48.0857 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d;Ip=[192.88.158.2];Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0301MB0655 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Itai Katz Add a counter to track the number of root DPRCs. When this counter is greater then 0 it means that at least one root DPRC device exists. Signed-off-by: Itai Katz --- drivers/staging/fsl-mc/bus/mc-bus.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c index 37f51f3..8a2b99c 100644 --- a/drivers/staging/fsl-mc/bus/mc-bus.c +++ b/drivers/staging/fsl-mc/bus/mc-bus.c @@ -109,6 +109,8 @@ struct bus_type fsl_mc_bus_type = { }; EXPORT_SYMBOL_GPL(fsl_mc_bus_type); +static atomic_t root_dprc_count = ATOMIC_INIT(0); + static int fsl_mc_driver_probe(struct device *dev) { struct fsl_mc_driver *mc_drv; @@ -213,7 +215,7 @@ EXPORT_SYMBOL_GPL(fsl_mc_driver_unregister); */ bool fsl_mc_bus_exists(void) { - return fsl_mc_bus_type.dev_root; + return atomic_read(&root_dprc_count) > 0; } EXPORT_SYMBOL_GPL(fsl_mc_bus_exists); @@ -458,6 +460,8 @@ int fsl_mc_device_add(struct dprc_obj_desc *obj_desc, if (!fsl_mc_bus_exists()) fsl_mc_bus_type.dev_root = &mc_dev->dev; + + atomic_inc(&root_dprc_count); } error = get_dprc_icid(mc_io2, obj_desc->id, &mc_dev->icid); @@ -540,8 +544,13 @@ void fsl_mc_device_remove(struct fsl_mc_device *mc_dev) mc_dev->mc_io = NULL; } - if (fsl_mc_is_root_dprc(&mc_dev->dev)) + if (fsl_mc_is_root_dprc(&mc_dev->dev)) { fsl_mc_bus_type.dev_root = NULL; + if (atomic_read(&root_dprc_count) > 0) + atomic_dec(&root_dprc_count); + else + WARN_ON(1); + } } if (mc_bus) -- 1.7.9.5