From mboxrd@z Thu Jan 1 00:00:00 1970 From: JeffyChen Subject: Re: [RESEND PATCH v6 14/14] iommu/rockchip: Support sharing IOMMU between masters Date: Thu, 01 Mar 2018 19:14:10 +0800 Message-ID: <5A97E082.3020109@rock-chips.com> References: <20180301101837.27969-1-jeffy.chen@rock-chips.com> <20180301101837.27969-15-jeffy.chen@rock-chips.com> <44efebd3-ab48-4e12-cf92-66b6563f7644@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <44efebd3-ab48-4e12-cf92-66b6563f7644-5wv7dgnIgG8@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: Robin Murphy , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: Heiko Stuebner , jcliang-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org List-Id: iommu@lists.linux-foundation.org Hi Robin, On 03/01/2018 07:03 PM, Robin Murphy wrote: >> >> +static struct iommu_group *rk_iommu_device_group(struct device *dev) >> +{ >> + struct rk_iommu *iommu; >> + >> + iommu = rk_iommu_from_dev(dev); >> + >> + return iommu->group; > > Oops, seems I overlooked this in my previous review - it should really be: > > return iommu_group_get(iommu->group); > > or the refcounting will be unbalanced on those future systems where it > really will be called more than once. > hmmm, right, it should be return iommu_group_ref_get(iommu->group); i was following omap iommu: static struct iommu_group *omap_iommu_device_group(struct device *dev) { struct omap_iommu_arch_data *arch_data = dev->archdata.iommu; struct iommu_group *group = ERR_PTR(-EINVAL); if (arch_data->iommu_dev) group = arch_data->iommu_dev->group; return group; } will fix it too in the version. > Robin. From mboxrd@z Thu Jan 1 00:00:00 1970 From: jeffy.chen@rock-chips.com (JeffyChen) Date: Thu, 01 Mar 2018 19:14:10 +0800 Subject: [RESEND PATCH v6 14/14] iommu/rockchip: Support sharing IOMMU between masters In-Reply-To: <44efebd3-ab48-4e12-cf92-66b6563f7644@arm.com> References: <20180301101837.27969-1-jeffy.chen@rock-chips.com> <20180301101837.27969-15-jeffy.chen@rock-chips.com> <44efebd3-ab48-4e12-cf92-66b6563f7644@arm.com> Message-ID: <5A97E082.3020109@rock-chips.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi Robin, On 03/01/2018 07:03 PM, Robin Murphy wrote: >> >> +static struct iommu_group *rk_iommu_device_group(struct device *dev) >> +{ >> + struct rk_iommu *iommu; >> + >> + iommu = rk_iommu_from_dev(dev); >> + >> + return iommu->group; > > Oops, seems I overlooked this in my previous review - it should really be: > > return iommu_group_get(iommu->group); > > or the refcounting will be unbalanced on those future systems where it > really will be called more than once. > hmmm, right, it should be return iommu_group_ref_get(iommu->group); i was following omap iommu: static struct iommu_group *omap_iommu_device_group(struct device *dev) { struct omap_iommu_arch_data *arch_data = dev->archdata.iommu; struct iommu_group *group = ERR_PTR(-EINVAL); if (arch_data->iommu_dev) group = arch_data->iommu_dev->group; return group; } will fix it too in the version. > Robin. From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S967717AbeCALO2 (ORCPT ); Thu, 1 Mar 2018 06:14:28 -0500 Received: from regular1.263xmail.com ([211.150.99.138]:54042 "EHLO regular1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S967592AbeCALO0 (ORCPT ); Thu, 1 Mar 2018 06:14:26 -0500 X-263anti-spam: KSV:0; X-MAIL-GRAY: 0 X-MAIL-DELIVERY: 1 X-KSVirus-check: 0 X-ABS-CHECKED: 4 X-RL-SENDER: jeffy.chen@rock-chips.com X-FST-TO: robin.murphy@arm.com X-SENDER-IP: 103.29.142.67 X-LOGIN-NAME: jeffy.chen@rock-chips.com X-UNIQUE-TAG: X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 Message-ID: <5A97E082.3020109@rock-chips.com> Date: Thu, 01 Mar 2018 19:14:10 +0800 From: JeffyChen User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:19.0) Gecko/20130126 Thunderbird/19.0 MIME-Version: 1.0 To: Robin Murphy , linux-kernel@vger.kernel.org CC: jcliang@chromium.org, xxm@rock-chips.com, tfiga@chromium.org, Heiko Stuebner , linux-rockchip@lists.infradead.org, iommu@lists.linux-foundation.org, Joerg Roedel , linux-arm-kernel@lists.infradead.org Subject: Re: [RESEND PATCH v6 14/14] iommu/rockchip: Support sharing IOMMU between masters References: <20180301101837.27969-1-jeffy.chen@rock-chips.com> <20180301101837.27969-15-jeffy.chen@rock-chips.com> <44efebd3-ab48-4e12-cf92-66b6563f7644@arm.com> In-Reply-To: <44efebd3-ab48-4e12-cf92-66b6563f7644@arm.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Robin, On 03/01/2018 07:03 PM, Robin Murphy wrote: >> >> +static struct iommu_group *rk_iommu_device_group(struct device *dev) >> +{ >> + struct rk_iommu *iommu; >> + >> + iommu = rk_iommu_from_dev(dev); >> + >> + return iommu->group; > > Oops, seems I overlooked this in my previous review - it should really be: > > return iommu_group_get(iommu->group); > > or the refcounting will be unbalanced on those future systems where it > really will be called more than once. > hmmm, right, it should be return iommu_group_ref_get(iommu->group); i was following omap iommu: static struct iommu_group *omap_iommu_device_group(struct device *dev) { struct omap_iommu_arch_data *arch_data = dev->archdata.iommu; struct iommu_group *group = ERR_PTR(-EINVAL); if (arch_data->iommu_dev) group = arch_data->iommu_dev->group; return group; } will fix it too in the version. > Robin.