On 12/20/2016 03:56 AM, Will Deacon wrote:
> On Tue, Dec 20, 2016 at 11:52:58AM +0000, Marc Zyngier wrote:
>> On 20/12/16 11:06, Geetha sowjanya wrote:
>>>> From: Tirumalesh Chalamarla <tchalama...@caviumnetworks.com>
>>>> +#ifdef CONFIG_CAVIUM_ERRATUM_28168
>>>> +/*
>>>> + * Cavium ThunderX erratum 28168
>>>> + *
>>>> + * Due to erratum #28168 PCI-inbound MSI-X store to the interrupt
>>>> + * controller are delivered to the interrupt controller before older
>>>> + * PCI-inbound memory stores are committed. Doing a sync on SMMU
>>>> + * will make sure all prior data transfers are completed before
>>>> + * invoking ISR.
>>>> + *
>>>> + */
>>>> +void dev_smmu_tlb_sync(struct device *dev)
>>>> +{
>>>> +   struct iommu_fwspec *fwspec = dev->iommu_fwspec;
>>>> +   struct arm_smmu_device *smmu = fwspec_smmu(fwspec);
>>>> +
>>>> +   if (smmu)
>>>> +           __arm_smmu_tlb_sync(smmu);
>>>> +}
>>>> +#endif
>>>
>>> I'll let Robin and Will comment on this, but it strikes be as rather odd
>>> that nothing will happen if the SMMU is in bypass or simply compiled
>>> out. So this workaround is at best incomplete.
>>
>> Agreed. Unless the SMMU is the cause of the issue, relying on it to
>> implement the workaround is fragile and unnecessarily introduces a linkage
>> between SMMU driver internals and the interrupt handling code.

We checked all possible ways. This is the only workaround we found.

>The SMMU is not the cause of the problem, it is the solution, and as
>such is required.

>Perhaps we should have a Kconfig "select" for the SMMU driver if
>CAVIUM_ERRATUM_28168 is selected.


>
> Not a fan.

>In general, I don't think anybody is a big fan of errata and their
>workarounds.

Thank you,
Geetha.

>
> Will
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-ker...@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to