2021-08-23 19:45:58

by Borislav Petkov

[permalink] [raw]
Subject: ERROR: modpost: "pm_suspend_target_state" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!

Hi folks,

I'm seeing this:

ERROR: modpost: "pm_suspend_target_state" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!
make[1]: *** [scripts/Makefile.modpost:150: modules-only.symvers] Error 1
make[1]: *** Deleting file 'modules-only.symvers'
make: *** [Makefile:1766: modules] Error 2
make: *** Waiting for unfinished jobs....

with the attached config which has

# CONFIG_SUSPEND is not set

on latest Linus tree.

It probably has been fixed already but lemme report it just in case.

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette


Attachments:
(No filename) (597.00 B)
20-59-32-randconfig-x86_64-4564.cfg (192.47 kB)
Download all attachments

2021-08-23 19:50:45

by Alex Deucher

[permalink] [raw]
Subject: Re: ERROR: modpost: "pm_suspend_target_state" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!

On Mon, Aug 23, 2021 at 3:43 PM Borislav Petkov <[email protected]> wrote:
>
> Hi folks,
>
> I'm seeing this:
>
> ERROR: modpost: "pm_suspend_target_state" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!
> make[1]: *** [scripts/Makefile.modpost:150: modules-only.symvers] Error 1
> make[1]: *** Deleting file 'modules-only.symvers'
> make: *** [Makefile:1766: modules] Error 2
> make: *** Waiting for unfinished jobs....
>
> with the attached config which has
>
> # CONFIG_SUSPEND is not set
>
> on latest Linus tree.
>
> It probably has been fixed already but lemme report it just in case.

Maybe fixed with this patch?
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5706cb3c910cc8283f344bc37a889a8d523a2c6d

Alex

>
> --
> Regards/Gruss,
> Boris.
>
> https://people.kernel.org/tglx/notes-about-netiquette

2021-08-23 20:33:54

by Alex Deucher

[permalink] [raw]
Subject: Re: ERROR: modpost: "pm_suspend_target_state" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!

