On 09/12/2019 16:19, Jan Beulich wrote:
> On 05.12.2019 23:30, Andrew Cooper wrote:
>> --- a/xen/arch/x86/domctl.c
>> +++ b/xen/arch/x86/domctl.c
>> @@ -326,9 +326,12 @@ long arch_do_domctl(
>>  
>>      switch ( domctl->cmd )
>>      {
>> -
>>      case XEN_DOMCTL_shadow_op:
>>          ret = paging_domctl(d, &domctl->u.shadow_op, u_domctl, 0);
>> +        /*
>> +         * Continuations from paging_domctl() switch index to arch_1, and
>> +         * can't use the common domctl continuation path.
>> +         */
>>          if ( ret == -ERESTART )
>>              return hypercall_create_continuation(__HYPERVISOR_arch_1,
>>                                                   "h", u_domctl);
> There's also XEN_DOMCTL_getpageframeinfo3 down from here which
> now invokes a continuation.

Fixed.

>
>> @@ -1080,6 +1068,9 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) 
>> u_domctl)
>>      if ( copyback && __copy_to_guest(u_domctl, op, 1) )
>>          ret = -EFAULT;
>>  
>> +    if ( ret == -ERESTART )
>> +        ret = hypercall_create_continuation(__HYPERVISOR_domctl,
>> +                                            "h", u_domctl);
> You may want to mention in the description the bug you fix here:
> Previously the -EFAULT returning visible in context should have
> canceled any active continuation.

That would be presuming I'd even spotted it...

Having looked though the paths once again, I don't think there was a
path which continued and had copyback set, so this is at most a latent bug.

~Andrew

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to