Re: [PATCH] kvm: selftests: Fix cut-off of addr_gva2gpa lookup

From: Paolo Bonzini
Date: Thu Apr 14 2022 - 11:45:19 EST


On 4/14/22 15:56, Sean Christopherson wrote:
- return (pte[index[0]].pfn * vm->page_size) + (gva & 0xfffu);
+ return ((vm_paddr_t)pte[index[0]].pfn * vm->page_size) + (gva & 0xfffu);
This is but one of many paths that can get burned by pfn being 40 bits. The
most backport friendly fix is probably to add a pfn=>gpa helper and use that to
place the myriad "pfn * vm->page_size" instances.

For a true long term solution, my vote is to do away with the bit field struct
and use #define'd masks and whatnot.

Yes, bitfields larger than 32 bits are a mess.

Paolo