git: 751d88119fdc - main - Fix loading the hwpmc module when ACPI is enabled

From: Andrew Turner <andrew_at_FreeBSD.org>
Date: Thu, 22 Dec 2022 10:45:48 UTC
The branch main has been updated by andrew:

URL: https://cgit.FreeBSD.org/src/commit/?id=751d88119fdc1dff71d1390c7768942a9b857bc6

commit 751d88119fdc1dff71d1390c7768942a9b857bc6
Author:     Andrew Turner <andrew@FreeBSD.org>
AuthorDate: 2022-12-22 10:10:46 +0000
Commit:     Andrew Turner <andrew@FreeBSD.org>
CommitDate: 2022-12-22 10:36:18 +0000

    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 <sys/param.h>
 #include <sys/bus.h>
 #include <sys/kernel.h>
@@ -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 <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
+#include "opt_acpi.h"
+
+/*
+ * This depends on ACPI, but is built unconditionally in the hwpmc module.
+ */
+#ifdef DEV_ACPI
 #include <sys/param.h>
 #include <sys/lock.h>
 #include <sys/malloc.h>
@@ -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 <sys/param.h>
 #include <sys/bus.h>
 #include <sys/module.h>
@@ -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