On Wed, 4 Mar 2020 at 00:35, Arvind Sankar <nivedita@xxxxxxxxxxxx> wrote: > > On Wed, Mar 04, 2020 at 12:08:33AM +0100, Ard Biesheuvel wrote: > > On Tue, 3 Mar 2020 at 23:12, Arvind Sankar <nivedita@xxxxxxxxxxxx> wrote: > > > > > > Add alignment slack to the PE image size, so that we can realign the > > > decompression buffer within the space allocated for the image. > > > > > > Only relocate the kernel if it has been loaded at an unsuitable address: > > > * Below LOAD_PHYSICAL_ADDR, or > > > * Above 64T for 64-bit and 512MiB for 32-bit > > > > > > For 32-bit, the upper limit is conservative, but the exact limit can be > > > difficult to calculate. > > > > > > > Could we get rid of the call to efi_low_alloc_above() in > > efi_relocate_kernel(), and just allocate top down with the right > > alignment? I'd like to get rid of efi_low_alloc() et al if we can. > > > > But we don't have a top-down allocator, do we? ALLOCATE_MAX_ADDRESS > guarantees the maximum, but it doesn't guarantee that you'll be as high > as possible. Good point. We do have a top-down allocator in practice, but it is not guaranteed by the API.