On 12/20/2016 08:37 AM, Jan Beulich wrote:
>>>> On 17.12.16 at 00:18, <boris.ostrov...@oracle.com> wrote:
>> @@ -128,6 +130,13 @@ static int acpi_access_common(struct domain *d, bool 
>> is_guest_access,
>>              *en = (((v & 0xff) << 8) | (*en & 0xff)) & *mask_en;
>>              break;
>>          }
>> +
>> +        /*
>> +         * If a new bit has been set in status register and corresponding
>> +         * event is enabled then an SCI is sent to the guest.
>> +         */
>> +        if ( !is_guest_access && ((*sts & ~sts_orig) & *en) )
>> +                send_guest_global_virq(d, VIRQ_SCI);
> From an abstract pov: How a bit gets set in either register shouldn't
> matter. Hence the !is_guest_access part here is at least questionable.
> However, iirc the guest can't itself set any status bits (since they're
> write-1-clear). Otoh, when an enable bit transitions from 0 to 1 (which
> the guest can effect) and the respective status bit is set, an SCI
> should occur according to my reading of the spec.

I haven't considered the case of enabling with a pending status. Yes,
that should trigger an SCI too, irrespective of is_guest_access.

And I guess since guests can't set status bits I can drop the
is_guest_access test in the check above too.

-boris


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

Reply via email to