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