From 751d88119fdc1dff71d1390c7768942a9b857bc6 Mon Sep 17 00:00:00 2001 From: Andrew Turner Date: Thu, 22 Dec 2022 10:10:46 +0000 Subject: [PATCH] Fix loading the hwpmc module when ACPI is enabled In 0a9a4d2cd6092 a check for OPT_ACPI was added to the hwpmc Makefile to fix loading the module in a kernel where ACPI has been disabled. This broke loading the module when ACPI was enabled in the build as OPT_ACPI isn't a Makefile macro so was always disabled. Move this check to the C files where the DEV_ACPI macro does exist. Reviewed by: gnn Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D37773 --- sys/arm64/arm64/cmn600.c | 7 ++++++- sys/dev/hwpmc/hwpmc_cmn600.c | 9 ++++++++- sys/dev/hwpmc/pmu_dmc620.c | 6 ++++++ sys/modules/hwpmc/Makefile | 2 -- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/sys/arm64/arm64/cmn600.c b/sys/arm64/arm64/cmn600.c index a6ed7b73bafc..de673535b927 100644 --- a/sys/arm64/arm64/cmn600.c +++ b/sys/arm64/arm64/cmn600.c @@ -1,7 +1,7 @@ /*- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2021 ARM Ltd + * Copyright (c) 2021-2022 Arm Ltd * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -34,6 +34,10 @@ __FBSDID("$FreeBSD$"); #include "opt_acpi.h" +/* + * This depends on ACPI, but is built unconditionally in the hwpmc module. + */ +#ifdef DEV_ACPI #include #include #include @@ -831,3 +835,4 @@ static driver_t cmn600_acpi_driver = { DRIVER_MODULE(cmn600, acpi, cmn600_acpi_driver, 0, 0); MODULE_VERSION(cmn600, 1); +#endif /* DEV_ACPI */ diff --git a/sys/dev/hwpmc/hwpmc_cmn600.c b/sys/dev/hwpmc/hwpmc_cmn600.c index 5e3ecb58c77c..59b4e8252af2 100644 --- a/sys/dev/hwpmc/hwpmc_cmn600.c +++ b/sys/dev/hwpmc/hwpmc_cmn600.c @@ -3,7 +3,7 @@ * * Copyright (c) 2003-2008 Joseph Koshy * Copyright (c) 2007 The FreeBSD Foundation - * Copyright (c) 2021 ARM Ltd + * Copyright (c) 2021-2022 ARM Ltd * * Portions of this software were developed by A. Joseph Koshy under * sponsorship from the FreeBSD Foundation and Google, Inc. @@ -35,6 +35,12 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_acpi.h" + +/* + * This depends on ACPI, but is built unconditionally in the hwpmc module. + */ +#ifdef DEV_ACPI #include #include #include @@ -824,3 +830,4 @@ pmc_cmn600_finalize(struct pmc_mdep *md) } MODULE_DEPEND(pmc, cmn600, 1, 1, 1); +#endif /* DEV_ACPI */ diff --git a/sys/dev/hwpmc/pmu_dmc620.c b/sys/dev/hwpmc/pmu_dmc620.c index b2cb2404693c..464eb9004d11 100644 --- a/sys/dev/hwpmc/pmu_dmc620.c +++ b/sys/dev/hwpmc/pmu_dmc620.c @@ -2,6 +2,7 @@ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * * Copyright (c) 2021 Ampere Computing LLC + * Copyright (c) 2022 Arm Ltd * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -33,6 +34,10 @@ __FBSDID("$FreeBSD$"); #include "opt_hwpmc_hooks.h" #include "opt_acpi.h" +/* + * This depends on ACPI, but is built unconditionally in the hwpmc module. + */ +#ifdef DEV_ACPI #include #include #include @@ -275,3 +280,4 @@ DRIVER_MODULE(pmu_dmc620, acpi, pmu_dmc620_acpi_driver, 0, 0); /* Reverse dependency. hwpmc needs DMC-620 on ARM64. */ MODULE_DEPEND(pmc, pmu_dmc620, 1, 1, 1); MODULE_VERSION(pmu_dmc620, 1); +#endif /* DEV_ACPI */ diff --git a/sys/modules/hwpmc/Makefile b/sys/modules/hwpmc/Makefile index a72b3cf8d2fd..0db4c55e64f3 100644 --- a/sys/modules/hwpmc/Makefile +++ b/sys/modules/hwpmc/Makefile @@ -12,11 +12,9 @@ SRCS+= vnode_if.h .if ${MACHINE_CPUARCH} == "aarch64" SRCS+= hwpmc_arm64.c hwpmc_arm64_md.c -.if !empty(OPT_ACPI) SRCS+= cmn600.c hwpmc_cmn600.c SRCS+= hwpmc_dmc620.c pmu_dmc620.c .endif -.endif .if ${MACHINE_CPUARCH} == "amd64" SRCS+= hwpmc_amd.c hwpmc_core.c hwpmc_intel.c hwpmc_tsc.c