Re: [PATCH v8 05/13] KVM: guest_memfd: Add flag to remove from direct map

Nikita Kalyazin
2026-01-14T13:56:21Z

On 05/12/2025 17:30, Dave Hansen wrote:
> On 12/5/25 08:58, Kalyazin, Nikita wrote:
>> +static void kvm_gmem_folio_restore_direct_map(struct folio *folio)
>> +{
>> + /*
>> + * Direct map restoration cannot fail, as the only error condition
>> + * for direct map manipulation is failure to allocate page tables
>> + * when splitting huge pages, but this split would have already
>> + * happened in set_direct_map_invalid_noflush() in kvm_gmem_folio_zap_direct_map().
>> + * Thus set_direct_map_valid_noflush() here only updates prot bits.
>> + */
>> + if (kvm_gmem_folio_no_direct_map(folio))
>> + set_direct_map_valid_noflush(folio_page(folio, 0), folio_nr_pages(folio),
>> + true);
>> +}
>
> This is rather hopeful programming.
>
> I can think of a number of ways that this assumption might become invalid.
> This at *least* check for set_direct_map_valid_noflush() failures (or
> whatever interface you end up using)?
>
> A WARN_ON_ONCE() would be fine.

Done in v9, thanks.