On September 20, 2023 1:18:14 AM PDT, Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote: >On Wed, Sep 20 2023 at 04:33, Li, Xin3 wrote: >>> > +static inline void fred_syscall_init(void) { >>> > + /* >>> > + * Per FRED spec 5.0, FRED uses the ring 3 FRED entrypoint for SYSCALL >>> > + * and SYSENTER, and ERETU is the only legit instruction to return to >>> > + * ring 3, as a result there is _no_ need to setup the SYSCALL and >>> > + * SYSENTER MSRs. >>> > + * >>> > + * Note, both sysexit and sysret cause #UD when FRED is enabled. >>> > + */ >>> > + wrmsrl(MSR_LSTAR, 0ULL); >>> > + wrmsrl_cstar(0ULL); >>> >>> That write is pointless. See the comment in wrmsrl_cstar(). >> >> What I heard is that AMD is going to support FRED. >> >> Both LSTAR and CSTAR have no function when FRED is enabled, so maybe >> just do NOT write to them? > >Right. If AMD needs to clear it then it's trivial enough to add a >wrmsrl_cstar(0) to it. Just to clarify: the only reason I added the writes here was to possibly make bugs easier to track down. There is indeed no functional reason.