Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amdgpu: Fix build with missing pm_suspend_target_state module export

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")
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Link: https://lkml.kernel.org/r/YSP6Lv53QV0cOAsd@zn.tnic
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org

authored by

Borislav Petkov and committed by
Alex Deucher
a47f6a58 a5f61dd4

+1 -1
+1 -1
drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
··· 1040 1040 */ 1041 1041 bool amdgpu_acpi_is_s0ix_active(struct amdgpu_device *adev) 1042 1042 { 1043 - #if IS_ENABLED(CONFIG_AMD_PMC) && IS_ENABLED(CONFIG_PM_SLEEP) 1043 + #if IS_ENABLED(CONFIG_AMD_PMC) && IS_ENABLED(CONFIG_SUSPEND) 1044 1044 if (acpi_gbl_FADT.flags & ACPI_FADT_LOW_POWER_S0) { 1045 1045 if (adev->flags & AMD_IS_APU) 1046 1046 return pm_suspend_target_state == PM_SUSPEND_TO_IDLE;