- return (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
+ return ((vm_paddr_t)pte[index[0]].pfn * vm->page_size) + (gva & 0xfffu);
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.