brcm2708: fix build error introduced in 2b4e5d47
[openwrt/openwrt.git] / target / linux / brcm2708 / patches-4.4 / 0050-fdt-Add-support-for-the-CONFIG_CMDLINE_EXTEND-option.patch
1 From e88c206c101194b8513860c135ee77366d7456eb Mon Sep 17 00:00:00 2001
2 From: Phil Elwell <phil@raspberrypi.org>
3 Date: Fri, 5 Dec 2014 17:26:26 +0000
4 Subject: [PATCH 050/304] fdt: Add support for the CONFIG_CMDLINE_EXTEND option
5
6 ---
7 drivers/of/fdt.c | 29 ++++++++++++++++++++++++-----
8 1 file changed, 24 insertions(+), 5 deletions(-)
9
10 --- a/drivers/of/fdt.c
11 +++ b/drivers/of/fdt.c
12 @@ -954,19 +954,38 @@ int __init early_init_dt_scan_chosen(uns
13
14 /* Retrieve command line */
15 p = of_get_flat_dt_prop(node, "bootargs", &l);
16 - if (p != NULL && l > 0)
17 - strlcpy(data, p, min((int)l, COMMAND_LINE_SIZE));
18
19 /*
20 * CONFIG_CMDLINE is meant to be a default in case nothing else
21 * managed to set the command line, unless CONFIG_CMDLINE_FORCE
22 * is set in which case we override whatever was found earlier.
23 + *
24 + * However, it can be useful to be able to treat the default as
25 + * a starting point to be extended using CONFIG_CMDLINE_EXTEND.
26 */
27 + ((char *)data)[0] = '\0';
28 +
29 #ifdef CONFIG_CMDLINE
30 -#ifndef CONFIG_CMDLINE_FORCE
31 - if (!((char *)data)[0])
32 + strlcpy(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
33 +
34 + if (p != NULL && l > 0) {
35 +#if defined(CONFIG_CMDLINE_EXTEND)
36 + int len = strlen(data);
37 + if (len > 0) {
38 + strlcat(data, " ", COMMAND_LINE_SIZE);
39 + len++;
40 + }
41 + strlcpy((char *)data + len, p, min((int)l, COMMAND_LINE_SIZE - len));
42 +#elif defined(CONFIG_CMDLINE_FORCE)
43 + pr_warning("Ignoring bootargs property (using the default kernel command line)\n");
44 +#else
45 + /* Neither extend nor force - just override */
46 + strlcpy(data, p, min((int)l, COMMAND_LINE_SIZE));
47 #endif
48 - strlcpy(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
49 + }
50 +#else /* CONFIG_CMDLINE */
51 + if (p != NULL && l > 0)
52 + strlcpy(data, p, min((int)l, COMMAND_LINE_SIZE));
53 #endif /* CONFIG_CMDLINE */
54
55 pr_debug("Command line is: %s\n", (char*)data);