On 04/02/2022 12:54 pm, Jan Beulich wrote:
> On 03.02.2022 14:38, Andrew Cooper wrote:
>> --- a/xen/arch/x86/domain.c
>> +++ b/xen/arch/x86/domain.c
>> @@ -1693,11 +1693,8 @@ static void load_segments(struct vcpu *n)
>> put_guest(uregs->fs, esp - 5) |
>> put_guest(uregs->es, esp - 6) |
>> put_guest(uregs->ds, esp - 7) )
>> - {
>> - gprintk(XENLOG_ERR,
>> - "error while creating compat failsafe
>> callback frame\n");
>> - domain_crash(n->domain);
>> - }
>> + domain_crash(n->domain,
>> + "Error creating compat failsafe
>> callback frame\n");
>>
>> if ( n->arch.pv.vgc_flags & VGCF_failsafe_disables_events )
>> vcpu_info(n, evtchn_upcall_mask) = 1;
>> @@ -1732,11 +1729,8 @@ static void load_segments(struct vcpu *n)
>> put_guest(uregs->ds, rsp - 9) |
>> put_guest(regs->r11, rsp - 10) |
>> put_guest(regs->rcx, rsp - 11) )
>> - {
>> - gprintk(XENLOG_ERR,
>> - "error while creating failsafe callback frame\n");
>> - domain_crash(n->domain);
>> - }
>> + domain_crash(n->domain,
>> + "Error creating failsafe callback frame\n");
>
> I assume it wasn't really intended to hide potentially relevant
> information
> (the subject vCPU) by this change, which - by way of gprintk() - did get
> logged before (since we already have n == current at this point)?
The information is not lost. __domain_crash() prints current too,
albeit in a long-winded way.
~Andrew