2021-09-01 03:05:00

by Nathan Chancellor

[permalink] [raw]
Subject: [PATCH] x86/setup: Explicitly include acpi.h

After commit 342f43af70db ("iscsi_ibft: fix crash due to KASLR physical
memory remapping"), certain configurations show the following errors:

arch/x86/kernel/setup.c: In function ‘setup_arch’:
arch/x86/kernel/setup.c:916:13: error: implicit declaration of function ‘acpi_mps_check’ [-Werror=implicit-function-declaration]
916 | if (acpi_mps_check()) {
| ^~~~~~~~~~~~~~
arch/x86/kernel/setup.c:1110:9: error: implicit declaration of function ‘acpi_table_upgrade’ [-Werror=implicit-function-declaration]
1110 | acpi_table_upgrade();
| ^~~~~~~~~~~~~~~~~~
arch/x86/kernel/setup.c:1112:9: error: implicit declaration of function ‘acpi_boot_table_init’ [-Werror=implicit-function-declaration]
1112 | acpi_boot_table_init();
| ^~~~~~~~~~~~~~~~~~~~
arch/x86/kernel/setup.c:1120:9: error: implicit declaration of function ‘early_acpi_boot_init’; did you mean ‘early_cpu_init’? [-Werror=implicit-function-declaration]
1120 | early_acpi_boot_init();
| ^~~~~~~~~~~~~~~~~~~~
| early_cpu_init
arch/x86/kernel/setup.c:1162:9: error: implicit declaration of function ‘acpi_boot_init’ [-Werror=implicit-function-declaration]
1162 | acpi_boot_init();
| ^~~~~~~~~~~~~~
cc1: some warnings being treated as errors

acpi.h was being implicitly included from iscsi_ibft.h in these
configurations so the removal of that means these functions have no
definition or declaration. Add acpi.h explicitly so there is no more
error.

Signed-off-by: Nathan Chancellor <[email protected]>
---

* No fixes tag as I doubt the mentioned commit is the root cause.

* The configuration was WSL2's, I did not drill down exactly which set
of configs triggers this but it is pretty obvious what is going on
here.

arch/x86/kernel/setup.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index 63b20536c8d2..79f164141116 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -5,6 +5,7 @@
* This file contains the setup_arch() code, which handles the architecture-dependent
* parts of early kernel initialization.
*/
+#include <linux/acpi.h>
#include <linux/console.h>
#include <linux/crash_dump.h>
#include <linux/dma-map-ops.h>

base-commit: 9e9fb7655ed585da8f468e29221f0ba194a5f613
--
2.33.0


2021-09-01 18:48:35

by Matthieu Baerts

[permalink] [raw]
Subject: Re: [PATCH] x86/setup: Explicitly include acpi.h

Hi Nathan,

On 01/09/2021 04:15, Nathan Chancellor wrote:
> After commit 342f43af70db ("iscsi_ibft: fix crash due to KASLR physical
> memory remapping"), certain configurations show the following errors:

Thank you for the patch!

It fixes the same issue on my side using a configuration based on
x86_64_defconfig with a few extras on the Networking side only. My CI
also noticed it was failing with a config based on tinyconfig.

Tested-by: Matthieu Baerts <[email protected]>

Cheers,
Matt
--
Tessares | Belgium | Hybrid Access Solutions
http://www.tessares.net

2021-09-01 18:58:19

by Nathan Chancellor

[permalink] [raw]
Subject: [PATCH v2] x86/setup: Explicitly include acpi.h

After commit 342f43af70db ("iscsi_ibft: fix crash due to KASLR physical
memory remapping") x86_64_defconfig shows the following errors:

arch/x86/kernel/setup.c: In function ‘setup_arch’:
arch/x86/kernel/setup.c:916:13: error: implicit declaration of function ‘acpi_mps_check’ [-Werror=implicit-function-declaration]
916 | if (acpi_mps_check()) {
| ^~~~~~~~~~~~~~
arch/x86/kernel/setup.c:1110:9: error: implicit declaration of function ‘acpi_table_upgrade’ [-Werror=implicit-function-declaration]
1110 | acpi_table_upgrade();
| ^~~~~~~~~~~~~~~~~~
arch/x86/kernel/setup.c:1112:9: error: implicit declaration of function ‘acpi_boot_table_init’ [-Werror=implicit-function-declaration]
1112 | acpi_boot_table_init();
| ^~~~~~~~~~~~~~~~~~~~
arch/x86/kernel/setup.c:1120:9: error: implicit declaration of function ‘early_acpi_boot_init’; did you mean ‘early_cpu_init’? [-Werror=implicit-function-declaration]
1120 | early_acpi_boot_init();
| ^~~~~~~~~~~~~~~~~~~~
| early_cpu_init
arch/x86/kernel/setup.c:1162:9: error: implicit declaration of function ‘acpi_boot_init’ [-Werror=implicit-function-declaration]
1162 | acpi_boot_init();
| ^~~~~~~~~~~~~~
cc1: some warnings being treated as errors

acpi.h was being implicitly included from iscsi_ibft.h in this
configuration so the removal of that header means these functions have
no definition or declaration. Add acpi.h explicitly so there is no more
error.

Tested-by: Matthieu Baerts <[email protected]>
Signed-off-by: Nathan Chancellor <[email protected]>
---

Linus, would you mind taking this directly? Boris indicated here he was
okay with that:

https://lore.kernel.org/r/[email protected]/

v1 -> v2:

* "certain configurations" -> "x86_64_defconfig", be definitive.

* Add Matthieu's tested-by.

arch/x86/kernel/setup.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index 63b20536c8d2..79f164141116 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -5,6 +5,7 @@
* This file contains the setup_arch() code, which handles the architecture-dependent
* parts of early kernel initialization.
*/
+#include <linux/acpi.h>
#include <linux/console.h>
#include <linux/crash_dump.h>
#include <linux/dma-map-ops.h>

base-commit: 9e9fb7655ed585da8f468e29221f0ba194a5f613
--
2.33.0

2021-09-01 19:01:15

by Linus Torvalds

[permalink] [raw]
Subject: Re: [PATCH v2] x86/setup: Explicitly include acpi.h

On Wed, Sep 1, 2021 at 9:09 AM Nathan Chancellor <[email protected]> wrote:
>
> After commit 342f43af70db ("iscsi_ibft: fix crash due to KASLR physical
> memory remapping") x86_64_defconfig shows the following errors:

Strange. I wonder why I didn't see that - not even in my smaller config builds.

> acpi.h was being implicitly included from iscsi_ibft.h in this
> configuration so the removal of that header means these functions have
> no definition or declaration. Add acpi.h explicitly so there is no more
> error.

The patch is clearly ok, I wonder what way _my_ config included acpi.h
ended up coming in..

[ Goes off and looks. Oh, because I got it from <linux/tboot.h> and
had CONFIG_INTEL_TXT enabled. ]

> Linus, would you mind taking this directly?

Will do.

Linus