Re: [PATCH V5 2/6] Add shared update_fdt() function for ARM/ARM64

From: Mark Salter
Date: Mon Dec 02 2013 - 09:57:10 EST


On Fri, 2013-11-29 at 11:30 +0000, Matt Fleming wrote:
> > /*
> > * Add an additional efi_memory_desc_t because we're doing an
> > * allocation which may be in a new descriptor region.
> > + * We allocate as EFI_RUNTIME_SERVICES_DATA since this is what
> > + * we want for when we pass the memory map to the kernel. This
> > + * function is also used to get the memory map for other uses,
> > + * but is always freed by the stub so the allocation type
> > + * doesn't matter.
> > */
> > *map_size += sizeof(*m);
> > status = efi_call_phys3(sys_table_arg->boottime->allocate_pool,
> > - EFI_LOADER_DATA, *map_size, (void **)&m);
> > + EFI_RUNTIME_SERVICES_DATA, *map_size,
> > + (void **)&m);
> > if (status != EFI_SUCCESS)
> > goto fail;
>
>
> OK, this needs a stronger justification. Presumably the reason for this
> change is that you want the allocation to hang around once the kernel is
> running? We have this problem on x86 and it's solved by reserving the
> memory early in the kernel, e.g. memblock_reserve().
> EFI_RUNTIME_SERVICES_DATA is for firmware use, not for kernel data.
>

Yeah, arm64 reserves it and is okay with it being EFI_LOADER_DATA.

--Mark


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/