diff options
| author | Paolo Bonzini <[email protected]> | 2025-05-26 20:31:13 +0000 |
|---|---|---|
| committer | Paolo Bonzini <[email protected]> | 2025-05-26 20:45:07 +0000 |
| commit | e9f17038d814c0185e017a3fa62305a12d52f45c (patch) | |
| tree | 6389c5dfcc4269dbec4b3f4da326c08f5568a505 /rust/helpers/helpers.c | |
| parent | Merge tag 'kvm-riscv-6.16-1' of https://github.com/kvm-riscv/linux into HEAD (diff) | |
| download | kernel-e9f17038d814c0185e017a3fa62305a12d52f45c.tar.gz kernel-e9f17038d814c0185e017a3fa62305a12d52f45c.zip | |
x86/tdx: mark tdh_vp_enter() as __flatten
In some cases tdx_tdvpr_pa() is not fully inlined into tdh_vp_enter(), which
causes the following warning:
vmlinux.o: warning: objtool: tdh_vp_enter+0x8: call to tdx_tdvpr_pa() leaves .noinstr.text section
This happens if the compiler considers tdx_tdvpr_pa() to be "large", for example
because CONFIG_SPARSEMEM adds two function calls to page_to_section() and
__section_mem_map_addr():
({ const struct page *__pg = (pg); \
int __sec = page_to_section(__pg); \
(unsigned long)(__pg - __section_mem_map_addr(__nr_to_section(__sec)));
\
})
Because exiting the noinstr section is a no-no, just mark tdh_vp_enter() for
full inlining.
Reported-by: kernel test robot <[email protected]>
Analyzed-by: Xiaoyao Li <[email protected]>
Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
Signed-off-by: Paolo Bonzini <[email protected]>
Diffstat (limited to 'rust/helpers/helpers.c')
0 files changed, 0 insertions, 0 deletions
