Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754192AbbKDDGH (ORCPT ); Tue, 3 Nov 2015 22:06:07 -0500 Received: from mail-bl2on0103.outbound.protection.outlook.com ([65.55.169.103]:59680 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751589AbbKDDGF (ORCPT ); Tue, 3 Nov 2015 22:06:05 -0500 X-Greylist: delayed 936 seconds by postgrey-1.27 at vger.kernel.org; Tue, 03 Nov 2015 22:06:05 EST Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=freescale.com; lists.infradead.org; dkim=none (message not signed) header.d=none;lists.infradead.org; dmarc=none action=none header.from=freescale.com; Date: Wed, 4 Nov 2015 10:48:28 +0800 From: Peng Fan To: Will Deacon CC: Peng Fan , , , Subject: Re: [RFC] iommu: arm-smmu: correct reference count Message-ID: <20151104024825.GA27479@shlinux2> References: <1446555557-3097-1-git-send-email-van.freenix@gmail.com> <20151103131734.GE14159@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20151103131734.GE14159@arm.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11FD044;1:eaj0ydd/bpQ8cxiTyQiB9KYq2S9C6LtKn3V5J3n1bpeg6QVqIDSoPwfaceG5V4myaQ6wHPCiZwIYLgtENcKsmQ7zCw3n+Hu7+SF73AQxd6KENBejZylRZLCu/nl9sILf8w7kobTgXYZQ/wFWPdez6BBMIMvn1mEGdhKClzs+cQmYtQSkPh/bROI29+OIsl264tY3efRTLBAmDFn5vp/5TYnU7ugiPTppoRLi+uTBDJXKJquKtKKEwEIOtvCI3/usxNRm1yqPsu/90zUwCVsKFl/Pd82nVKaRXkGsi0pAeYRP1ccu7lM+NE2+BD++1Jt2pB/9U1hA5yHes3ii8YMalp6e52WObqQeQVASLki+1jPz26PWdeCVkvP/QtHax040 X-Forefront-Antispam-Report: CIP:192.88.168.50;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(1110001)(1109001)(339900001)(24454002)(199003)(189002)(76176999)(54356999)(47776003)(87936001)(5001960100002)(110136002)(189998001)(50986999)(23726002)(97756001)(46406003)(33656002)(85426001)(19580395003)(19580405001)(83506001)(33716001)(50466002)(92566002)(105606002)(5007970100001)(106466001)(104016004)(6806005)(4001350100001)(81156007)(97736004)(77096005)(5008740100001)(2950100001)(15975445007);DIR:OUT;SFP:1102;SCL:1;SRVR:BN1PR0301MB0673;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN1PR0301MB0673;2:qBZFXjNFNiv9xTiUvXCLM+HuNKNUkhSr+s1vYasTLocQImEIBHB0YO9VmH+rXrZJ91dauEC80Duk36OTaqJ4LqaEIq9Cx8EYOca9l4AgE/wQ78finFSPPCzTvWMoyc8kpnDzb6ewO0XrcZcn+Xgzqu0fQZQSiIW/0akjyFBjVrw=;3:hnbg00frIH9rDUJxYHdiZ3ikOqfn/OONwEhSXdW3VBkDUknaL1EaD2amF5jcWsTBbvAbrjg4fnBiM2ANK4dKQ2427qtLJ6lSjBAcYAeMtLrgXnIaPYrLluziGl7gY4G2zg4smLcxNgZlBdYxFqKZoCebicKnrO2qnkCvzL/1Cb+LtNOOv5YZkXKGSAAfiaeKGJf1U5Hr0zhX+RS1ssBA9gM5u/Tjc2GKd8DtR+Frnm4=;25:uNuv2frU96KW2+TzNorTWY9EReS5RBopRVRhRs4js75DYNB7oYRvZ0Y92oTgaJ3vr/iHFU1DlQnrniLecvshhhG2Pd2/58DAO3+xJZz1q+EF+qZv36termCVazBehZ1oVv7hZO5AcLFqgDaVVdpf6wAtBD8S/ZgRVnpkKl8t0Nt4YyewtJ34i9q1JCORva+gULjTtqmoKYOiXB02ut7Lncr82okxMZ8nTRYii5+LdVfpi/GHsPdNG5Ts90ICn/qHyxWaWBKOWAXsm9GaMw6fXw== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN1PR0301MB0673; X-Microsoft-Exchange-Diagnostics: 1;BN1PR0301MB0673;20:i5Hu71SN2E01tKkr7d1xpIdumCBJ6w/ClPc3CbaXthSYEB2tbdnGv/9lhYotY2JzhKFy4rf5a3GOOf6XE8fv/+nMXRI2ZuVIz76uw1sTHXvzJGQYlBL4Ff0tKnIM6jJqV0sFX9mzzYyEuEah+wm0I7Ff3L9qzIH1cB1wjH72d/X4eRlcjMNOjdfw7hVAvWujSuIYukHVY2iJoIW7/TyDpgGdjNacVS4rvVF46tZFROnh61U6pzoObM92PnPhc1+fSLNAlNZkPDQBMrlKCnEDp6lezHbidBMm3PL5s9JaxKCpaqiBWMws79iLwSxcEBTQLA8GsT+qagryuxhhMftS2/S5oHxjAoeNop5RrlnNlHA=;4:4a3XLOkoHChd9WR+Dx13TcYBBWq+QrS+Yx0G2DNzEQRmaflNYi6vMN0+0XoqGLwEiH/o6kEZjChQ5oy2twiqwj1NBv6hXYb5nVgHkoIOf7026cY+ofR8L7wdHKHF3UNKvmLUBqpugekjzGSp5sxRUEtNEOt3BlcrlYSeCzWrffk87P2IvFN+DuLV4NTJlZd5FPht1v1eoTwKH+t9RGYgvmV0BUbl88Jqns+QNFDvGa72xouJb9anny5RStYkpo4K/vavgMj+Um7n/P+lYA5OKK2fHoghGHWIK65l2bvuOj0ZP0INWqI8cRD/C4bow4NdwckbuIdg86gKJadMWUL22Ge/GV1ln545kqJiWJUB7iSZZYIeyqH38Hg0uamyLCJX X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(520078)(8121501046)(5005006)(10201501046)(3002001);SRVR:BN1PR0301MB0673;BCL:0;PCL:0;RULEID:;SRVR:BN1PR0301MB0673; X-Forefront-PRVS: 0750463DC9 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN1PR0301MB0673;23:igOqk2v0jV4pmhsTx46zcn/KlQJ1QLJpwDHvFz4?= =?us-ascii?Q?pHSEyhyah2/3LwN2vRs3CxLjptilHzL+sLIvXjRETunNUsnBvMMGdEiac8+A?= =?us-ascii?Q?1clmdIkQaYPZptBCks3DBmljpSkLATyYx/4mBN/WtqpHwgyhhk/e+6L1IAwp?= =?us-ascii?Q?5OQEI4iic1cYVLyaWjO0yygmP+acFjv2unxrRnQUwS4bBojHyw3FW8aUw/Oc?= =?us-ascii?Q?FcW/KUW6yZg76oDj0UrsiMgcXgFvM5fg4FceoA8x/xqs+1US3o7TZsLFlu3q?= =?us-ascii?Q?AmoJB04pYYMsrxrjWwbQwpgbP7XTl2JLSH0bfx6IaGa0AIAOxMWXwsXSbJmB?= =?us-ascii?Q?IJeM5LmhoU6ck87HyJsE7wGcBvCBZ0gdg3kQyj1t7x30oE11DMheVrKYc2bF?= =?us-ascii?Q?HP6NeqzFX812EvC6VOJPUfcMYJndP5xe0pRihmPBuj/OKiKxTPcGnIfVF0Kp?= =?us-ascii?Q?tHi6C1eQd67jKjHaNonFMZCX/l/M2Q0xSctoQ1OrjBAUBpWeg7ehkiKEV/Ml?= =?us-ascii?Q?L6638TNsy7OHlUygD6CZPA05rddFVgjhfK3ES2xcg1JkF+qOALc0acew44Ms?= =?us-ascii?Q?q/OyUEV5NNz9B20I8HOOrj92uk3n5PzOoKOLWnDOFuhvxacmXwiuVIkoNZxE?= =?us-ascii?Q?BRuzcwXVEMu6+U5oRYMeAv+MeCx+RWRda6wFRG1E04g8LR6iXbbpc5t6clxu?= =?us-ascii?Q?gDPNN0Q3ZZ+XB4+SaVm1x60E5Bratje15vPB0W/RTfo0ARbbAJi4P4IHCt1f?= =?us-ascii?Q?tFQo5cT2+eX4dCtQch7r8qqmzFPgiuWAXrPzk/ovBA6GO8+hBgujAcy4XSYC?= =?us-ascii?Q?zZZiL58BoniZGwzjX5rnQeOIWBGEqw9UBlQJ+JpxF8uCqtYpP7j10Y/vv5O2?= =?us-ascii?Q?6PjC/uWZQHWi1WmuG1CXY2CMpFh5frMe+FBVNEYQI6q5CzDBtvA8qudas2I9?= =?us-ascii?Q?LyQvxuHGvk9JsjbKtn+IhK0fePyJeK8qM9GoW2jZf/XARkdUU0KyXnk6iZMy?= =?us-ascii?Q?ActX818TIeqXcRC5iWg4meGUYU3bNQQktccvBGGcmPeS4li9om7C51ol+bGA?= =?us-ascii?Q?IEJMG5ng=3D?= X-Microsoft-Exchange-Diagnostics: 1;BN1PR0301MB0673;5:U6yaFqc58kauVCBUQmMejvwmlhwpgWEhBR6E7aQ538RaCn+AZRInokqT4zJo+s+g1AQEmoPuodHE/4Qtt2weKqAngwJlRC4QGbPWHwnfz+mJF8a7asngT6/Mt18w9qW85/ITvmWYh2gEsEgv5Q0qnQ==;24:X40dvdRPfO8sD6wf3gLoyiOxmhOEwFcAMZ8sSLxQe4k+tPzguD9OQFiC9sytZ2pPIF+7wTfzas8VSmRc2BwyynF4lDHKQMMdIy4RUaqz67M=;20:TetpbACTQlTOTRLOdMOT7KXyFtpNtg322u6qbezW29++expU1l7NyaVkfnD9ywbgxIT6E0npTaxZzt0cMzKMWQ== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2015 02:50:24.5432 (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.168.50];Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1PR0301MB0673 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1805 Lines: 50 Hi Will, On Tue, Nov 03, 2015 at 01:17:34PM +0000, Will Deacon wrote: >On Tue, Nov 03, 2015 at 08:59:17PM +0800, Peng Fan wrote: >> iommu_group_alloc will initialize the reference count for group to 1. >> iommu_group_add_device also increase the group reference count, >> if nothing bad happends. And we need to add iommu_group_put to >> decrease the reference count for group. >> >> Signed-off-by: Peng Fan >> Cc: Will Deacon >> Cc: Joerg Roedel >> --- >> >> Not sure whether my understanding is correct or not. I checked rockchip-iommu.c >> exynos-iommu.c and fsl_pamu_domain.c, and they all have iommu_group_put after >> iommu_group_add_device. > >Doesn't this pair up with the iommu_group_remove_device in >arm_smmu_remove_device? Are you actually seeing an issue in practice? In arm_smmu_add_platform_device, iommu_group_alloc --> group->device_kobj ref count will be init to 1. iommu_group_add_device --> group->device_kobj ref count will be added 1 to 2. In arm_smmu_remove_device: iommu_group_remove_device --> Decrease group->device_kobj ref count by 1. After arm_smmu_remove_device, the ref count of group->device_kobj is not 0. So I think need to add iommu_group_put after iommu_group_add_device. If I am wrong, please correct me. Just code inspection, not have a platform to test this. Regards, Peng. > >Will >_______________________________________________ >iommu mailing list >iommu@lists.linux-foundation.org >https://lists.linuxfoundation.org/mailman/listinfo/iommu -- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/