From b24e960ab4a4313414a371bc4ed7e9ba04fc4198 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 17 Feb 2026 19:05:35 +0100 Subject: [PATCH] drop iommu patch from older kernels --- ...qcom-do-not-register-driver-in-probe.patch | 122 ------------------ queue-5.10/series | 1 - ...qcom-do-not-register-driver-in-probe.patch | 122 ------------------ queue-5.15/series | 1 - ...qcom-do-not-register-driver-in-probe.patch | 122 ------------------ queue-6.1/series | 1 - ...qcom-do-not-register-driver-in-probe.patch | 122 ------------------ queue-6.6/series | 1 - 8 files changed, 492 deletions(-) delete mode 100644 queue-5.10/iommu-arm-smmu-qcom-do-not-register-driver-in-probe.patch delete mode 100644 queue-5.15/iommu-arm-smmu-qcom-do-not-register-driver-in-probe.patch delete mode 100644 queue-6.1/iommu-arm-smmu-qcom-do-not-register-driver-in-probe.patch delete mode 100644 queue-6.6/iommu-arm-smmu-qcom-do-not-register-driver-in-probe.patch diff --git a/queue-5.10/iommu-arm-smmu-qcom-do-not-register-driver-in-probe.patch b/queue-5.10/iommu-arm-smmu-qcom-do-not-register-driver-in-probe.patch deleted file mode 100644 index 95c01e17f1..0000000000 --- a/queue-5.10/iommu-arm-smmu-qcom-do-not-register-driver-in-probe.patch +++ /dev/null @@ -1,122 +0,0 @@ -From ed1ac3c977dd6b119405fa36dd41f7151bd5b4de Mon Sep 17 00:00:00 2001 -From: Danilo Krummrich -Date: Wed, 21 Jan 2026 15:12:01 +0100 -Subject: iommu/arm-smmu-qcom: do not register driver in probe() - -From: Danilo Krummrich - -commit ed1ac3c977dd6b119405fa36dd41f7151bd5b4de upstream. - -Commit 0b4eeee2876f ("iommu/arm-smmu-qcom: Register the TBU driver in -qcom_smmu_impl_init") intended to also probe the TBU driver when -CONFIG_ARM_SMMU_QCOM_DEBUG is disabled, but also moved the corresponding -platform_driver_register() call into qcom_smmu_impl_init() which is -called from arm_smmu_device_probe(). - -However, it neither makes sense to register drivers from probe() -callbacks of other drivers, nor does the driver core allow registering -drivers with a device lock already being held. - -The latter was revealed by commit dc23806a7c47 ("driver core: enforce -device_lock for driver_match_device()") leading to a deadlock condition -described in [1]. - -Additionally, it was noted by Robin that the current approach is -potentially racy with async probe [2]. - -Hence, fix this by registering the qcom_smmu_tbu_driver from -module_init(). Unfortunately, due to the vendoring of the driver, this -requires an indirection through arm-smmu-impl.c. - -Reported-by: Mark Brown -Closes: https://lore.kernel.org/lkml/7ae38e31-ef31-43ad-9106-7c76ea0e8596@sirena.org.uk/ -Link: https://lore.kernel.org/lkml/DFU7CEPUSG9A.1KKGVW4HIPMSH@kernel.org/ [1] -Link: https://lore.kernel.org/lkml/0c0d3707-9ea5-44f9-88a1-a65c62e3df8d@arm.com/ [2] -Fixes: dc23806a7c47 ("driver core: enforce device_lock for driver_match_device()") -Fixes: 0b4eeee2876f ("iommu/arm-smmu-qcom: Register the TBU driver in qcom_smmu_impl_init") -Acked-by: Robin Murphy -Tested-by: Bjorn Andersson -Reviewed-by: Bjorn Andersson -Acked-by: Konrad Dybcio -Reviewed-by: Greg Kroah-Hartman -Tested-by: Ioana Ciornei #LX2160ARDB -Tested-by: Wang Jiayue -Reviewed-by: Wang Jiayue -Tested-by: Mark Brown -Acked-by: Joerg Roedel -Link: https://patch.msgid.link/20260121141215.29658-1-dakr@kernel.org -Signed-off-by: Danilo Krummrich -Signed-off-by: Greg Kroah-Hartman ---- - drivers/iommu/arm/arm-smmu/arm-smmu-impl.c | 14 ++++++++++++++ - drivers/iommu/arm/arm-smmu/arm-smmu.c | 24 +++++++++++++++++++++++- - drivers/iommu/arm/arm-smmu/arm-smmu.h | 5 +++++ - 3 files changed, 42 insertions(+), 1 deletion(-) - ---- a/drivers/iommu/arm/arm-smmu/arm-smmu-impl.c -+++ b/drivers/iommu/arm/arm-smmu/arm-smmu-impl.c -@@ -228,3 +228,17 @@ struct arm_smmu_device *arm_smmu_impl_in - - return smmu; - } -+ -+int __init arm_smmu_impl_module_init(void) -+{ -+ if (IS_ENABLED(CONFIG_ARM_SMMU_QCOM)) -+ return qcom_smmu_module_init(); -+ -+ return 0; -+} -+ -+void __exit arm_smmu_impl_module_exit(void) -+{ -+ if (IS_ENABLED(CONFIG_ARM_SMMU_QCOM)) -+ qcom_smmu_module_exit(); -+} ---- a/drivers/iommu/arm/arm-smmu/arm-smmu.c -+++ b/drivers/iommu/arm/arm-smmu/arm-smmu.c -@@ -2352,7 +2352,29 @@ static struct platform_driver arm_smmu_d - .remove = arm_smmu_device_remove, - .shutdown = arm_smmu_device_shutdown, - }; --module_platform_driver(arm_smmu_driver); -+ -+static int __init arm_smmu_init(void) -+{ -+ int ret; -+ -+ ret = platform_driver_register(&arm_smmu_driver); -+ if (ret) -+ return ret; -+ -+ ret = arm_smmu_impl_module_init(); -+ if (ret) -+ platform_driver_unregister(&arm_smmu_driver); -+ -+ return ret; -+} -+module_init(arm_smmu_init); -+ -+static void __exit arm_smmu_exit(void) -+{ -+ arm_smmu_impl_module_exit(); -+ platform_driver_unregister(&arm_smmu_driver); -+} -+module_exit(arm_smmu_exit); - - MODULE_DESCRIPTION("IOMMU API for ARM architected SMMU implementations"); - MODULE_AUTHOR("Will Deacon "); ---- a/drivers/iommu/arm/arm-smmu/arm-smmu.h -+++ b/drivers/iommu/arm/arm-smmu/arm-smmu.h -@@ -522,6 +522,11 @@ struct arm_smmu_device *arm_smmu_impl_in - struct arm_smmu_device *nvidia_smmu_impl_init(struct arm_smmu_device *smmu); - struct arm_smmu_device *qcom_smmu_impl_init(struct arm_smmu_device *smmu); - -+int __init arm_smmu_impl_module_init(void); -+void __exit arm_smmu_impl_module_exit(void); -+int __init qcom_smmu_module_init(void); -+void __exit qcom_smmu_module_exit(void); -+ - void arm_smmu_write_context_bank(struct arm_smmu_device *smmu, int idx); - int arm_mmu500_reset(struct arm_smmu_device *smmu); - diff --git a/queue-5.10/series b/queue-5.10/series index 826bca9fd3..19f4e66962 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -19,6 +19,5 @@ scsi-qla2xxx-free-sp-in-error-path-to-fix-system-crash.patch scsi-qla2xxx-fix-bsg_done-causing-double-free.patch fbdev-rivafb-fix-divide-error-in-nv3_arb.patch fbdev-smscufx-properly-copy-ioctl-memory-to-kernelspace.patch -iommu-arm-smmu-qcom-do-not-register-driver-in-probe.patch f2fs-fix-out-of-bounds-access-in-sysfs-attribute-read-write.patch f2fs-fix-to-avoid-uaf-in-f2fs_write_end_io.patch diff --git a/queue-5.15/iommu-arm-smmu-qcom-do-not-register-driver-in-probe.patch b/queue-5.15/iommu-arm-smmu-qcom-do-not-register-driver-in-probe.patch deleted file mode 100644 index 7f842012d4..0000000000 --- a/queue-5.15/iommu-arm-smmu-qcom-do-not-register-driver-in-probe.patch +++ /dev/null @@ -1,122 +0,0 @@ -From ed1ac3c977dd6b119405fa36dd41f7151bd5b4de Mon Sep 17 00:00:00 2001 -From: Danilo Krummrich -Date: Wed, 21 Jan 2026 15:12:01 +0100 -Subject: iommu/arm-smmu-qcom: do not register driver in probe() - -From: Danilo Krummrich - -commit ed1ac3c977dd6b119405fa36dd41f7151bd5b4de upstream. - -Commit 0b4eeee2876f ("iommu/arm-smmu-qcom: Register the TBU driver in -qcom_smmu_impl_init") intended to also probe the TBU driver when -CONFIG_ARM_SMMU_QCOM_DEBUG is disabled, but also moved the corresponding -platform_driver_register() call into qcom_smmu_impl_init() which is -called from arm_smmu_device_probe(). - -However, it neither makes sense to register drivers from probe() -callbacks of other drivers, nor does the driver core allow registering -drivers with a device lock already being held. - -The latter was revealed by commit dc23806a7c47 ("driver core: enforce -device_lock for driver_match_device()") leading to a deadlock condition -described in [1]. - -Additionally, it was noted by Robin that the current approach is -potentially racy with async probe [2]. - -Hence, fix this by registering the qcom_smmu_tbu_driver from -module_init(). Unfortunately, due to the vendoring of the driver, this -requires an indirection through arm-smmu-impl.c. - -Reported-by: Mark Brown -Closes: https://lore.kernel.org/lkml/7ae38e31-ef31-43ad-9106-7c76ea0e8596@sirena.org.uk/ -Link: https://lore.kernel.org/lkml/DFU7CEPUSG9A.1KKGVW4HIPMSH@kernel.org/ [1] -Link: https://lore.kernel.org/lkml/0c0d3707-9ea5-44f9-88a1-a65c62e3df8d@arm.com/ [2] -Fixes: dc23806a7c47 ("driver core: enforce device_lock for driver_match_device()") -Fixes: 0b4eeee2876f ("iommu/arm-smmu-qcom: Register the TBU driver in qcom_smmu_impl_init") -Acked-by: Robin Murphy -Tested-by: Bjorn Andersson -Reviewed-by: Bjorn Andersson -Acked-by: Konrad Dybcio -Reviewed-by: Greg Kroah-Hartman -Tested-by: Ioana Ciornei #LX2160ARDB -Tested-by: Wang Jiayue -Reviewed-by: Wang Jiayue -Tested-by: Mark Brown -Acked-by: Joerg Roedel -Link: https://patch.msgid.link/20260121141215.29658-1-dakr@kernel.org -Signed-off-by: Danilo Krummrich -Signed-off-by: Greg Kroah-Hartman ---- - drivers/iommu/arm/arm-smmu/arm-smmu-impl.c | 14 ++++++++++++++ - drivers/iommu/arm/arm-smmu/arm-smmu.c | 24 +++++++++++++++++++++++- - drivers/iommu/arm/arm-smmu/arm-smmu.h | 5 +++++ - 3 files changed, 42 insertions(+), 1 deletion(-) - ---- a/drivers/iommu/arm/arm-smmu/arm-smmu-impl.c -+++ b/drivers/iommu/arm/arm-smmu/arm-smmu-impl.c -@@ -223,3 +223,17 @@ struct arm_smmu_device *arm_smmu_impl_in - - return smmu; - } -+ -+int __init arm_smmu_impl_module_init(void) -+{ -+ if (IS_ENABLED(CONFIG_ARM_SMMU_QCOM)) -+ return qcom_smmu_module_init(); -+ -+ return 0; -+} -+ -+void __exit arm_smmu_impl_module_exit(void) -+{ -+ if (IS_ENABLED(CONFIG_ARM_SMMU_QCOM)) -+ qcom_smmu_module_exit(); -+} ---- a/drivers/iommu/arm/arm-smmu/arm-smmu.c -+++ b/drivers/iommu/arm/arm-smmu/arm-smmu.c -@@ -2345,7 +2345,29 @@ static struct platform_driver arm_smmu_d - .remove = arm_smmu_device_remove, - .shutdown = arm_smmu_device_shutdown, - }; --module_platform_driver(arm_smmu_driver); -+ -+static int __init arm_smmu_init(void) -+{ -+ int ret; -+ -+ ret = platform_driver_register(&arm_smmu_driver); -+ if (ret) -+ return ret; -+ -+ ret = arm_smmu_impl_module_init(); -+ if (ret) -+ platform_driver_unregister(&arm_smmu_driver); -+ -+ return ret; -+} -+module_init(arm_smmu_init); -+ -+static void __exit arm_smmu_exit(void) -+{ -+ arm_smmu_impl_module_exit(); -+ platform_driver_unregister(&arm_smmu_driver); -+} -+module_exit(arm_smmu_exit); - - MODULE_DESCRIPTION("IOMMU API for ARM architected SMMU implementations"); - MODULE_AUTHOR("Will Deacon "); ---- a/drivers/iommu/arm/arm-smmu/arm-smmu.h -+++ b/drivers/iommu/arm/arm-smmu/arm-smmu.h -@@ -528,6 +528,11 @@ struct arm_smmu_device *arm_smmu_impl_in - struct arm_smmu_device *nvidia_smmu_impl_init(struct arm_smmu_device *smmu); - struct arm_smmu_device *qcom_smmu_impl_init(struct arm_smmu_device *smmu); - -+int __init arm_smmu_impl_module_init(void); -+void __exit arm_smmu_impl_module_exit(void); -+int __init qcom_smmu_module_init(void); -+void __exit qcom_smmu_module_exit(void); -+ - void arm_smmu_write_context_bank(struct arm_smmu_device *smmu, int idx); - int arm_mmu500_reset(struct arm_smmu_device *smmu); - diff --git a/queue-5.15/series b/queue-5.15/series index 89d2bce53c..0b680e5ed6 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -34,6 +34,5 @@ pci-endpoint-remove-unused-field-in-struct-pci_epf_group.patch pci-endpoint-avoid-creating-sub-groups-asynchronously.patch fbdev-rivafb-fix-divide-error-in-nv3_arb.patch fbdev-smscufx-properly-copy-ioctl-memory-to-kernelspace.patch -iommu-arm-smmu-qcom-do-not-register-driver-in-probe.patch f2fs-fix-to-avoid-uaf-in-f2fs_write_end_io.patch f2fs-fix-out-of-bounds-access-in-sysfs-attribute-read-write.patch diff --git a/queue-6.1/iommu-arm-smmu-qcom-do-not-register-driver-in-probe.patch b/queue-6.1/iommu-arm-smmu-qcom-do-not-register-driver-in-probe.patch deleted file mode 100644 index cb6484c2ba..0000000000 --- a/queue-6.1/iommu-arm-smmu-qcom-do-not-register-driver-in-probe.patch +++ /dev/null @@ -1,122 +0,0 @@ -From ed1ac3c977dd6b119405fa36dd41f7151bd5b4de Mon Sep 17 00:00:00 2001 -From: Danilo Krummrich -Date: Wed, 21 Jan 2026 15:12:01 +0100 -Subject: iommu/arm-smmu-qcom: do not register driver in probe() - -From: Danilo Krummrich - -commit ed1ac3c977dd6b119405fa36dd41f7151bd5b4de upstream. - -Commit 0b4eeee2876f ("iommu/arm-smmu-qcom: Register the TBU driver in -qcom_smmu_impl_init") intended to also probe the TBU driver when -CONFIG_ARM_SMMU_QCOM_DEBUG is disabled, but also moved the corresponding -platform_driver_register() call into qcom_smmu_impl_init() which is -called from arm_smmu_device_probe(). - -However, it neither makes sense to register drivers from probe() -callbacks of other drivers, nor does the driver core allow registering -drivers with a device lock already being held. - -The latter was revealed by commit dc23806a7c47 ("driver core: enforce -device_lock for driver_match_device()") leading to a deadlock condition -described in [1]. - -Additionally, it was noted by Robin that the current approach is -potentially racy with async probe [2]. - -Hence, fix this by registering the qcom_smmu_tbu_driver from -module_init(). Unfortunately, due to the vendoring of the driver, this -requires an indirection through arm-smmu-impl.c. - -Reported-by: Mark Brown -Closes: https://lore.kernel.org/lkml/7ae38e31-ef31-43ad-9106-7c76ea0e8596@sirena.org.uk/ -Link: https://lore.kernel.org/lkml/DFU7CEPUSG9A.1KKGVW4HIPMSH@kernel.org/ [1] -Link: https://lore.kernel.org/lkml/0c0d3707-9ea5-44f9-88a1-a65c62e3df8d@arm.com/ [2] -Fixes: dc23806a7c47 ("driver core: enforce device_lock for driver_match_device()") -Fixes: 0b4eeee2876f ("iommu/arm-smmu-qcom: Register the TBU driver in qcom_smmu_impl_init") -Acked-by: Robin Murphy -Tested-by: Bjorn Andersson -Reviewed-by: Bjorn Andersson -Acked-by: Konrad Dybcio -Reviewed-by: Greg Kroah-Hartman -Tested-by: Ioana Ciornei #LX2160ARDB -Tested-by: Wang Jiayue -Reviewed-by: Wang Jiayue -Tested-by: Mark Brown -Acked-by: Joerg Roedel -Link: https://patch.msgid.link/20260121141215.29658-1-dakr@kernel.org -Signed-off-by: Danilo Krummrich -Signed-off-by: Greg Kroah-Hartman ---- - drivers/iommu/arm/arm-smmu/arm-smmu-impl.c | 14 ++++++++++++++ - drivers/iommu/arm/arm-smmu/arm-smmu.c | 24 +++++++++++++++++++++++- - drivers/iommu/arm/arm-smmu/arm-smmu.h | 5 +++++ - 3 files changed, 42 insertions(+), 1 deletion(-) - ---- a/drivers/iommu/arm/arm-smmu/arm-smmu-impl.c -+++ b/drivers/iommu/arm/arm-smmu/arm-smmu-impl.c -@@ -224,3 +224,17 @@ struct arm_smmu_device *arm_smmu_impl_in - - return smmu; - } -+ -+int __init arm_smmu_impl_module_init(void) -+{ -+ if (IS_ENABLED(CONFIG_ARM_SMMU_QCOM)) -+ return qcom_smmu_module_init(); -+ -+ return 0; -+} -+ -+void __exit arm_smmu_impl_module_exit(void) -+{ -+ if (IS_ENABLED(CONFIG_ARM_SMMU_QCOM)) -+ qcom_smmu_module_exit(); -+} ---- a/drivers/iommu/arm/arm-smmu/arm-smmu.c -+++ b/drivers/iommu/arm/arm-smmu/arm-smmu.c -@@ -2311,7 +2311,29 @@ static struct platform_driver arm_smmu_d - .remove_new = arm_smmu_device_remove, - .shutdown = arm_smmu_device_shutdown, - }; --module_platform_driver(arm_smmu_driver); -+ -+static int __init arm_smmu_init(void) -+{ -+ int ret; -+ -+ ret = platform_driver_register(&arm_smmu_driver); -+ if (ret) -+ return ret; -+ -+ ret = arm_smmu_impl_module_init(); -+ if (ret) -+ platform_driver_unregister(&arm_smmu_driver); -+ -+ return ret; -+} -+module_init(arm_smmu_init); -+ -+static void __exit arm_smmu_exit(void) -+{ -+ arm_smmu_impl_module_exit(); -+ platform_driver_unregister(&arm_smmu_driver); -+} -+module_exit(arm_smmu_exit); - - MODULE_DESCRIPTION("IOMMU API for ARM architected SMMU implementations"); - MODULE_AUTHOR("Will Deacon "); ---- a/drivers/iommu/arm/arm-smmu/arm-smmu.h -+++ b/drivers/iommu/arm/arm-smmu/arm-smmu.h -@@ -528,6 +528,11 @@ struct arm_smmu_device *arm_smmu_impl_in - struct arm_smmu_device *nvidia_smmu_impl_init(struct arm_smmu_device *smmu); - struct arm_smmu_device *qcom_smmu_impl_init(struct arm_smmu_device *smmu); - -+int __init arm_smmu_impl_module_init(void); -+void __exit arm_smmu_impl_module_exit(void); -+int __init qcom_smmu_module_init(void); -+void __exit qcom_smmu_module_exit(void); -+ - void arm_smmu_write_context_bank(struct arm_smmu_device *smmu, int idx); - int arm_mmu500_reset(struct arm_smmu_device *smmu); - diff --git a/queue-6.1/series b/queue-6.1/series index fa00d3cf51..b35b81a172 100644 --- a/queue-6.1/series +++ b/queue-6.1/series @@ -57,7 +57,6 @@ wifi-cfg80211-add-missing-lock-in-cfg80211_check_and_end_cac.patch cpuset-fix-missing-adaptation-for-cpuset_is_populated.patch fbdev-rivafb-fix-divide-error-in-nv3_arb.patch fbdev-smscufx-properly-copy-ioctl-memory-to-kernelspace.patch -iommu-arm-smmu-qcom-do-not-register-driver-in-probe.patch f2fs-fix-is_checkpointed-flag-inconsistency-issue-caused-by-concurrent-atomic-commit-and-checkpoint-writes.patch f2fs-fix-to-avoid-uaf-in-f2fs_write_end_io.patch f2fs-fix-out-of-bounds-access-in-sysfs-attribute-read-write.patch diff --git a/queue-6.6/iommu-arm-smmu-qcom-do-not-register-driver-in-probe.patch b/queue-6.6/iommu-arm-smmu-qcom-do-not-register-driver-in-probe.patch deleted file mode 100644 index e212712b74..0000000000 --- a/queue-6.6/iommu-arm-smmu-qcom-do-not-register-driver-in-probe.patch +++ /dev/null @@ -1,122 +0,0 @@ -From ed1ac3c977dd6b119405fa36dd41f7151bd5b4de Mon Sep 17 00:00:00 2001 -From: Danilo Krummrich -Date: Wed, 21 Jan 2026 15:12:01 +0100 -Subject: iommu/arm-smmu-qcom: do not register driver in probe() - -From: Danilo Krummrich - -commit ed1ac3c977dd6b119405fa36dd41f7151bd5b4de upstream. - -Commit 0b4eeee2876f ("iommu/arm-smmu-qcom: Register the TBU driver in -qcom_smmu_impl_init") intended to also probe the TBU driver when -CONFIG_ARM_SMMU_QCOM_DEBUG is disabled, but also moved the corresponding -platform_driver_register() call into qcom_smmu_impl_init() which is -called from arm_smmu_device_probe(). - -However, it neither makes sense to register drivers from probe() -callbacks of other drivers, nor does the driver core allow registering -drivers with a device lock already being held. - -The latter was revealed by commit dc23806a7c47 ("driver core: enforce -device_lock for driver_match_device()") leading to a deadlock condition -described in [1]. - -Additionally, it was noted by Robin that the current approach is -potentially racy with async probe [2]. - -Hence, fix this by registering the qcom_smmu_tbu_driver from -module_init(). Unfortunately, due to the vendoring of the driver, this -requires an indirection through arm-smmu-impl.c. - -Reported-by: Mark Brown -Closes: https://lore.kernel.org/lkml/7ae38e31-ef31-43ad-9106-7c76ea0e8596@sirena.org.uk/ -Link: https://lore.kernel.org/lkml/DFU7CEPUSG9A.1KKGVW4HIPMSH@kernel.org/ [1] -Link: https://lore.kernel.org/lkml/0c0d3707-9ea5-44f9-88a1-a65c62e3df8d@arm.com/ [2] -Fixes: dc23806a7c47 ("driver core: enforce device_lock for driver_match_device()") -Fixes: 0b4eeee2876f ("iommu/arm-smmu-qcom: Register the TBU driver in qcom_smmu_impl_init") -Acked-by: Robin Murphy -Tested-by: Bjorn Andersson -Reviewed-by: Bjorn Andersson -Acked-by: Konrad Dybcio -Reviewed-by: Greg Kroah-Hartman -Tested-by: Ioana Ciornei #LX2160ARDB -Tested-by: Wang Jiayue -Reviewed-by: Wang Jiayue -Tested-by: Mark Brown -Acked-by: Joerg Roedel -Link: https://patch.msgid.link/20260121141215.29658-1-dakr@kernel.org -Signed-off-by: Danilo Krummrich -Signed-off-by: Greg Kroah-Hartman ---- - drivers/iommu/arm/arm-smmu/arm-smmu-impl.c | 14 ++++++++++++++ - drivers/iommu/arm/arm-smmu/arm-smmu.c | 24 +++++++++++++++++++++++- - drivers/iommu/arm/arm-smmu/arm-smmu.h | 5 +++++ - 3 files changed, 42 insertions(+), 1 deletion(-) - ---- a/drivers/iommu/arm/arm-smmu/arm-smmu-impl.c -+++ b/drivers/iommu/arm/arm-smmu/arm-smmu-impl.c -@@ -227,3 +227,17 @@ struct arm_smmu_device *arm_smmu_impl_in - - return smmu; - } -+ -+int __init arm_smmu_impl_module_init(void) -+{ -+ if (IS_ENABLED(CONFIG_ARM_SMMU_QCOM)) -+ return qcom_smmu_module_init(); -+ -+ return 0; -+} -+ -+void __exit arm_smmu_impl_module_exit(void) -+{ -+ if (IS_ENABLED(CONFIG_ARM_SMMU_QCOM)) -+ qcom_smmu_module_exit(); -+} ---- a/drivers/iommu/arm/arm-smmu/arm-smmu.c -+++ b/drivers/iommu/arm/arm-smmu/arm-smmu.c -@@ -2307,7 +2307,29 @@ static struct platform_driver arm_smmu_d - .remove_new = arm_smmu_device_remove, - .shutdown = arm_smmu_device_shutdown, - }; --module_platform_driver(arm_smmu_driver); -+ -+static int __init arm_smmu_init(void) -+{ -+ int ret; -+ -+ ret = platform_driver_register(&arm_smmu_driver); -+ if (ret) -+ return ret; -+ -+ ret = arm_smmu_impl_module_init(); -+ if (ret) -+ platform_driver_unregister(&arm_smmu_driver); -+ -+ return ret; -+} -+module_init(arm_smmu_init); -+ -+static void __exit arm_smmu_exit(void) -+{ -+ arm_smmu_impl_module_exit(); -+ platform_driver_unregister(&arm_smmu_driver); -+} -+module_exit(arm_smmu_exit); - - MODULE_DESCRIPTION("IOMMU API for ARM architected SMMU implementations"); - MODULE_AUTHOR("Will Deacon "); ---- a/drivers/iommu/arm/arm-smmu/arm-smmu.h -+++ b/drivers/iommu/arm/arm-smmu/arm-smmu.h -@@ -528,6 +528,11 @@ struct arm_smmu_device *arm_smmu_impl_in - struct arm_smmu_device *nvidia_smmu_impl_init(struct arm_smmu_device *smmu); - struct arm_smmu_device *qcom_smmu_impl_init(struct arm_smmu_device *smmu); - -+int __init arm_smmu_impl_module_init(void); -+void __exit arm_smmu_impl_module_exit(void); -+int __init qcom_smmu_module_init(void); -+void __exit qcom_smmu_module_exit(void); -+ - void arm_smmu_write_context_bank(struct arm_smmu_device *smmu, int idx); - int arm_mmu500_reset(struct arm_smmu_device *smmu); - diff --git a/queue-6.6/series b/queue-6.6/series index bc00ba60c2..cd047acbd7 100644 --- a/queue-6.6/series +++ b/queue-6.6/series @@ -31,7 +31,6 @@ fbdev-rivafb-fix-divide-error-in-nv3_arb.patch fbdev-smscufx-properly-copy-ioctl-memory-to-kernelspace.patch f2fs-fix-to-add-gc-count-stat-in-f2fs_gc_range.patch f2fs-fix-out-of-bounds-access-in-sysfs-attribute-read-write.patch -iommu-arm-smmu-qcom-do-not-register-driver-in-probe.patch f2fs-fix-is_checkpointed-flag-inconsistency-issue-caused-by-concurrent-atomic-commit-and-checkpoint-writes.patch f2fs-fix-to-avoid-uaf-in-f2fs_write_end_io.patch f2fs-fix-zoned-block-device-information-initialization.patch -- 2.47.3