On Tue, Nov 11, 2025 at 04:28:27PM +0530, Naman Jain wrote:
> 
> 
> On 11/11/2025 1:43 PM, Peter Zijlstra wrote:
> > On Tue, Nov 11, 2025 at 12:25:54PM +0530, Naman Jain wrote:
> > 
> > > This would have been the cleanest approach. We discussed this before and
> > > unfortunately it didn't work. Please find the link to this discussion:
> > > 
> > > https://lore.kernel.org/all/[email protected]/
> > > 
> > > To summarize above discussion, I see below compilation error with this 
> > > from
> > > objtool. You may have CONFIG_X86_KERNEL_IBT enabled in your workspace, 
> > > which
> > > would have masked this.
> > 
> > IBT isn't the problem, the thing is running objtool on vmlinux.o vs the
> > individual translation units. vmlinux.o will have that symbol, while
> > your .S file doesn't.
> > 
> > >    AS      arch/x86/hyperv/mshv_vtl_asm.o
> > > arch/x86/hyperv/mshv_vtl_asm.o: error: objtool: static_call: can't find
> > > static_call_key symbol: __SCK____mshv_vtl_return_hypercall
> > 
> > Right, and I said you had to do that ADDRESSABLE thing. So I added a
> > DECLARE_STATIC_CALL() and a static_call() in hv.c, compiled it so .s and
> > stole the bits.
> > 
> > And then you get something like the below. See symbol 5, that's the
> > entry we need.
> > 
> > # readelf -sW defconfig-build/arch/x86/hyperv/mshv_vtl_asm.o
> > 
> > Symbol table '.symtab' contains 8 entries:
> >     Num:    Value          Size Type    Bind   Vis      Ndx Name
> >       0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND
> >       1: 0000000000000000     8 OBJECT  LOCAL  DEFAULT    6 
> > __UNIQUE_ID_addressable___SCK____mshv_vtl_return_hypercall_662.0
> >       2: 0000000000000000     0 SECTION LOCAL  DEFAULT    4 .noinstr.text
> >       3: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND 
> > __SCT____mshv_vtl_return_hypercall
> >       4: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND 
> > __x86_return_thunk
> >       5: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND 
> > __SCK____mshv_vtl_return_hypercall
> >       6: 0000000000000010   179 FUNC    GLOBAL DEFAULT    4 
> > __mshv_vtl_return_call
> >       7: 0000000000000000    16 FUNC    GLOBAL DEFAULT    4 
> > __pfx___mshv_vtl_return_call
> > 
> > 
> > ---
> 
> 
> Thanks a lot for sharing the changes. I tested this and it works fine. I can
> create a separate patch for the include/linux/* changes and add it as the
> first patch in the next version of my patch series.
> 
> Please let me know if this is fine and if I can add your Signed-off-by in
> that patch.

Sure, have at. Thanks!

Reply via email to