mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
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> |
||
|---|---|---|
| .. | ||
| asic_reg | ||
| ivsrcid | ||
| aldebaran_ip_offset.h | ||
| amd_acpi.h | ||
| amd_pcie.h | ||
| amd_pcie_helpers.h | ||
| amd_shared.h | ||
| arct_ip_offset.h | ||
| atom-bits.h | ||
| atom-names.h | ||
| atom-types.h | ||
| atombios.h | ||
| atomfirmware.h | ||
| atomfirmwareid.h | ||
| beige_goby_ip_offset.h | ||
| cgs_common.h | ||
| cik_structs.h | ||
| cyan_skillfish_ip_offset.h | ||
| dimgrey_cavefish_ip_offset.h | ||
| discovery.h | ||
| displayobject.h | ||
| dm_pp_interface.h | ||
| kgd_kfd_interface.h | ||
| kgd_pp_interface.h | ||
| mes_api_def.h | ||
| mes_v11_api_def.h | ||
| navi10_enum.h | ||
| navi10_ip_offset.h | ||
| navi12_ip_offset.h | ||
| navi14_ip_offset.h | ||
| pptable.h | ||
| renoir_ip_offset.h | ||
| sienna_cichlid_ip_offset.h | ||
| soc15_hw_ip.h | ||
| soc15_ih_clientid.h | ||
| soc21_enum.h | ||
| v9_structs.h | ||
| v10_structs.h | ||
| v11_structs.h | ||
| vangogh_ip_offset.h | ||
| vega10_enum.h | ||
| vega10_ip_offset.h | ||
| vega20_ip_offset.h | ||
| vi_structs.h | ||
| yellow_carp_offset.h | ||