Messages in this thread | ![/](/images/icornerl.gif) | | Date | Tue, 17 Mar 2015 12:36:58 +0100 | From | Quentin Casasnovas <> | Subject | Re: [PATCH RFC 0/2] x86/fpu: avoid "xstate_fault" in xsave_user/xrestore_user |
| |
On Tue, Mar 17, 2015 at 12:20:15PM +0100, Borislav Petkov wrote: > On Tue, Mar 17, 2015 at 11:00:46AM +0100, Quentin Casasnovas wrote: > > Fair point, but AFAIUI we can't do check_insn(XSAVES) alone as of today, > > and the "..." in your "check_isns(XSAVEOPT, ...)" code above would still > > need to contain the outputs operands. > > I think we can do this (see diff the end of this mail). >
Right, FWIW I think your approach is valid, but not very generic. Re-using the check_insn() and making it more generic so we can widen its use felt like a better approach to me.
AIUI, you didn't like my earlier draft because it wasn't very readable, but I think this was just due to the (bad) example I took and by reworking it a bit more, we could end up with the code you previously envisionned:
if (static_cpu_has_safe(X86_FEATURE_XSAVEOPT)) return check_insn(XSAVEOPT, xsave_buf, ...); else if (static_cpu_has_safe(X86_FEATURE_XSAVES) return check_insn(XSAVES, xsave_buf, ...); else return check_insn(XSAVE, xsave_buf, ...)
Or maybe you were saying the actual macros weren't readable?
> [...] > > But including the fault exception table in the macro is already an > improvement IMO.
Agreed, it already looks much nicer with your diff.
Quentin
| ![\](/images/icornerr.gif) |