On Wed, Mar 11, 2020 at 02:01:07PM +0100, Pavel Machek wrote: > Hi! > > > Currently, the mixed mode runtime service wrappers require that all by-ref > > arguments that live in the vmalloc space have a size that is a power of 2, > > and are aligned to that same value. While this is a sensible way to > > construct an object that is guaranteed not to cross a page boundary, it is > > overly strict when it comes to checking whether a given object violates > > this requirement, as we can simply take the physical address of the first > > and the last byte, and verify that they point into the same physical > > page. > > Dunno. If start passing buffers that _sometime_ cross page boundaries, > we'll get hard to debug failures. Maybe original code is better > buecause it catches problems earlier? > > Furthermore, all existing code should pass aligned, 2^n size buffers, > so we should not need this in stable? For some crazy reason you cut out the reason I applied this patch to the stable tree. From the changelog text: Fixes: f6697df36bdf0bf7 ("x86/efi: Prevent mixed mode boot corruption with CONFIG_VMAP_STACK=y")