Messages in this thread | | | Date | Fri, 6 Sep 2019 19:28:22 +0900 | From | Masami Hiramatsu <> | Subject | Re: [PATCH -tip v3 1/2] x86: xen: insn: Decode Xen and KVM emulate-prefix signature |
| |
On Fri, 6 Sep 2019 09:34:36 +0200 Peter Zijlstra <peterz@infradead.org> wrote:
> On Fri, Sep 06, 2019 at 10:45:48AM +0900, Masami Hiramatsu wrote: > > > diff --git a/arch/x86/include/asm/xen/interface.h b/arch/x86/include/asm/xen/interface.h > > index 62ca03ef5c65..fe33a9798708 100644 > > --- a/arch/x86/include/asm/xen/interface.h > > +++ b/arch/x86/include/asm/xen/interface.h > > @@ -379,12 +379,15 @@ struct xen_pmu_arch { > > * Prefix forces emulation of some non-trapping instructions. > > * Currently only CPUID. > > */ > > +#include <asm/xen/prefix.h> > > + > > #ifdef __ASSEMBLY__ > > -#define XEN_EMULATE_PREFIX .byte 0x0f,0x0b,0x78,0x65,0x6e ; > > +#define XEN_EMULATE_PREFIX .byte __XEN_EMULATE_PREFIX ; > > #define XEN_CPUID XEN_EMULATE_PREFIX cpuid > > #else > > -#define XEN_EMULATE_PREFIX ".byte 0x0f,0x0b,0x78,0x65,0x6e ; " > > +#define XEN_EMULATE_PREFIX ".byte " __XEN_EMULATE_PREFIX_STR " ; " > > #define XEN_CPUID XEN_EMULATE_PREFIX "cpuid" > > + > > #endif > > Possibly you can do something like: > > #define XEN_EMULATE_PREFIX __ASM_FORM(.byte __XEN_EMULATE_PREFIX ;) > #define XEN_CPUID XEN_EMULATE_PREFIX __ASM_FORM(cpuid)
Oops, this doesn't work, since __ASM_FORM(x) uses #x directly
# define __ASM_FORM(x) " " #x " "
which doesn't expand "x" if x is a macro. We have to use __stringify like
# include <linux/stringify.h> # define __ASM_FORM(x) " " __stringify(x) " "
So this needs aonther patch in the series :)
Thank you,
-- Masami Hiramatsu <mhiramat@kernel.org>
| |