On Mon, Aug 23, 2021 at 4:27 PM Borislav Petkov <[email protected]> wrote:
>
> On Mon, Aug 23, 2021 at 03:49:39PM -0400, Alex Deucher wrote:
> > Maybe fixed with this patch?
> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5706cb3c910cc8283f344bc37a889a8d523a2c6d
>
> Nope, this one is already in:
>
> $ git tag --contains 5706cb3c910cc8283f344bc37a889a8d523a2c6d
> v5.14-rc5
> v5.14-rc6
> v5.14-rc7
>
> also, from only a quick poke so IMHO, the error says:
>
> ERROR: modpost: "pm_suspend_target_state" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!
>
> which means you need the
>
> EXPORT_SYMBOL_GPL(pm_suspend_target_state);
>
> which is in kernel/power/suspend.c which gets enabled with
>
> obj-$(CONFIG_SUSPEND) += suspend.o
>
> and if you look at PM_SLEEP:
>
> config PM_SLEEP
> def_bool y
> depends on SUSPEND || HIBERNATE_CALLBACKS
>
> (notice the ||)
>
> and my randconfig has:
>
> $ grep -E "(HIBERNATE_CALLBACKS|SUSPEND)" .config
> # CONFIG_SUSPEND is not set
> CONFIG_HIBERNATE_CALLBACKS=y
>
> which means, you need:
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
> index 4137e848f6a2..a9ce3b20d371 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
> @@ -1040,7 +1040,7 @@ void amdgpu_acpi_detect(void)
> */
> bool amdgpu_acpi_is_s0ix_supported(struct amdgpu_device *adev)
> {
> -#if IS_ENABLED(CONFIG_AMD_PMC) && IS_ENABLED(CONFIG_PM_SLEEP)
> +#if IS_ENABLED(CONFIG_AMD_PMC) && IS_ENABLED(CONFIG_SUSPEND)
> if (acpi_gbl_FADT.flags & ACPI_FADT_LOW_POWER_S0) {
> if (adev->flags & AMD_IS_APU)
> return pm_suspend_target_state == PM_SUSPEND_TO_IDLE;
>
>
> but whether that gives you what you want for amdgpu, you probably need
> to ponder on a bit.
>
> I sincerely hope that helps a little.

Thanks. I think that should do the trick. Care to send that as a formal patch?

Alex

2021-08-23 20:37:54

by Borislav Petkov

[permalink] [raw]
Subject: Re: ERROR: modpost: "pm_suspend_target_state" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!

On Mon, Aug 23, 2021 at 03:49:39PM -0400, Alex Deucher wrote:
> Maybe fixed with this patch?
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5706cb3c910cc8283f344bc37a889a8d523a2c6d

Nope, this one is already in:

$ git tag --contains 5706cb3c910cc8283f344bc37a889a8d523a2c6d
v5.14-rc5
v5.14-rc6
v5.14-rc7

also, from only a quick poke so IMHO, the error says:

ERROR: modpost: "pm_suspend_target_state" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!

which means you need the

EXPORT_SYMBOL_GPL(pm_suspend_target_state);

which is in kernel/power/suspend.c which gets enabled with

obj-$(CONFIG_SUSPEND) += suspend.o

and if you look at PM_SLEEP:

config PM_SLEEP
def_bool y
depends on SUSPEND || HIBERNATE_CALLBACKS

(notice the ||)

and my randconfig has:

$ grep -E "(HIBERNATE_CALLBACKS|SUSPEND)" .config
# CONFIG_SUSPEND is not set
CONFIG_HIBERNATE_CALLBACKS=y

which means, you need:

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
index 4137e848f6a2..a9ce3b20d371 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
@@ -1040,7 +1040,7 @@ void amdgpu_acpi_detect(void)
*/
bool amdgpu_acpi_is_s0ix_supported(struct amdgpu_device *adev)
{
-#if IS_ENABLED(CONFIG_AMD_PMC) && IS_ENABLED(CONFIG_PM_SLEEP)
+#if IS_ENABLED(CONFIG_AMD_PMC) && IS_ENABLED(CONFIG_SUSPEND)
if (acpi_gbl_FADT.flags & ACPI_FADT_LOW_POWER_S0) {
if (adev->flags & AMD_IS_APU)
return pm_suspend_target_state == PM_SUSPEND_TO_IDLE;


but whether that gives you what you want for amdgpu, you probably need
to ponder on a bit.

I sincerely hope that helps a little.

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette

2021-08-23 20:47:03

by Borislav Petkov

[permalink] [raw]
Subject: Re: ERROR: modpost: "pm_suspend_target_state" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!

On Mon, Aug 23, 2021 at 04:31:42PM -0400, Alex Deucher wrote:
> Thanks. I think that should do the trick. Care to send that as a
> formal patch?

Sure, but let me run it through the randconfigs tests first to make sure
nothing else breaks. It is late here so if I don't manage now I'll send
you a formal version tomorrow morning, CET, the latest.

Thx.

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette

2021-08-23 20:51:27

by Alex Deucher

[permalink] [raw]
Subject: Re: ERROR: modpost: "pm_suspend_target_state" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!

On Mon, Aug 23, 2021 at 4:46 PM Borislav Petkov <[email protected]> wrote:
>
> On Mon, Aug 23, 2021 at 04:31:42PM -0400, Alex Deucher wrote:
> > Thanks. I think that should do the trick. Care to send that as a
> > formal patch?
>
> Sure, but let me run it through the randconfigs tests first to make sure
> nothing else breaks. It is late here so if I don't manage now I'll send
> you a formal version tomorrow morning, CET, the latest.
>

Sounds good. Thanks!

Alex

2021-08-24 09:44:27

by Borislav Petkov

[permalink] [raw]
Subject: [PATCH] drm/amdgpu: Fix build with missing pm_suspend_target_state module export

From: Borislav Petkov <[email protected]>

Building a randconfig here triggered:

ERROR: modpost: "pm_suspend_target_state" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!

because the module export of that symbol happens in
kernel/power/suspend.c which is enabled with CONFIG_SUSPEND.

The ifdef guards in amdgpu_acpi_is_s0ix_supported(), however, test for
CONFIG_PM_SLEEP which is defined like this:

config PM_SLEEP
def_bool y
depends on SUSPEND || HIBERNATE_CALLBACKS

and that randconfig has:

# CONFIG_SUSPEND is not set
CONFIG_HIBERNATE_CALLBACKS=y

leading to the module export missing.

Change the ifdeffery to depend directly on CONFIG_SUSPEND.

Fixes: 5706cb3c910c ("drm/amdgpu: fix checking pmops when PM_SLEEP is not enabled")
Signed-off-by: Borislav Petkov <[email protected]>
Link: https://lkml.kernel.org/r/[email protected]
---
drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
index 4137e848f6a2..a9ce3b20d371 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
@@ -1040,7 +1040,7 @@ void amdgpu_acpi_detect(void)
*/
bool amdgpu_acpi_is_s0ix_supported(struct amdgpu_device *adev)
{
-#if IS_ENABLED(CONFIG_AMD_PMC) && IS_ENABLED(CONFIG_PM_SLEEP)
+#if IS_ENABLED(CONFIG_AMD_PMC) && IS_ENABLED(CONFIG_SUSPEND)
if (acpi_gbl_FADT.flags & ACPI_FADT_LOW_POWER_S0) {
if (adev->flags & AMD_IS_APU)
return pm_suspend_target_state == PM_SUSPEND_TO_IDLE;
--
2.29.2


--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette

2021-08-24 13:13:13

by Lazar, Lijo

[permalink] [raw]
Subject: Re: [PATCH] drm/amdgpu: Fix build with missing pm_suspend_target_state module export


On 8/24/2021 3:12 PM, Borislav Petkov wrote:
> From: Borislav Petkov <[email protected]>
>
> Building a randconfig here triggered:
>
> ERROR: modpost: "pm_suspend_target_state" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!
>
> because the module export of that symbol happens in
> kernel/power/suspend.c which is enabled with CONFIG_SUSPEND.
>
> The ifdef guards in amdgpu_acpi_is_s0ix_supported(), however, test for
> CONFIG_PM_SLEEP which is defined like this:
>
> config PM_SLEEP
> def_bool y
> depends on SUSPEND || HIBERNATE_CALLBACKS
>
> and that randconfig has:
>
> # CONFIG_SUSPEND is not set
> CONFIG_HIBERNATE_CALLBACKS=y
>
> leading to the module export missing.
>
> Change the ifdeffery to depend directly on CONFIG_SUSPEND.
>

Hi Boris,

Thanks for the patch.

As far as I see, in linux/suspend.h,

extern suspend_state_t pm_suspend_target_state; is declared under

#ifdef CONFIG_PM_SLEEP

Without CONFIG_PM_SLEEP and with CONFIG_SUSPEND it may give variable not
declared compilation error. Sorry to ask , but are you not getting the same?

I remember giving a reviewed-by for this one, looks like it never got in.
https://www.spinics.net/lists/amd-gfx/msg66166.html

Thanks,
Lijo

> Fixes: 5706cb3c910c ("drm/amdgpu: fix checking pmops when PM_SLEEP is not enabled")
> Signed-off-by: Borislav Petkov <[email protected]>
> Link: https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flkml.kernel.org%2Fr%2FYSP6Lv53QV0cOAsd%40zn.tnic&amp;data=04%7C01%7CLijo.Lazar%40amd.com%7C71b6769cdd574a05b32b08d966e37525%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637653949420453962%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=ai%2B95gtZz0r0pXYaUkG97tiuaiykEy8%2FB%2FtmHP3W4Zs%3D&amp;reserved=0
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
> index 4137e848f6a2..a9ce3b20d371 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
> @@ -1040,7 +1040,7 @@ void amdgpu_acpi_detect(void)
> */
> bool amdgpu_acpi_is_s0ix_supported(struct amdgpu_device *adev)
> {
> -#if IS_ENABLED(CONFIG_AMD_PMC) && IS_ENABLED(CONFIG_PM_SLEEP)
> +#if IS_ENABLED(CONFIG_AMD_PMC) && IS_ENABLED(CONFIG_SUSPEND)
> if (acpi_gbl_FADT.flags & ACPI_FADT_LOW_POWER_S0) {
> if (adev->flags & AMD_IS_APU)
> return pm_suspend_target_state == PM_SUSPEND_TO_IDLE;
>

2021-08-24 13:40:56

by Borislav Petkov

[permalink] [raw]
Subject: Re: [PATCH] drm/amdgpu: Fix build with missing pm_suspend_target_state module export

On Tue, Aug 24, 2021 at 06:38:41PM +0530, Lazar, Lijo wrote:
> Without CONFIG_PM_SLEEP and with CONFIG_SUSPEND

Can you even create such a .config?

> I remember giving a reviewed-by for this one, looks like it never got in.
> https://www.spinics.net/lists/amd-gfx/msg66166.html

A better version of that one got in:

5706cb3c910c ("drm/amdgpu: fix checking pmops when PM_SLEEP is not enabled")

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette

2021-08-24 13:53:52

by Lazar, Lijo

[permalink] [raw]
Subject: Re: [PATCH] drm/amdgpu: Fix build with missing pm_suspend_target_state module export



On 8/24/2021 7:10 PM, Borislav Petkov wrote:
> On Tue, Aug 24, 2021 at 06:38:41PM +0530, Lazar, Lijo wrote:
>> Without CONFIG_PM_SLEEP and with CONFIG_SUSPEND
>
> Can you even create such a .config?

The description of "(drm/amdgpu: fix checking pmops when PM_SLEEP is
not enabled)" says -


'pm_suspend_target_state' is only available when CONFIG_PM_SLEEP
is set/enabled. OTOH, when both SUSPEND and HIBERNATION are not set,
PM_SLEEP is not set, so this variable cannot be used.

../drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c: In function
‘amdgpu_acpi_is_s0ix_active’:
../drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c:1046:11: error:
‘pm_suspend_target_state’ undeclared (first use in this function); did
you mean ‘__KSYM_pm_suspend_target_state’?
return pm_suspend_target_state == PM_SUSPEND_TO_IDLE;
^~~~~~~~~~~~~~~~~~~~~~~
__KSYM_pm_suspend_target_state

Also use shorter IS_ENABLED(CONFIG_foo) notation for checking the
2 config symbols.

So it does look like that error can be extracted as well in some config.

>
>> I remember giving a reviewed-by for this one, looks like it never got in.
>> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.spinics.net%2Flists%2Famd-gfx%2Fmsg66166.html&amp;data=04%7C01%7Clijo.lazar%40amd.com%7C4d61b17225944c45335b08d967049ee6%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637654091831465201%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=GCdVG8N7g2E9DaiM1ek1voKQ9stZNfnEwyghQ0pWoxU%3D&amp;reserved=0
>
> A better version of that one got in:
>
> 5706cb3c910c ("drm/amdgpu: fix checking pmops when PM_SLEEP is not enabled")
>

Well, now it doesn't seem to be a better one. The original one checked both.

Thanks,
Lijo

2021-08-24 14:38:20

by Borislav Petkov

[permalink] [raw]
Subject: Re: [PATCH] drm/amdgpu: Fix build with missing pm_suspend_target_state module export

On Tue, Aug 24, 2021 at 07:22:46PM +0530, Lazar, Lijo wrote:
> 'pm_suspend_target_state' is only available when CONFIG_PM_SLEEP
> is set/enabled.

pm_suspend_target_state is available only when CONFIG_SUSPEND is
enabled. The extern thing is only a forward declaration.

> OTOH, when both SUSPEND and HIBERNATION are not set,
> PM_SLEEP is not set, so this variable cannot be used.

And it will not be used.

> ../drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c: In function
> ‘amdgpu_acpi_is_s0ix_active’:
> ../drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c:1046:11: error:
> ‘pm_suspend_target_state’ undeclared (first use in this function); did you
> mean ‘__KSYM_pm_suspend_target_state’?
> return pm_suspend_target_state == PM_SUSPEND_TO_IDLE;
> ^~~~~~~~~~~~~~~~~~~~~~~
> __KSYM_pm_suspend_target_state

That looks like the .config didn't have CONFIG_SUSPEND enabled.

> Also use shorter IS_ENABLED(CONFIG_foo) notation for checking the
> 2 config symbols.

What shorter notation?

> So it does look like that error can be extracted as well in some
> config.

Yah, when CONFIG_SUSPEND=n.

> Well, now it doesn't seem to be a better one. The original one checked
> both.

I don't see a reason for checking both.

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette

2021-08-24 15:18:07

by Lazar, Lijo

[permalink] [raw]
Subject: Re: [PATCH] drm/amdgpu: Fix build with missing pm_suspend_target_state module export



On 8/24/2021 3:12 PM, Borislav Petkov wrote:
> From: Borislav Petkov <[email protected]>
>
> Building a randconfig here triggered:
>
> ERROR: modpost: "pm_suspend_target_state" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!
>
> because the module export of that symbol happens in
> kernel/power/suspend.c which is enabled with CONFIG_SUSPEND.
>
> The ifdef guards in amdgpu_acpi_is_s0ix_supported(), however, test for
> CONFIG_PM_SLEEP which is defined like this:
>
> config PM_SLEEP
> def_bool y
> depends on SUSPEND || HIBERNATE_CALLBACKS
>
Missed this altogether!

Reviewed-by: Lijo Lazar <[email protected]>

Thanks,
Lijo

> and that randconfig has:
>
> # CONFIG_SUSPEND is not set
> CONFIG_HIBERNATE_CALLBACKS=y
>
> leading to the module export missing.
>
> Change the ifdeffery to depend directly on CONFIG_SUSPEND.
>
> Fixes: 5706cb3c910c ("drm/amdgpu: fix checking pmops when PM_SLEEP is not enabled")
> Signed-off-by: Borislav Petkov <[email protected]>
> Link: https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flkml.kernel.org%2Fr%2FYSP6Lv53QV0cOAsd%40zn.tnic&amp;data=04%7C01%7CLijo.Lazar%40amd.com%7C71b6769cdd574a05b32b08d966e37525%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637653949420453962%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=ai%2B95gtZz0r0pXYaUkG97tiuaiykEy8%2FB%2FtmHP3W4Zs%3D&amp;reserved=0
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
> index 4137e848f6a2..a9ce3b20d371 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
> @@ -1040,7 +1040,7 @@ void amdgpu_acpi_detect(void)
> */
> bool amdgpu_acpi_is_s0ix_supported(struct amdgpu_device *adev)
> {
> -#if IS_ENABLED(CONFIG_AMD_PMC) && IS_ENABLED(CONFIG_PM_SLEEP)
> +#if IS_ENABLED(CONFIG_AMD_PMC) && IS_ENABLED(CONFIG_SUSPEND)
> if (acpi_gbl_FADT.flags & ACPI_FADT_LOW_POWER_S0) {
> if (adev->flags & AMD_IS_APU)
> return pm_suspend_target_state == PM_SUSPEND_TO_IDLE;
>

2021-08-24 16:00:49

by Alex Deucher

[permalink] [raw]
Subject: Re: [PATCH] drm/amdgpu: Fix build with missing pm_suspend_target_state module export

Applied. Thanks!

Alex

On Tue, Aug 24, 2021 at 11:16 AM Lazar, Lijo <[email protected]> wrote:
>
>
>
> On 8/24/2021 3:12 PM, Borislav Petkov wrote:
> > From: Borislav Petkov <[email protected]>
> >
> > Building a randconfig here triggered:
> >
> > ERROR: modpost: "pm_suspend_target_state" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!
> >
> > because the module export of that symbol happens in
> > kernel/power/suspend.c which is enabled with CONFIG_SUSPEND.
> >
> > The ifdef guards in amdgpu_acpi_is_s0ix_supported(), however, test for
> > CONFIG_PM_SLEEP which is defined like this:
> >
> > config PM_SLEEP
> > def_bool y
> > depends on SUSPEND || HIBERNATE_CALLBACKS
> >
> Missed this altogether!
>
> Reviewed-by: Lijo Lazar <[email protected]>
>
> Thanks,
> Lijo
>
> > and that randconfig has:
> >
> > # CONFIG_SUSPEND is not set
> > CONFIG_HIBERNATE_CALLBACKS=y
> >
> > leading to the module export missing.
> >
> > Change the ifdeffery to depend directly on CONFIG_SUSPEND.
> >
> > Fixes: 5706cb3c910c ("drm/amdgpu: fix checking pmops when PM_SLEEP is not enabled")
> > Signed-off-by: Borislav Petkov <[email protected]>
> > Link: https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flkml.kernel.org%2Fr%2FYSP6Lv53QV0cOAsd%40zn.tnic&amp;data=04%7C01%7CLijo.Lazar%40amd.com%7C71b6769cdd574a05b32b08d966e37525%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637653949420453962%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=ai%2B95gtZz0r0pXYaUkG97tiuaiykEy8%2FB%2FtmHP3W4Zs%3D&amp;reserved=0
> > ---
> > drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
> > index 4137e848f6a2..a9ce3b20d371 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
> > @@ -1040,7 +1040,7 @@ void amdgpu_acpi_detect(void)
> > */
> > bool amdgpu_acpi_is_s0ix_supported(struct amdgpu_device *adev)
> > {
> > -#if IS_ENABLED(CONFIG_AMD_PMC) && IS_ENABLED(CONFIG_PM_SLEEP)
> > +#if IS_ENABLED(CONFIG_AMD_PMC) && IS_ENABLED(CONFIG_SUSPEND)
> > if (acpi_gbl_FADT.flags & ACPI_FADT_LOW_POWER_S0) {
> > if (adev->flags & AMD_IS_APU)
> > return pm_suspend_target_state == PM_SUSPEND_TO_IDLE;
> >