summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Konovalov <andrey.konovalov@linaro.org>2015-06-26 18:29:16 +0300
committerAndrey Konovalov <andrey.konovalov@linaro.org>2015-06-26 18:29:16 +0300
commit27e2077258bf8f1203b526fa4a9e1d12775e8ff1 (patch)
tree8bc7be8873145a846e6ff536bf015956a480501b
parentbc397d9007cf10f1ae48bc1578f761d061c01ec3 (diff)
parent1aa3ceb9f88e0486f52a676ad72defbf07df8177 (diff)
Merge branch 'tracking-llct-misc-fixes' into merge-linux-linaro-core-trackingllct-20150626.0
-rw-r--r--Makefile2
-rw-r--r--drivers/of/fdt.c10
2 files changed, 10 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index f5c8983aeeb7..9bf45ee2b5cd 100644
--- a/Makefile
+++ b/Makefile
@@ -656,6 +656,7 @@ ifdef CONFIG_CC_STACKPROTECTOR_REGULAR
ifeq ($(call cc-option, $(stackp-flag)),)
$(warning Cannot use CONFIG_CC_STACKPROTECTOR_REGULAR: \
-fstack-protector not supported by compiler)
+ stackp-flag :=
endif
else
ifdef CONFIG_CC_STACKPROTECTOR_STRONG
@@ -663,6 +664,7 @@ ifdef CONFIG_CC_STACKPROTECTOR_STRONG
ifeq ($(call cc-option, $(stackp-flag)),)
$(warning Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: \
-fstack-protector-strong not supported by compiler)
+ stackp-flag :=
endif
else
# Force off for distro compilers that enable stack protector by default.
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index 64fea7c23450..9438dd05a0bd 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -28,6 +28,12 @@
#include <asm/setup.h> /* for COMMAND_LINE_SIZE */
#include <asm/page.h>
+#ifdef CONFIG_ARM64
+#define fdt_crc_size_hack(_s) min(fdt_totalsize(_s),(unsigned)0x200000)
+#else
+#define fdt_crc_size_hack(_s) fdt_totalsize(_s)
+#endif
+
/*
* of_fdt_limit_memory - limit the number of regions in the /memory node
* @limit: maximum entries
@@ -1066,7 +1072,7 @@ bool __init early_init_dt_verify(void *params)
/* Setup flat device-tree pointer */
initial_boot_params = params;
of_fdt_crc32 = crc32_be(~0, initial_boot_params,
- fdt_totalsize(initial_boot_params));
+ fdt_crc_size_hack(initial_boot_params));
return true;
}
@@ -1162,7 +1168,7 @@ static int __init of_fdt_raw_init(void)
return 0;
if (of_fdt_crc32 != crc32_be(~0, initial_boot_params,
- fdt_totalsize(initial_boot_params))) {
+ fdt_crc_size_hack(initial_boot_params))) {
pr_warn("fdt: not creating '/sys/firmware/fdt': CRC check failed\n");
return 0;
}