>>> On 04.02.18 at 11:57, wrote:
> On Fri, 2018-01-12 at 18:00 +, Andrew Cooper wrote:
>> +#ifdef CONFIG_INDIRECT_THUNK
>> +/* callq __x86_indirect_thunk_rcx */
>> +ctxt->io_emul_stub[10] = 0xe8;
>> +*(int32_t *)&ctxt->io_emul_stub[11] =
>> +(unsigned long)__x86_indirect_th
On Fri, 2018-01-12 at 18:00 +, Andrew Cooper wrote:
> +#ifdef CONFIG_INDIRECT_THUNK
> + /* callq __x86_indirect_thunk_rcx */
> + ctxt->io_emul_stub[10] = 0xe8;
> + *(int32_t *)&ctxt->io_emul_stub[11] =
> + (unsigned long)__x86_indirect_thunk_rcx - (stub_va + 11 + 4);
> +
> +#els
>>> On 16.01.18 at 14:55, wrote:
> On 15/01/18 10:28, Jan Beulich wrote:
>>> ctxt->io_emul_stub[10] = 0xff;
>>> ctxt->io_emul_stub[11] = 0xd1;
>>>
>>> +/*
>>> + * 3 bytes of P6_NOPS.
>>> + * TODO: untangle ideal_nops from init/livepatch Kconfig options.
>>> + */
>>> +
On 15/01/18 10:28, Jan Beulich wrote:
>> ctxt->io_emul_stub[10] = 0xff;
>> ctxt->io_emul_stub[11] = 0xd1;
>>
>> +/*
>> + * 3 bytes of P6_NOPS.
>> + * TODO: untangle ideal_nops from init/livepatch Kconfig options.
>> + */
>> +memcpy(&ctxt->io_emul_stub[12], "\x0f\x1f\
>>> On 12.01.18 at 19:00, wrote:
> Introduce INDIRECT_CALL and INDIRECT_JMP which either degrade to a normal
> indirect branch, or dispatch to the __x86_indirect_thunk_* symbols.
>
> Update all the manual indirect branches in to use the new thunks. The
> indirect branches in the early boot and k
Introduce INDIRECT_CALL and INDIRECT_JMP which either degrade to a normal
indirect branch, or dispatch to the __x86_indirect_thunk_* symbols.
Update all the manual indirect branches in to use the new thunks. The
indirect branches in the early boot and kexec path are left intact as we can't
use th