diff mbox series

[v2,3/7] iommu/arm-smmu: Add dependency on io-pgtable format modules

Message ID 1608597876-32367-4-git-send-email-isaacm@codeaurora.org
State New
Headers show
Series None | expand

Commit Message

Isaac J. Manjarres Dec. 22, 2020, 12:44 a.m. UTC
The SMMU driver depends on the availability of the ARM LPAE and
ARM V7S io-pgtable format code to work properly. In preparation
for having the io-pgtable formats as modules, add a "pre"
dependency with MODULE_SOFTDEP() to ensure that the io-pgtable
format modules are loaded before loading the ARM SMMU driver module.

Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
---
 drivers/iommu/arm/arm-smmu/arm-smmu.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Robin Murphy Dec. 23, 2020, 1:05 p.m. UTC | #1
On 2020-12-22 19:49, isaacm@codeaurora.org wrote:
> On 2020-12-22 11:27, Robin Murphy wrote:
>> On 2020-12-22 00:44, Isaac J. Manjarres wrote:
>>> The SMMU driver depends on the availability of the ARM LPAE and
>>> ARM V7S io-pgtable format code to work properly. In preparation
>>
>> Nit: we don't really depend on v7s - we *can* use it if it's
>> available, address constraints are suitable, and the SMMU
>> implementation actually supports it (many don't), but we can still
>> quite happily not use it even so. LPAE is mandatory in the
>> architecture so that's our only hard requirement, embodied in the
>> kconfig select.
>>
>> This does mean there may technically still be a corner case involving
>> ARM_SMMU=y and IO_PGTABLE_ARM_V7S=m, but at worst it's now a runtime
>> failure rather than a build error, so unless and until anyone
>> demonstrates that it actually matters I don't feel particularly
>> inclined to give it much thought.
>>
>> Robin.
>>
> Okay, I'll fix up the commit message, as well as the code, so that it
> only depends on io-pgtable-arm.

Well, IIUC it would make sense to keep the softdep for when the v7s 
module *is* present; I just wanted to clarify that it's more of a 
nice-to-have rather than a necessity.

Robin.

> Thanks,
> Isaac
>>> for having the io-pgtable formats as modules, add a "pre"
>>> dependency with MODULE_SOFTDEP() to ensure that the io-pgtable
>>> format modules are loaded before loading the ARM SMMU driver module.
>>>
>>> Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
>>> ---
>>>   drivers/iommu/arm/arm-smmu/arm-smmu.c | 1 +
>>>   1 file changed, 1 insertion(+)
>>>
>>> diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu.c 
>>> b/drivers/iommu/arm/arm-smmu/arm-smmu.c
>>> index d8c6bfd..a72649f 100644
>>> --- a/drivers/iommu/arm/arm-smmu/arm-smmu.c
>>> +++ b/drivers/iommu/arm/arm-smmu/arm-smmu.c
>>> @@ -2351,3 +2351,4 @@ MODULE_DESCRIPTION("IOMMU API for ARM 
>>> architected SMMU implementations");
>>>   MODULE_AUTHOR("Will Deacon <will@kernel.org>");
>>>   MODULE_ALIAS("platform:arm-smmu");
>>>   MODULE_LICENSE("GPL v2");
>>> +MODULE_SOFTDEP("pre: io-pgtable-arm io-pgtable-arm-v7s");
>>>
>>
>> _______________________________________________
>> linux-arm-kernel mailing list
>> linux-arm-kernel@lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Isaac J. Manjarres Dec. 23, 2020, 3:10 p.m. UTC | #2
On 2020-12-23 05:05, Robin Murphy wrote:
> On 2020-12-22 19:49, isaacm@codeaurora.org wrote:

>> On 2020-12-22 11:27, Robin Murphy wrote:

>>> On 2020-12-22 00:44, Isaac J. Manjarres wrote:

>>>> The SMMU driver depends on the availability of the ARM LPAE and

>>>> ARM V7S io-pgtable format code to work properly. In preparation

>>> 

>>> Nit: we don't really depend on v7s - we *can* use it if it's

>>> available, address constraints are suitable, and the SMMU

>>> implementation actually supports it (many don't), but we can still

>>> quite happily not use it even so. LPAE is mandatory in the

>>> architecture so that's our only hard requirement, embodied in the

>>> kconfig select.

>>> 

>>> This does mean there may technically still be a corner case involving

>>> ARM_SMMU=y and IO_PGTABLE_ARM_V7S=m, but at worst it's now a runtime

>>> failure rather than a build error, so unless and until anyone

>>> demonstrates that it actually matters I don't feel particularly

>>> inclined to give it much thought.

>>> 

>>> Robin.

>>> 

>> Okay, I'll fix up the commit message, as well as the code, so that it

>> only depends on io-pgtable-arm.

> 

> Well, IIUC it would make sense to keep the softdep for when the v7s

> module *is* present; I just wanted to clarify that it's more of a

> nice-to-have rather than a necessity.

> 

> Robin.

> 

Understood, I will keep it there and reword the commit msg. I just tried 
it out in an environment
where the io-pgtable-arm-v7s module isn't present, and I didn't see any
warnings or error messages, and the SMMU driver module was loaded 
properly,
so yes, it's good to have it.

Thanks,
Isaac
>> Thanks,

>> Isaac

>>>> for having the io-pgtable formats as modules, add a "pre"

>>>> dependency with MODULE_SOFTDEP() to ensure that the io-pgtable

>>>> format modules are loaded before loading the ARM SMMU driver module.

>>>> 

>>>> Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>

>>>> ---

>>>>   drivers/iommu/arm/arm-smmu/arm-smmu.c | 1 +

>>>>   1 file changed, 1 insertion(+)

>>>> 

>>>> diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu.c 

>>>> b/drivers/iommu/arm/arm-smmu/arm-smmu.c

>>>> index d8c6bfd..a72649f 100644

>>>> --- a/drivers/iommu/arm/arm-smmu/arm-smmu.c

>>>> +++ b/drivers/iommu/arm/arm-smmu/arm-smmu.c

>>>> @@ -2351,3 +2351,4 @@ MODULE_DESCRIPTION("IOMMU API for ARM 

>>>> architected SMMU implementations");

>>>>   MODULE_AUTHOR("Will Deacon <will@kernel.org>");

>>>>   MODULE_ALIAS("platform:arm-smmu");

>>>>   MODULE_LICENSE("GPL v2");

>>>> +MODULE_SOFTDEP("pre: io-pgtable-arm io-pgtable-arm-v7s");

>>>> 

>>> 

>>> _______________________________________________

>>> linux-arm-kernel mailing list

>>> linux-arm-kernel@lists.infradead.org

>>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
diff mbox series

Patch

diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu.c b/drivers/iommu/arm/arm-smmu/arm-smmu.c
index d8c6bfd..a72649f 100644
--- a/drivers/iommu/arm/arm-smmu/arm-smmu.c
+++ b/drivers/iommu/arm/arm-smmu/arm-smmu.c
@@ -2351,3 +2351,4 @@  MODULE_DESCRIPTION("IOMMU API for ARM architected SMMU implementations");
 MODULE_AUTHOR("Will Deacon <will@kernel.org>");
 MODULE_ALIAS("platform:arm-smmu");
 MODULE_LICENSE("GPL v2");
+MODULE_SOFTDEP("pre: io-pgtable-arm io-pgtable-arm-v7s");