summaryrefslogtreecommitdiff
path: root/target/linux/generic/patches-4.9/121-of-Add-check-to-of_scan_flat_dt-before-accessing-ini.patch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2017-01-27 14:32:10 +0100
committerFelix Fietkau <nbd@nbd.name>2017-02-04 20:28:14 +0100
commitf791fb4af45032a653ba7c850f4564923871cb16 (patch)
treec1fc4e564c8e27faad582e5b55a9ce91816a241c /target/linux/generic/patches-4.9/121-of-Add-check-to-of_scan_flat_dt-before-accessing-ini.patch
parent7d00cfe9bb693e376ac9d035e13f8ce8a5ff572c (diff)
downloadmtk-20170518-f791fb4af45032a653ba7c850f4564923871cb16.zip
mtk-20170518-f791fb4af45032a653ba7c850f4564923871cb16.tar.gz
mtk-20170518-f791fb4af45032a653ba7c850f4564923871cb16.tar.bz2
kernel: add linux 4.9 support
Signed-off-by: Felix Fietkau <nbd@nbd.name> Signed-off-by: Tim Harvey <tharvey@gateworks.com> [fixes]
Diffstat (limited to 'target/linux/generic/patches-4.9/121-of-Add-check-to-of_scan_flat_dt-before-accessing-ini.patch')
-rw-r--r--target/linux/generic/patches-4.9/121-of-Add-check-to-of_scan_flat_dt-before-accessing-ini.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/target/linux/generic/patches-4.9/121-of-Add-check-to-of_scan_flat_dt-before-accessing-ini.patch b/target/linux/generic/patches-4.9/121-of-Add-check-to-of_scan_flat_dt-before-accessing-ini.patch
new file mode 100644
index 0000000..f939f07
--- /dev/null
+++ b/target/linux/generic/patches-4.9/121-of-Add-check-to-of_scan_flat_dt-before-accessing-ini.patch
@@ -0,0 +1,30 @@
+From: Tobias Wolf <dev-NTEO@vplace.de>
+Date: Wed, 23 Nov 2016 10:40:07 +0100
+Subject: [PATCH] of: Add check to of_scan_flat_dt() before accessing
+ initial_boot_params
+
+An empty __dtb_start to __dtb_end section might result in initial_boot_params
+being null for arch/mips/ralink. This showed that the boot process hangs
+indefinitely in of_scan_flat_dt().
+
+Signed-off-by: Tobias Wolf <dev-NTEO@vplace.de>
+---
+
+--- a/drivers/of/fdt.c
++++ b/drivers/of/fdt.c
+@@ -738,9 +738,12 @@ int __init of_scan_flat_dt(int (*it)(uns
+ const char *pathp;
+ int offset, rc = 0, depth = -1;
+
+- for (offset = fdt_next_node(blob, -1, &depth);
+- offset >= 0 && depth >= 0 && !rc;
+- offset = fdt_next_node(blob, offset, &depth)) {
++ if (!blob)
++ return 0;
++
++ for (offset = fdt_next_node(blob, -1, &depth);
++ offset >= 0 && depth >= 0 && !rc;
++ offset = fdt_next_node(blob, offset, &depth)) {
+
+ pathp = fdt_get_name(blob, offset, NULL);
+ if (*pathp == '/')