|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 09/11] gnttab: avoid spurious maptrack handle allocation failures
>>> On 21.06.17 at 14:02, <andrew.cooper3@xxxxxxxxxx> wrote:
> On 21/06/17 10:37, Jan Beulich wrote:
>> --- a/xen/common/grant_table.c
>> +++ b/xen/common/grant_table.c
>> @@ -397,7 +397,7 @@ get_maptrack_handle(
>> struct vcpu *curr = current;
>> unsigned int i, head;
>> grant_handle_t handle;
>> - struct grant_mapping *new_mt;
>> + struct grant_mapping *new_mt = NULL;
>>
>> handle = __get_maptrack_handle(lgt, curr);
>> if ( likely(handle != -1) )
>> @@ -408,8 +408,13 @@ get_maptrack_handle(
>> /*
>> * If we've run out of frames, try stealing an entry from another
>> * VCPU (in case the guest isn't mapping across its VCPUs evenly).
>> + * Also use this path in case we're out of memory, to avoid spurious
>> + * failures.
>> */
>> - if ( nr_maptrack_frames(lgt) >= max_maptrack_frames )
>> + if ( nr_maptrack_frames(lgt) < max_maptrack_frames )
>> + new_mt = alloc_xenheap_page();
>> +
>> + if ( !new_mt )
>> {
>> /*
>> * Can drop the lock since no other VCPU can be adding a new
>
> * frame once they've run out.
> */
>
> It doesn't look like this comment is true any more, which brings the
> locking correctness into question.
Oh, indeed. I'll need to revive the locking change I had done here
and then dropped because we did realize we didn't need it for
XSA-218.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |