Re: [PATCH] KVM: TDX: Replace kmalloc + copy_from_user with memdup_user in tdx_td_init

Thorsten Blum
2025-10-14T11:17:10Z

On 14. Oct 2025, at 00:15, Sean Christopherson wrote:
> On Tue, Sep 16, 2025, Thorsten Blum wrote:
>> Use get_user() to retrieve the number of entries instead of allocating
>> memory for 'init_vm' with the maximum size, copying 'cmd->data' to it,
>> only to then read the actual entry count 'cpuid.nent' from the copy.
>>
>> Return -E2BIG early if 'nr_user_entries' exceeds KVM_MAX_CPUID_ENTRIES.
>
> I think I'll drop this line from the changelog. At first glance I thought you
> were calling out a change in behavior, and my hackles went up. :-)
>
>> Use memdup_user() to allocate just enough memory to fit all entries and
>> to copy 'cmd->data' from userspace. Use struct_size() instead of
>> manually calculating the number of bytes to allocate and copy.
>>
>> No functional changes intended.
>>
>> Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
>> ---
>> [...]
>
> Any objection to calling this user_data instead of user_init_vm? I keep reading
> user_init_vm as a flag or command, e.g. "user initialized VM" or something, not
> as a pointer to user data.

No objection.

> No need for a v2, I'll fixup to whatever we settle on (assuming no one jumps in
> with a crazy idea).

Ok thanks!