Module Name: src Committed By: skrll Date: Tue Aug 25 13:33:43 UTC 2020
Modified Files: src/sys/arch/arm/nvidia: tegra124_cpu.c Log Message: Protect tegra124_cpu_init_cpufreq against being run more than once. config_finalize will call all config_finalize_register functions until all registered functions return 0. rf_autoconfig currently returns 1 which means tegra124_cpu_init_cpufreq would get called multiple times. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/arch/arm/nvidia/tegra124_cpu.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/nvidia/tegra124_cpu.c diff -u src/sys/arch/arm/nvidia/tegra124_cpu.c:1.4 src/sys/arch/arm/nvidia/tegra124_cpu.c:1.5 --- src/sys/arch/arm/nvidia/tegra124_cpu.c:1.4 Fri Jun 2 00:09:56 2017 +++ src/sys/arch/arm/nvidia/tegra124_cpu.c Tue Aug 25 13:33:43 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: tegra124_cpu.c,v 1.4 2017/06/02 00:09:56 jmcneill Exp $ */ +/* $NetBSD: tegra124_cpu.c,v 1.5 2020/08/25 13:33:43 skrll Exp $ */ /*- * Copyright (c) 2015 Jared D. McNeill <jmcne...@invisible.ca> @@ -30,7 +30,7 @@ #include "opt_multiprocessor.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: tegra124_cpu.c,v 1.4 2017/06/02 00:09:56 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tegra124_cpu.c,v 1.5 2020/08/25 13:33:43 skrll Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -140,9 +140,14 @@ tegra124_cpu_attach(device_t parent, dev config_finalize_register(self, tegra124_cpu_init_cpufreq); } +static bool tegra124_cpu_init_done = false; + static int tegra124_cpu_init_cpufreq(device_t dev) { + if (tegra124_cpu_init_done) + return 0; + tegra124_speedo_init(); int cpu_node = OF_finddevice("/cpus/cpu@0"); @@ -162,6 +167,8 @@ tegra124_cpu_init_cpufreq(device_t dev) tegra_cpufreq_register(&tegra124_cpufreq_func); + tegra124_cpu_init_done = true; + return 0; }