On Wed, Oct 09, 2024 at 08:11:02AM +0200, Borislav Petkov wrote: > On Tue, Oct 08, 2024 at 10:45:36PM -0000, tip-bot2 for Pawan Gupta wrote: > > .macro CLEAR_CPU_BUFFERS > > - ALTERNATIVE "", __stringify(verw _ASM_RIP(mds_verw_sel)), X86_FEATURE_CLEAR_CPU_BUF > > +#ifdef CONFIG_X86_64 > > + ALTERNATIVE "", "verw mds_verw_sel(%rip)", X86_FEATURE_CLEAR_CPU_BUF > > +#else > > + /* > > + * In 32bit mode, the memory operand must be a %cs reference. The data > > + * segments may not be usable (vm86 mode), and the stack segment may not > > + * be flat (ESPFIX32). > > + */ > > + ALTERNATIVE "", "verw %cs:mds_verw_sel", X86_FEATURE_CLEAR_CPU_BUF > > +#endif > > So why didn't we ifdef the "verw mds_verw_sel(%rip)" and "verw > %cs:mds_verw_sel" macro argument instead of adding more bigger ugly ifdeffery? You need ifdeffery either way around, either directly like this or for that macro. This is simple and straight forward.