From: Jonas Gorski Date: Thu, 28 Jul 2016 16:08:35 +0000 (+0200) Subject: ipq806x: fix boot hang if cmdline contains words with r in the middle X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=532eb5f58109f310d6705d142422d8b2820bf654;p=openwrt%2Fstaging%2Fyousong.git ipq806x: fix boot hang if cmdline contains words with r in the middle The ATB DTB mangle code will enter an infinite loop if it encounters a word in the command line that contains an r in the middle of the word. Fix this by increasing ptr everytime before invoking strchr, ot avoid finding the same r again. This fixes booting at least on Netgear R7500v1, which contains "ubi.mtd=rootfs" in its commandline, triggering the misbehaviour. Fixes: 0ddcbee26151 ("ipq806x: activate ATAG DTB mangle and EA8500 rootblock in dts") Signed-off-by: Jonas Gorski --- diff --git a/target/linux/ipq806x/patches-4.4/996-ATAG_DTB_COMPAT_CMDLINE_MANGLE.patch b/target/linux/ipq806x/patches-4.4/996-ATAG_DTB_COMPAT_CMDLINE_MANGLE.patch index 8d5cbf9102..be15ec4772 100644 --- a/target/linux/ipq806x/patches-4.4/996-ATAG_DTB_COMPAT_CMDLINE_MANGLE.patch +++ b/target/linux/ipq806x/patches-4.4/996-ATAG_DTB_COMPAT_CMDLINE_MANGLE.patch @@ -64,9 +64,9 @@ Signed-off-by: Adrian Panella + ptr = str - 1; + + do { -+ ptr++; + //first find an 'r' at the begining or after a space + do { ++ ptr++; + ptr = strchr(ptr, 'r'); + if(!ptr) return dest; +