On 25/10/2023 9:52 pm, Pawan Gupta wrote: > diff --git a/arch/x86/entry/entry.S b/arch/x86/entry/entry.S > index bfb7bcb362bc..f8ba0c0b6e60 100644 > --- a/arch/x86/entry/entry.S > +++ b/arch/x86/entry/entry.S > @@ -20,3 +23,16 @@ SYM_FUNC_END(entry_ibpb) > EXPORT_SYMBOL_GPL(entry_ibpb); > > .popsection > + > +.pushsection .entry.text, "ax" > + > +.align L1_CACHE_BYTES, 0xcc > +SYM_CODE_START_NOALIGN(mds_verw_sel) > + UNWIND_HINT_UNDEFINED > + ANNOTATE_NOENDBR > + .word __KERNEL_DS You need another .align here. Otherwise subsequent code will still start in this cacheline and defeat the purpose of trying to keep it separate. > +SYM_CODE_END(mds_verw_sel); Thinking about it, should this really be CODE and not a data entry? It lives in .entry.text but it really is data and objtool shouldn't be writing ORC data for it at all. (Not to mention that if it's marked as STT_OBJECT, objdump -d will do the sensible thing and not even try to disassemble it). ~Andrew P.S. Please CC on the full series. Far less effort than fishing the rest off lore.