From: Heinrich Schuchardt Date: Tue, 18 Dec 2018 17:06:14 +0000 (+0100) Subject: lib: crc32: mark static variable as __efi_runtime_data X-Git-Tag: v2019.01-rc3~14^2~1 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=5bdb0a7cad05df35cd87ebce683eda032a8abc87;p=oweals%2Fu-boot.git lib: crc32: mark static variable as __efi_runtime_data In commit 483dbab9f931 ("lib: crc32: mark function crc32() as __efi_runtime") one local static variable was missed. It did not end up in the __efi_runtime_data section as it should. If CONFIG_DYNAMIC_CRC_TABLE=y a data abort execption may occur when the UEFI payload calls the SetVirtualAddressMap() runtime service. Reported-by: Dominik Adamski Fixes: 483dbab9f931 ("lib: crc32: mark function crc32() as __efi_runtime") Signed-off-by: Heinrich Schuchardt Signed-off-by: Alexander Graf --- diff --git a/lib/crc32.c b/lib/crc32.c index 71e27df78e..eee21f8d73 100644 --- a/lib/crc32.c +++ b/lib/crc32.c @@ -65,7 +65,8 @@ static void __efi_runtime make_crc_table(void) int n, k; uLong poly; /* polynomial exclusive-or pattern */ /* terms of polynomial defining this crc (except x^32): */ - static const Byte p[] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26}; + static Byte __efi_runtime_data p[] = { + 0, 1, 2, 4, 5, 7, 8, 10, 11, 12, 16, 22, 23, 26}; /* make exclusive-or pattern from polynomial (0xedb88320L) */ poly = 0L;