Messages in this thread | | | Subject | Re: [PATCH v2 6/9] Revert "iommu/arm-smmu: Make arm-smmu-v3 explicitly non-modular" | From | John Garry <> | Date | Fri, 8 Nov 2019 17:25:09 +0000 |
| |
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@ubuntu:/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
| |