Re: [PATCH] ACPI: processor: Move MWAIT quirk out of acpi_processor.c

From: Rafael J. Wysocki
Date: Tue Aug 29 2023 - 10:04:38 EST


On Tue, Aug 29, 2023 at 3:58 PM Wilczynski, Michal
<michal.wilczynski@xxxxxxxxx> wrote:
>
>
>
> On 8/29/2023 3:54 PM, Rafael J. Wysocki wrote:
> > On Tue, Aug 29, 2023 at 3:44 PM Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
> >> On Mon, Jul 10, 2023 at 05:03:29PM +0300, Michal Wilczynski wrote:
> >>> Commit 2a2a64714d9c ("ACPI: Disable MWAIT via DMI on broken Compal board")
> >>> introduced a workaround for MWAIT for a specific x86 system.
> >>>
> >>> Move the code outside of acpi_processor.c to acpi/x86/ directory for
> >>> consistency and rename the functions associated with it, so their names
> >>> start with "acpi_proc_quirk_" to make the goal obvious.
> >>>
> >>> No intentional functional impact.
> >>>
> >> Except for:
> >>
> >> ia64-linux-ld: drivers/acpi/acpi_processor.o: in function `acpi_early_processor_control_setup':
> >> acpi_processor.c:(.init.text+0x712): undefined reference to `acpi_proc_quirk_mwait_check'
> >> ia64-linux-ld: drivers/acpi/processor_pdc.o: in function `acpi_early_processor_set_pdc':
> >> processor_pdc.c:(.init.text+0x72): undefined reference to `acpi_proc_quirk_mwait_check'
> >>
> >> which breaks all ia64 builds.
> >>
> >> Time to retire that architecture yet ? No one but me seems to even
> >> build test it.
> > Including 0-day it seems. This had been in linux-next for several weeks.
> >
> > Michal, can you have a look at this please?
>
> Hi,
> I'll take a look and get back to you with a fix,

Actually, if I'm not mistaken, the attached patch should be sufficient.
---
drivers/acpi/internal.h | 14 ++++----------
1 file changed, 4 insertions(+), 10 deletions(-)

Index: linux-pm/drivers/acpi/internal.h
===================================================================
--- linux-pm.orig/drivers/acpi/internal.h
+++ linux-pm/drivers/acpi/internal.h
@@ -148,8 +148,11 @@ int acpi_wakeup_device_init(void);
#ifdef CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC
void acpi_early_processor_control_setup(void);
void acpi_early_processor_set_pdc(void);
-
+#ifdef CONFIG_X86
void acpi_proc_quirk_mwait_check(void);
+#else
+static inline void acpi_proc_quirk_mwait_check(void) {}
+#endif
bool processor_physically_present(acpi_handle handle);
#else
static inline void acpi_early_processor_control_setup(void) {}