]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: Make  _midr_in_range_list() an exported function
authorShameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Fri, 21 Feb 2025 14:02:27 +0000 (14:02 +0000)
committerOliver Upton <oliver.upton@linux.dev>
Wed, 26 Feb 2025 21:30:36 +0000 (13:30 -0800)
Subsequent patch will add target implementation CPU support and that
will require _midr_in_range_list() to access new data. To avoid
exporting the data make _midr_in_range_list() a normal function and
export it.

No functional changes intended.

Signed-off-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/20250221140229.12588-5-shameerali.kolothum.thodi@huawei.com
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
arch/arm64/include/asm/cputype.h
arch/arm64/kernel/cpu_errata.c
arch/arm64/kernel/image-vars.h

index 2a76f0e3000694b62235a334a46e903c2d18d6e4..ccb4a155d1180df75a13ec91686c445f1d105d6e 100644 (file)
@@ -276,20 +276,7 @@ static inline bool midr_is_cpu_model_range(u32 midr, u32 model, u32 rv_min,
        return _model == model && rv >= rv_min && rv <= rv_max;
 }
 
-static inline bool is_midr_in_range(struct midr_range const *range)
-{
-       return midr_is_cpu_model_range(read_cpuid_id(), range->model,
-                                      range->rv_min, range->rv_max);
-}
-
-static inline bool
-is_midr_in_range_list(struct midr_range const *ranges)
-{
-       while (ranges->model)
-               if (is_midr_in_range(ranges++))
-                       return true;
-       return false;
-}
+bool is_midr_in_range_list(struct midr_range const *ranges);
 
 static inline u64 __attribute_const__ read_cpuid_mpidr(void)
 {
index 99b55893fc4e4ae8146dea573b121a9d57225cd3..1f51cf6378c5089d4ba9ca1f378f17c018978ff3 100644 (file)
 #include <asm/kvm_asm.h>
 #include <asm/smp_plat.h>
 
+static inline bool is_midr_in_range(struct midr_range const *range)
+{
+       return midr_is_cpu_model_range(read_cpuid_id(), range->model,
+                                      range->rv_min, range->rv_max);
+}
+
+bool is_midr_in_range_list(struct midr_range const *ranges)
+{
+       while (ranges->model)
+               if (is_midr_in_range(ranges++))
+                       return true;
+       return false;
+}
+EXPORT_SYMBOL_GPL(is_midr_in_range_list);
+
 static bool __maybe_unused
 __is_affected_midr_range(const struct arm64_cpu_capabilities *entry,
                         u32 midr, u32 revidr)
index ef3a69cc398e5182e2b81478d8f2bf41b093c214..de3d081e5a572d0e7f69f67fc46bdc73c590d22e 100644 (file)
@@ -49,6 +49,7 @@ PROVIDE(__pi_arm64_sw_feature_override        = arm64_sw_feature_override);
 PROVIDE(__pi_arm64_use_ng_mappings     = arm64_use_ng_mappings);
 #ifdef CONFIG_CAVIUM_ERRATUM_27456
 PROVIDE(__pi_cavium_erratum_27456_cpus = cavium_erratum_27456_cpus);
+PROVIDE(__pi_is_midr_in_range_list     = is_midr_in_range_list);
 #endif
 PROVIDE(__pi__ctype                    = _ctype);
 PROVIDE(__pi_memstart_offset_seed      = memstart_offset_seed);