continue;
                }
 
-               if (md->num_pages << EFI_PAGE_SHIFT > IA64_GRANULE_SIZE)
+               if (efi_md_size(md) > IA64_GRANULE_SIZE)
                        panic("Woah!  PAL code size bigger than a granule!");
 
 #if EFI_DEBUG
 
                printk(KERN_INFO "CPU %d: mapping PAL code [0x%lx-0x%lx) into [0x%lx-0x%lx)\n",
                        smp_processor_id(), md->phys_addr,
-                       md->phys_addr + (md->num_pages << EFI_PAGE_SHIFT),
+                       md->phys_addr + efi_md_size(md),
                        vaddr & mask, (vaddr & mask) + IA64_GRANULE_SIZE);
 #endif
                return __va(md->phys_addr);
                        md = p;
                        printk("mem%02u: type=%u, attr=0x%lx, range=[0x%016lx-0x%016lx) (%luMB)\n",
                               i, md->type, md->attribute, md->phys_addr,
-                              md->phys_addr + (md->num_pages << EFI_PAGE_SHIFT),
+                              md->phys_addr + efi_md_size(md),
                               md->num_pages >> (20 - EFI_PAGE_SHIFT));
                }
        }
        for (p = efi_map_start; p < efi_map_end; p += efi_desc_size) {
                md = p;
 
-               if (phys_addr - md->phys_addr < (md->num_pages << EFI_PAGE_SHIFT))
+               if (phys_addr - md->phys_addr < efi_md_size(md))
                         return md;
        }
        return NULL;
 
                res->name = name;
                res->start = md->phys_addr;
-               res->end = md->phys_addr + (md->num_pages << EFI_PAGE_SHIFT) - 1;
+               res->end = md->phys_addr + efi_md_size(md) - 1;
                res->flags = flags;
 
                if (insert_resource(&iomem_resource, res) < 0)