• Build regression since v6.6-rc1

    From Frank Scheiner@21:1/5 to All on Thu Sep 21 12:20:01 2023
    Dear all,

    since v6.6-rc1 (actually introduced with [1], specific commit on [2])
    the kernel build for ia64 fails like that:

    ```
    Making kernel...
    time make -j24
    LOCALVERSION="-0bb80ecc33a8fb5a682236443c1e740d5c917d1d-ia64" ARCH=ia64 CROSS_COMPILE=ia64-linux- all
    Mon Sep 11 06:24:43 PM CEST 2023
    [...]
    LD [M] net/sunrpc/sunrpc.ko
    ia64-linux-ld: drivers/acpi/acpi_processor.o: in function `acpi_early_processor_osc': /usr/src/linux-on-ramdisk/torvalds-linux/drivers/acpi/acpi_processor.c:596: undefined reference to `acpi_proc_quirk_mwait_check'
    ia64-linux-ld: drivers/acpi/processor_pdc.o: in function `acpi_early_processor_set_pdc': /usr/src/linux-on-ramdisk/torvalds-linux/drivers/acpi/processor_pdc.c:113: undefined reference to `acpi_proc_quirk_mwait_check'
    make[2]: *** [scripts/Makefile.vmlinux:36: vmlinux] Error 1
    make[1]: *** [/usr/src/linux-on-ramdisk/torvalds-linux/Makefile:1165:
    vmlinux] Error 2
    make: *** [Makefile:234: __sub-make] Error 2

    real 3m25.286s
    user 69m26.895s
    sys 6m37.619s
    2
    ```

    [1]: https://github.com/torvalds/linux/commit/9bd0c413b90c6517b4a2fbedb74f50df3421b50c

    [2]: https://github.com/torvalds/linux/commit/0a0e2ea642f6

    In short, the change introduced a function call ([3]) in effect for ia64 without providing an implementation for that function for ia64. There's
    a discussion thread on [4] that also includes a patch ([5]) to "fix" the problem but that one unfortunately wasn't included in [1] or [2]:

    ```
    ---
    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) {}

    ```

    For me this patch solves the build problem for v6.6-rc1 and -rc2.
    There's also another patch available for that specific problem by Ard
    ([6]) but I haven't seen this one included either up until 42dc814 and I
    also haven't tested this one.

    Coul
  • From Frank Scheiner@21:1/5 to Ard Biesheuvel on Thu Sep 21 14:10:01 2023
    Hi Ard,

    On 21.09.23 13:53, Ard Biesheuvel wrote:
    Hello Frank,

    On Thu, 21 Sept 2023 at 10:15, Frank Scheiner <frank.scheiner@web.de> wrote:

    Dear all,

    since v6.6-rc1 (actually introduced with [1], specific commit on [2])
    the kernel build for ia64 fails like that:

    ```
    ...

    Could one ([5]) or the other ([6]) please be included in v6.6 (or
    earlier) to "fix" the build problem for ia64?


    Do you mean by "fix" that the proposed fixes are just workarounds and
    not proper fixes?

    Not really, or maybe a little... :-)

    I don't think that is the case - the function in
    question does nothing except apply a quirk for one specific x86
    platform.

    ...look, as I assumed and as you also say, the function is to "apply a
    quirk for one specific x86 platform". So wouldn't it be better to make
    that call only on x86 and leave ia64 untouched instead of putting a NOP
    there?

    I already wondered why no other architecture with ACPI failed to build?

    Cheers,
    Frank


    ...
    [5]:
    https://lore.kernel.org/lkml/CAJZ5v0hnNK4O_HyinvTp01YxXR7V4vzpMhf85yW9M2=52-O2Fg@mail.gmail.com/

    [6]:
    https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/commit/?id=a0334bf78b95532cec54f56b53e8ae1bfe7e1ca1

    Either Arnd, Rafael or myself should send a PR to Linus to merge [6]
    as a fix, as it is already queued up in -next for v6.7.

    Or perhaps Linus doesn't mind grabbing it from here:

    ------------8<--------------

    The following changes since commit 0bb80ecc33a8fb5a682236443c1e740d5c917d1d:

    Linux 6.6-rc1 (2023-09-10 16:28:41 -0700)

    are available in the Git repository at:

    git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git tags/fix-ia64-build-for-v6.6

    for you to fetch changes up to a0334bf78b95532cec54f56b53e8ae1bfe7e1ca1:

    acpi: Provide ia64 dummy implementation of
    acpi_proc_quirk_mwait_check() (2023-09-11 08:13:17 +0000)

    ----------------------------------------------------------------
    Build fix for Itanium/ia64:

    - provide dummy implementation of acpi_proc_quirk_mwait_check() which
    was moved out of generic code into arch/x86, breaking the ia64 build

    ----------------------------------------------------------------
    Ard Biesheuvel (1):
    acpi: Provide ia64 dummy implementation of acpi_proc_quirk_mwait_check()

    arch/ia64/kernel/acpi.c | 4 ++++
    1 file changed, 4 insertions(+)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Ard Biesheuvel@21:1/5 to Frank Scheiner on Thu Sep 21 14:20:01 2023
    Hello Frank,

    On Thu, 21 Sept 2023 at 10:15, Frank Scheiner <frank.scheiner@web.de> wrote:

    Dear all,

    since v6.6-rc1 (actually introduced with [1], specific commit on [2])
    the kernel build for ia64 fails like that:

    ```
    ...

    Could one ([5]) or the other ([6]) please be included in v6.6 (or
    earlier) to "fix" the build problem for ia64?


    Do you mean by "fix" that the proposed fixes are just workarounds and
    not proper fixes? I don't think that is the case - the function in
    question does nothing except apply a quirk for one specific x86
    platform.

    ...
    [5]: https://lore.kernel.org/lkml/CAJZ5v0hnNK4O_HyinvTp01YxXR7V4vzpMhf85yW9M2=52-O2Fg@mail.gmail.com/

    [6]: https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/commit/?id=a0334bf78b95532cec54f56b53e8ae1bfe7e1ca1

    Either Arnd, Rafael or myself should send a PR to Linus to merge [6]
    as a fix, as it is already queued up in -next for v6.7.

    Or perhaps Linus doesn't mind grabbing it from here:

    ------------8<--------------

    The following changes since commit 0bb80ecc33a8fb5a682236443c1e740d5c917d1d:

    Linux 6.6-rc1 (2023-09-10 16:28:41 -0700)

    are available in the Git repository at:

    git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git tags/fix-ia64-build-for-v6.6

    for you to fetch changes up to a0334bf78b95532cec54f56b53e8ae1bfe7e1ca1:

    acpi: Provide ia64 dummy implementation of
    acpi_proc_quirk_mwait_check() (2023-09-11 08:13:17 +0000)

    ----------------------------------------------------------------
    Build fix for Itanium/ia64:

    - provide dummy implementation of acpi_proc_quirk_mwait_check() which
    was moved out of generic code into arch/x86, breaking the ia64 build

    ----------------------------------------------------------------
    Ard Biesheuvel (1):
    acpi: Provide ia64 dummy implementation of acpi_proc_quirk_mwait_check()

    arch/ia64/kernel/acpi.c | 4 ++++
    1 file changed, 4 insertions(+)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)