iommu/arm-smmu: Restore naming of driver parameter prefix
Will Deacon
maintainerPATCH 1/1 iommu/arm-smmu: Restore naming of driver parameter prefix
Extending the Arm SMMU driver to allow for modular builds changed KBUILD_MODNAME to be "arm_smmu_mod" so that a single module could be built from the multiple existing object files without the need to rename any source files.
This inadvertently changed the name of the driver parameters, which may lead to runtime issues if bootloaders are relying on the old names for correctness (e.g. "arm-smmu.disable_bypass=0").
Although MODULE_PARAM_PREFIX can be overridden to restore the old naming for builtin parameters, only the new name is matched by modprobe and so loading the driver as a module would cause parameters specified on the kernel command line to be ignored. Instead, rename "arm_smmu_mod" to "arm_smmu". Whilst it's a bit of a bodge, this allows us to create a single module without renaming any files and makes use of the fact that underscores and hyphens can be used interchangeably in parameter names.
--- drivers/iommu/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/iommu/Makefile +2 -2
@@ -14,8 +14,8 @@ obj-$(CONFIG_MSM_IOMMU) += msm_iommu.o obj-$(CONFIG_AMD_IOMMU) += amd_iommu.o amd_iommu_init.o amd_iommu_quirks.o obj-$(CONFIG_AMD_IOMMU_DEBUGFS) += amd_iommu_debugfs.o obj-$(CONFIG_AMD_IOMMU_V2) += amd_iommu_v2.o -obj-$(CONFIG_ARM_SMMU) += arm-smmu-mod.o -arm-smmu-mod-objs += arm-smmu.o arm-smmu-impl.o arm-smmu-qcom.o +obj-$(CONFIG_ARM_SMMU) += arm_smmu.o +arm_smmu-objs += arm-smmu.o arm-smmu-impl.o arm-smmu-qcom.o obj-$(CONFIG_ARM_SMMU_V3) += arm-smmu-v3.o obj-$(CONFIG_DMAR_TABLE) += dmar.o obj-$(CONFIG_INTEL_IOMMU) += intel-iommu.o intel-pasid.o
Signature · 6 lines
2.25.0.265.gbab2e86ba0-goog _______________________________________________ iommu mailing list [email protected] https://lists.linuxfoundation.org/mailman/listinfo/iommu
Quoted 8 lines · Will Deacon
Extending the Arm SMMU driver to allow for modular builds changed
KBUILD_MODNAMEto be "arm_smmu_mod" so that a single module could be built from the multiple existing object files without the need to rename any source files.This inadvertently changed the name of the driver parameters, which may lead to runtime issues if bootloaders are relying on the old names for correctness (e.g. "arm-smmu.disable_bypass=0").
Indeed, it turns out this also tripped up some Juno setups in our internal CI that were bodging around firmware issues.
Quoted 7 lines
Although
MODULE_PARAM_PREFIXcan be overridden to restore the old naming for builtin parameters, only the new name is matched by modprobe and so loading the driver as a module would cause parameters specified on the kernel command line to be ignored. Instead, rename "arm_smmu_mod" to "arm_smmu". Whilst it's a bit of a bodge, this allows us to create a single module without renaming any files and makes use of the fact that underscores and hyphens can be used interchangeably in parameter names.
That's awful... and thus great :)
Quoted 15 lines
Cc Robin Murphy <[email protected]>Cc Russell King <[email protected]>Reported-by Li Yang <[email protected]>Fixes cd221bd24ff5 ("iommu/arm-smmu: Allow building as a module")Signed-off-by Will Deacon <[email protected]>--- drivers/iommu/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)drivers/iommu/Makefile +0
-0
drivers/iommu/Makefile obj-$(CONFIG_MSM_IOMMU) += msm_iommu.o · line 21
Quoted 10 lines
drivers/iommu/Makefile +2
-2@@ -14,8 +14,8 @@ obj-$(CONFIG_MSM_IOMMU) += msm_iommu.o obj-$(CONFIG_AMD_IOMMU) += amd_iommu.o amd_iommu_init.o amd_iommu_quirks.o obj-$(CONFIG_AMD_IOMMU_DEBUGFS) += amd_iommu_debugfs.o obj-$(CONFIG_AMD_IOMMU_V2) += amd_iommu_v2.o -obj-$(CONFIG_ARM_SMMU) += arm-smmu-mod.o -arm-smmu-mod-objs += arm-smmu.o arm-smmu-impl.o arm-smmu-qcom.o +obj-$(CONFIG_ARM_SMMU) += arm_smmu.o +arm_smmu-objs += arm-smmu.o arm-smmu-impl.o arm-smmu-qcom.o obj-$(CONFIG_ARM_SMMU_V3) += arm-smmu-v3.o obj-$(CONFIG_DMAR_TABLE) += dmar.o obj-$(CONFIG_INTEL_IOMMU) += intel-iommu.o intel-pasid.o
_______________________________________________
iommu mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/iommu
Will Deacon
maintainerQuoted 21 lines · Robin Murphy
Quoted 8 lines · Will Deacon
Extending the Arm SMMU driver to allow for modular builds changed
KBUILD_MODNAMEto be "arm_smmu_mod" so that a single module could be built from the multiple existing object files without the need to rename any source files.This inadvertently changed the name of the driver parameters, which may lead to runtime issues if bootloaders are relying on the old names for correctness (e.g. "arm-smmu.disable_bypass=0").
Indeed, it turns out this also tripped up some Juno setups in our internal CI that were bodging around firmware issues.
Quoted 7 lines
Although
MODULE_PARAM_PREFIXcan be overridden to restore the old naming for builtin parameters, only the new name is matched by modprobe and so loading the driver as a module would cause parameters specified on the kernel command line to be ignored. Instead, rename "arm_smmu_mod" to "arm_smmu". Whilst it's a bit of a bodge, this allows us to create a single module without renaming any files and makes use of the fact that underscores and hyphens can be used interchangeably in parameter names.
Quoted 3 lines
That's awful... and thus great :)
Reviewed-by Robin Murphy <[email protected]>
Cheers, Robin!
Joerg -- please can you pick this up as a fix for 5.6? I don't have any other SMMU fixes queued, so it doesn't seem worth sending a pull request to you just for this.
Thanks,
Will
_______________________________________________
iommu mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/iommu
Joerg Roedel
maintainerQuoted 3 lines · Will Deacon
Joerg -- please can you pick this up as a fix for 5.6? I don't have any other SMMU fixes queued, so it doesn't seem worth sending a pull request to you just for this.
Applied, thanks.
_______________________________________________
iommu mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/iommu