Re: [PATCH v3] efi: Request desired alignment via the PE/COFF headers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jun 16, 2015 at 05:19:29PM +0100, Michael Brown wrote:
> On 15/06/15 22:43, Linn Crosetto wrote:
> >Michael Brown <mbrown@...> writes:
> >>The kernel will align itself to the nearest boundary specified by the
> >>kernel_alignment field in the bzImage header.  If the kernel is loaded
> >>to an address which is not sufficiently aligned, it will therefore use
> >>memory beyond that indicated solely by the init_size field.
> >>
> >>The PE/COFF headers now include a .bss section to describe the
> >>requirements of the init_size field, but do not currently expose the
> >>alignment requirement.  Consequently, a kernel loaded via the PE entry
> >>point may still end up overwriting unexpected areas of memory.
> >>
> >>Fix by exposing the desired alignment via the SectionAlignment field
> >>in the PE/COFF headers.  Despite its name, this field provides an
> >>overall alignment requirement for the loaded file.  (Naturally, the
> >>FileAlignment field describes the alignment for individual sections.)
> >>
> >>There is no way in the PE/COFF headers to express the concept of
> >>min_alignment; we therefore do not expose the minimum (as opposed to
> >>preferred) alignment.
> >
> ><snip>
> >
> >There may be a problem with this change. The specification says that the
> >SizeOfImage field must be a multiple of SectionAlignment. That was the case
> >when SectionAlignment was 0x20, but now that it is so large it would
> >require quite an increase in the last section to comply. A kernel I am
> >looking at now has:
> >
> >Alignment of sections:	0x1000000
> >Size of image:	0x105a000
> 
> Any suggested solution?

I have been reverting this patch as a workaround. The fields need to be changed,
but I am not that familiar with the code. Maybe there is a way to use a
heuristic to calculate the best values based on init_sz?
--
To unsubscribe from this list: send the line "unsubscribe linux-efi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux