CVE-2022-50844

drm/amdgpu: Fix type of second parameter in odn_edit_dpm_table() callback

published December 30, 2025

CVSS
—
EPSS
0%
Percentile
14.1
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

drm/amdgpu: Fix type of second parameter in odn_edit_dpm_table() callback

With clang's kernel control flow integrity (kCFI, CONFIG_CFI_CLANG),

indirect call targets are validated against the expected function

pointer prototype to make sure the call target is valid to help mitigate

ROP attacks. If they are not identical, there is a failure at run time,

which manifests as either a kernel panic or thread getting killed. A

proposed warning in clang aims to catch these at compile time, which

reveals:

drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.c:3008:29: error: incompatible function pointer types initializing 'int (*)(void *, uint32_t, long *, uint32_t)' (aka 'int (*)(void *, unsigned int, long *, unsigned int)') with an expression of type 'int (void *, enum PP_OD_DPM_TABLE_COMMAND, long *, uint32_t)' (aka 'int (void *, enum PP_OD_DPM_TABLE_COMMAND, long *, unsigned int)') [-Werror,-Wincompatible-function-pointer-types-strict]

.odn_edit_dpm_table = smu_od_edit_dpm_table,

^~~~~~~~~~~~~~~~~~~~~

1 error generated.

There are only two implementations of ->odn_edit_dpm_table() in 'struct

amd_pm_funcs': smu_od_edit_dpm_table() and pp_odn_edit_dpm_table(). One

has a second parameter type of 'enum PP_OD_DPM_TABLE_COMMAND' and the

other uses 'u32'. Ultimately, smu_od_edit_dpm_table() calls

->od_edit_dpm_table() from 'struct pptable_funcs' and

pp_odn_edit_dpm_table() calls ->odn_edit_dpm_table() from 'struct

pp_hwmgr_func', which both have a second parameter type of 'enum

PP_OD_DPM_TABLE_COMMAND'.

Update the type parameter in both the prototype in 'struct amd_pm_funcs'

and pp_odn_edit_dpm_table() to 'enum PP_OD_DPM_TABLE_COMMAND', which

cleans up the warning.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00239 · 14.1th percentile
Published
2025-12-30T12:11Z
EPSS history
Timeline
  • 30 DEC 12:11Z
    drm/amdgpu: Fix type of second parameter in odn_edit_dpm_table() callback
    cvelistv5