Re: [PATCH 26/26] KVM: x86: asi: Add some mitigations on address space transitions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Brendan,

> .:: Minor issues
> 
> - fill_return_buffer() causes an “unreachable instruction” objtool
>  warning. I haven’t investigated this.

> +
> +.pushsection .noinstr.text, "ax"
> +SYM_CODE_START(fill_return_buffer)
> +	__FILL_RETURN_BUFFER(%_ASM_AX,RSB_CLEAR_LOOPS)
> +	RET
> +SYM_CODE_END(fill_return_buffer)
> +.popsection
> 

I'm getting this error when buiding the ASI patchset:

 OBJCOPY modules.builtin.modinfo
  GEN     modules.builtin
  GEN     .vmlinux.objs
  MODPOST Module.symvers
ERROR: modpost: "fill_return_buffer" [arch/x86/kvm/kvm.ko] undefined!
make[2]: *** [scripts/Makefile.modpost:145: Module.symvers] Error 1
make[1]: *** [/home/shivank/linux/Makefile:1871: modpost] Error 2
make: *** [Makefile:240: __sub-make] Error 2

I'm wondering if we need to annotate the asm code with 
UNWIND_HINT_FUNC and EXPORT the fill_return_buffer and to avoid this?

---
diff --git a/arch/x86/lib/retpoline.S b/arch/x86/lib/retpoline.S
index db5b8ee01efe..4084ab49e2a7 100644
--- a/arch/x86/lib/retpoline.S
+++ b/arch/x86/lib/retpoline.S
@@ -399,7 +399,9 @@ EXPORT_SYMBOL(__x86_return_thunk)

 .pushsection .noinstr.text, "ax"
 SYM_CODE_START(fill_return_buffer)
+       UNWIND_HINT_FUNC
        __FILL_RETURN_BUFFER(%_ASM_AX,RSB_CLEAR_LOOPS)
        RET
 SYM_CODE_END(fill_return_buffer)
+__EXPORT_THUNK(fill_return_buffer)
 .popsection
---

This solved the issue for me.

Thanks,
Shivank





[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux