[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <c4cb13d3-3786-2e45-ba57-9965cead9a49@huawei.com>
Date: Fri, 8 Nov 2019 17:25:09 +0000
From: John Garry <john.garry@...wei.com>
To: Will Deacon <will@...nel.org>
CC: <iommu@...ts.linux-foundation.org>, <linux-kernel@...r.kernel.org>,
"Isaac J. Manjarres" <isaacm@...eaurora.org>,
Jean-Philippe Brucker <jean-philippe@...aro.org>,
Saravana Kannan <saravanak@...gle.com>,
"Bjorn Helgaas" <bhelgaas@...gle.com>,
Robin Murphy <robin.murphy@....com>
Subject: Re: [PATCH v2 6/9] Revert "iommu/arm-smmu: Make arm-smmu-v3
explicitly non-modular"
On 08/11/2019 16:47, Will Deacon wrote:
> On Fri, Nov 08, 2019 at 04:44:25PM +0000, John Garry wrote:
>> On 08/11/2019 16:17, John Garry wrote:
>>> On 08/11/2019 15:16, Will Deacon wrote:
>>>> +MODULE_DEVICE_TABLE(of, arm_smmu_of_match);
>>>
>>> Hi Will,
>>>
>>>> static struct platform_driver arm_smmu_driver = {
>>>> .driver = {
>>>> .name = "arm-smmu-v3",
>>>> .of_match_table = of_match_ptr(arm_smmu_of_match),
>>>> - .suppress_bind_attrs = true,
>>>
>>> Does this mean that we can now manually unbind this driver from the SMMU
>>> device?
>>>
>>> Seems dangerous. Here's what happens for me:
>>>
>>> root@...ntu:/sys# cd ./bus/platform/drivers/arm-smmu-v3
>>> ind @ubuntu:/sys/bus/platform/drivers/arm-smmu-v3# echo
>>> arm-smmu-v3.0.auto > unbind
>>> [ 77.580351] hisi_sas_v2_hw HISI0162:01: CQE_AXI_W_ERR (0x800) found!
>>> ho [ 78.635473] platform arm-smmu-v3.0.auto: CMD_SYNC timeout at
>>> 0x00000146 [hwprod 0x00000146, hwcons 0x00000000]
>>>
>>>> },
>>>> .probe = arm_smmu_device_probe,
>>>> + .remove = arm_smmu_device_remove,
>>>> .shutdown = arm_smmu_device_shutdown,
>>>> };
>>>> -builtin_platform_driver(arm_smmu_driver);
>>>> +module_platform_driver(arm_smmu_driver);
>>>> +
>>
>> BTW, it now looks like it was your v1 series I was testing there, on your
>> branch iommu/module. It would be helpful to update for ease of testing.
>
Hi Will,
> Yes, sorry about that. I'll update it now (although I'm not sure it will
> help with this -- I was going to see what happens with other devices such
> as the intel-iommu or storage controllers)
So I tried your v2 series for this - it has the same issue, as I
anticipated.
It seems that some iommu drivers do call iommu_device_register(), so
maybe a decent reference. Or simply stop the driver being unbound.
Cheers,
John
Powered by blists - more mailing lists