If this is a problem in practice, we'd be better off having a helper
function to do it, to avoid overflows. Right now, doing
overflows at 4GB on x86-32. And maybe you never have areas that big, and
people are moving over to 64-bit anyway, it still sounds like a bug
waiting to happen.
So *if* we care (I doubt we do, since EFI_PAGE_SHIFT at least right now
matches PAGE_SHIFT on x86), you'd probably want to do something like
static inline unsigned long efi_pages_to_native_pages(unsigned long efi_pages)
{
#if EFI_PAGE_SHIFT > PAGE_SHIFT
return efi_pages << (EFI_PAGE_SHIFT - PAGE_SHIFT);
#else
return efi_pages >> (PAGE_SHIFT - EFI_PAGE_SHIFT);
#endif
}
or whatever.
Otherwise, trying to avoid a bug with different page sizes is actually
more likely to *introduce* one rather than fix one..
Linus
--