[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAFp+6iFdogDfKbwWta3AMGu2GuZ9NaR+Dv373N7LwwrF5cFYwQ@mail.gmail.com>
Date: Thu, 13 Jul 2017 19:27:20 +0530
From: Vivek Gautam <vivek.gautam@...eaurora.org>
To: Sricharan R <sricharan@...eaurora.org>,
Stephen Boyd <sboyd@...eaurora.org>, robin.murphy@....com
Cc: joro@...tes.org, "robh+dt" <robh+dt@...nel.org>,
Mark Rutland <mark.rutland@....com>,
Will Deacon <will.deacon@....com>,
Marek Szyprowski <m.szyprowski@...sung.com>,
Rob Clark <robdclark@...il.com>,
iommu@...ts.linux-foundation.org,
"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
linux-clk@...r.kernel.org, linux-arm-msm@...r.kernel.org,
Stanimir Varbanov <stanimir.varbanov@...aro.org>,
architt@...eaurora.org,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>
Subject: Re: [PATCH V4 3/6] iommu/arm-smmu: Invoke pm_runtime during probe,
add/remove device
On Thu, Jul 13, 2017 at 11:05 AM, Sricharan R <sricharan@...eaurora.org> wrote:
> Hi Vivek,
>
> On 7/13/2017 10:43 AM, Vivek Gautam wrote:
>> Hi Stephen,
>>
>>
>> On 07/13/2017 04:24 AM, Stephen Boyd wrote:
>>> On 07/06, Vivek Gautam wrote:
>>>> @@ -1231,12 +1237,18 @@ static int arm_smmu_map(struct iommu_domain *domain, unsigned long iova,
>>>> static size_t arm_smmu_unmap(struct iommu_domain *domain, unsigned long iova,
>>>> size_t size)
>>>> {
>>>> - struct io_pgtable_ops *ops = to_smmu_domain(domain)->pgtbl_ops;
>>>> + struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
>>>> + struct io_pgtable_ops *ops = smmu_domain->pgtbl_ops;
>>>> + size_t ret;
>>>> if (!ops)
>>>> return 0;
>>>> - return ops->unmap(ops, iova, size);
>>>> + pm_runtime_get_sync(smmu_domain->smmu->dev);
>>> Can these map/unmap ops be called from an atomic context? I seem
>>> to recall that being a problem before.
>>
>> That's something which was dropped in the following patch merged in master:
>> 523d7423e21b iommu/arm-smmu: Remove io-pgtable spinlock
>>
>> Looks like we don't need locks here anymore?
>
> Apart from the locking, wonder why a explicit pm_runtime is needed
> from unmap. Somehow looks like some path in the master using that
> should have enabled the pm ?
Right, the master should have done a runtime_get(), and with
device links the iommu will also resume.
The master will call the unmap when it is attached to the iommu
and therefore the iommu should be in resume state.
We shouldn't have an unmap without the master attached anyways.
Will investigate this further if we need the pm_runtime() calls
around unmap or not.
Best regards
Vivek
>
> Regards,
> Sricharan
>
> --
> "QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
>
> ---
> This email has been checked for viruses by Avast antivirus software.
> https://www.avast.com/antivirus
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
> the body of a message to majordomo@...r.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
Powered by blists - more mailing lists