> > +static void __init efi_memmap_free(struct efi_memory_map new_memmap)
> > +{
> > + phys_addr_t start, end;
> > + unsigned long size = new_memmap.nr_map * new_memmap.desc_size;
> > + unsigned int order = get_order(size);
> > +
> > + start = new_memmap.phys_map;
> > + end = start + size;
> > + if (new_memmap.late) {
> > + __free_pages(pfn_to_page(PHYS_PFN(start)), order);
> > + return;
> > + }
> > +
> > + if (memblock_free(start, size))
> > + pr_err("Failed to free mem from %pa to %pa\n", &start, &end);
>
> Why is this rather large structure passed in by value and not by reference?
My bad.. I will change it to pass by reference.
> Also, 'new_memmap' naming is confusing - by this time this is a rather old
> memmap table we are going to free, right? So naming it 'memmap' would be
> fine, right?
Yes, that should be fine. I will change it.
Regards,
Sai