]> git.baikalelectronics.ru Git - kernel.git/commit
drm/amdkfd: Fix type of reset_type parameter in hqd_destroy() callback
authorNathan Chancellor <nathan@kernel.org>
Mon, 17 Oct 2022 16:28:38 +0000 (09:28 -0700)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 19 Oct 2022 02:13:12 +0000 (22:13 -0400)
commit763755377837cf74a091fc53febf9ed7fa40970b
tree776385ef31da007e32d1df74ed0bbae98905b4b6
parentf3e35fe78ec42627087bfe4746b834d8da52db3d
drm/amdkfd: Fix type of reset_type parameter in hqd_destroy() callback

When booting a kernel compiled with CONFIG_CFI_CLANG on a machine with
an RX 6700 XT, there is a CFI failure in kfd_destroy_mqd_cp():

  [   12.894543] CFI failure at kfd_destroy_mqd_cp+0x2a/0x40 [amdgpu] (target: hqd_destroy_v10_3+0x0/0x260 [amdgpu]; expected type: 0x8594d794)

Clang's kernel Control Flow Integrity (kCFI) makes sure that all
indirect call targets have a type that exactly matches the function
pointer prototype. In this case, hqd_destroy()'s third parameter,
reset_type, should have a type of 'uint32_t' but every implementation of
this callback has a third parameter type of 'enum kfd_preempt_type'.

Update the function pointer prototype to match reality so that there is
no more CFI violation.

Link: https://github.com/ClangBuiltLinux/linux/issues/1738
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/include/kgd_kfd_interface.h