[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87mvboqq2u.fsf@vitty.brq.redhat.com>
Date: Mon, 10 Apr 2017 16:45:13 +0200
From: Vitaly Kuznetsov <vkuznets@...hat.com>
To: Jork Loeser <Jork.Loeser@...rosoft.com>
Cc: "devel\@linuxdriverproject.org" <devel@...uxdriverproject.org>,
"x86\@kernel.org" <x86@...nel.org>,
"linux-kernel\@vger.kernel.org" <linux-kernel@...r.kernel.org>,
"KY Srinivasan" <kys@...rosoft.com>,
Haiyang Zhang <haiyangz@...rosoft.com>,
Stephen Hemminger <sthemmin@...rosoft.com>,
Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...hat.com>,
"H. Peter Anvin" <hpa@...or.com>,
Steven Rostedt <rostedt@...dmis.org>
Subject: Re: [PATCH 2/7] x86/hyper-v: fast hypercall implementation
Vitaly Kuznetsov <vkuznets@...hat.com> writes:
> Jork Loeser <Jork.Loeser@...rosoft.com> writes:
>
[snip]
>
>>> + }
>>> +#else
>>> + {
>>> + u32 hv_status_hi, hv_status_lo;
>>> +
>>> + __asm__ __volatile__ ("call *%6"
>>> + : "=d"(hv_status_hi),
>>> + "=a"(hv_status_lo) :
>>> + "d" (control.as_uint32_hi),
>>> + "a" (control.as_uint32_lo),
>>> + "c" ((u32)input1),
>>> + "b" ((u32)(input1 >> 32)),
>>> + "m" (hv_hypercall_pg)
>>> + : "cc");
>>> +
>>> + return hv_status_lo | ((u64)hv_status_hi << 32);
>>> + }
>>> +#endif
>> Please clobber ECX, EDI and ESI for x86. Clobber memory as well?
>
> ECX is already in listed in inputs (lower part of input1) so it's
> automatically clobbered. I'll add EDI and ESI to clobbers here, thanks!
Oh, I see what you mean - hypervisor is allowed to write to ecx too, we
need to pass it with '+'. Will do, thanks!
--
Vitaly
Powered by blists - more mailing lists