On 01/06/2016 20:18, Suravee Suthikulpanit wrote:
>>>
>>> +    svm->avic_is_running = is_run;
> 
> Shouldn't we do this below --->
>>>
>>>       /* ID = 0xff (broadcast), ID > 0xff (reserved) */
>>> -    if (h_physical_id >= AVIC_MAX_PHYSICAL_ID_COUNT)
>>> -        return -EINVAL;
>>> +    if (WARN_ON(h_physical_id >= AVIC_MAX_PHYSICAL_ID_COUNT))
>>> +        return;
> 
> <--- HERE

It doesn't really matter because these physical APIC IDs are not
reachable anyway so they don't have the IS_RUNNING field.

The avic_is_running field is only used in avic_vcpu_load, and again only
when h_physical_id is in range.  I left the assignment before the
warning so that avic_vcpu_load does the right thing after a
(hypothetical) migration from an out-of-range physical CPU to an
in-range physical CPU.

Paolo

Reply via email to