[PATCH v2 2/3] efi/libstub: add random.c to ARM build

Arnd Bergmann arnd at arndb.de
Tue Nov 15 07:11:03 PST 2016


On Wednesday, November 2, 2016 9:37:13 AM CET Ard Biesheuvel wrote:
> @@ -98,7 +100,7 @@
>                 efi_memory_desc_t *md = (void *)memory_map + map_offset;
>                 unsigned long slots;
> 
> -               slots = get_entry_num_slots(md, size, align);
> +               slots = get_entry_num_slots(md, size, ilog2(align));
>                 MD_NUM_SLOTS(md) = slots;
>                 total_slots += slots;
>         }
> """
> 
> This is because ARM does not have a division routine in the
> decompressor, and the fact that the division by 'align' should always
> involve a power of 2 is not visible to the compiler.
> 
> If nobody objects, I will fold this in when applying
> 
> 

I'm getting a link error here when building with -Os:

drivers/firmware/efi/libstub/random.stub.o: In function `efi_random_alloc':
random.c:(.text.efi_random_alloc+0x264): undefined reference to `__aeabi_llsr'

If I compile this with -O2, the ilog2 gets inlined and everything
works.

	Arnd



More information about the linux-arm-kernel mailing list