aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/of
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2014-10-02 14:25:43 -0400
committerDavid S. Miller <davem@davemloft.net>2014-10-02 14:25:43 -0400
commit739e4a758e0e2930f4bcdddd244254bae8dd7499 (patch)
tree0179d038669ad55591ae05a90b210d7090edf56e /drivers/of
parentd068b02cfdfc27f5962ec82ec5568b706f599edc (diff)
parent50dddff3cb9af328dd42bafe3437c7f47e8b38a9 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts: drivers/net/usb/r8152.c net/netfilter/nfnetlink.c Both r8152 and nfnetlink conflicts were simple overlapping changes. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/of')
-rw-r--r--drivers/of/base.c16
-rw-r--r--drivers/of/dynamic.c3
-rw-r--r--drivers/of/fdt.c14
3 files changed, 26 insertions, 7 deletions
diff --git a/drivers/of/base.c b/drivers/of/base.c
index d8574adf0d62..293ed4b687ba 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -138,6 +138,9 @@ int __of_add_property_sysfs(struct device_node *np, struct property *pp)
138 /* Important: Don't leak passwords */ 138 /* Important: Don't leak passwords */
139 bool secure = strncmp(pp->name, "security-", 9) == 0; 139 bool secure = strncmp(pp->name, "security-", 9) == 0;
140 140
141 if (!IS_ENABLED(CONFIG_SYSFS))
142 return 0;
143
141 if (!of_kset || !of_node_is_attached(np)) 144 if (!of_kset || !of_node_is_attached(np))
142 return 0; 145 return 0;
143 146
@@ -158,6 +161,9 @@ int __of_attach_node_sysfs(struct device_node *np)
158 struct property *pp; 161 struct property *pp;
159 int rc; 162 int rc;
160 163
164 if (!IS_ENABLED(CONFIG_SYSFS))
165 return 0;
166
161 if (!of_kset) 167 if (!of_kset)
162 return 0; 168 return 0;
163 169
@@ -1713,6 +1719,9 @@ int __of_remove_property(struct device_node *np, struct property *prop)
1713 1719
1714void __of_remove_property_sysfs(struct device_node *np, struct property *prop) 1720void __of_remove_property_sysfs(struct device_node *np, struct property *prop)
1715{ 1721{
1722 if (!IS_ENABLED(CONFIG_SYSFS))
1723 return;
1724
1716 /* at early boot, bail here and defer setup to of_init() */ 1725 /* at early boot, bail here and defer setup to of_init() */
1717 if (of_kset && of_node_is_attached(np)) 1726 if (of_kset && of_node_is_attached(np))
1718 sysfs_remove_bin_file(&np->kobj, &prop->attr); 1727 sysfs_remove_bin_file(&np->kobj, &prop->attr);
@@ -1777,6 +1786,9 @@ int __of_update_property(struct device_node *np, struct property *newprop,
1777void __of_update_property_sysfs(struct device_node *np, struct property *newprop, 1786void __of_update_property_sysfs(struct device_node *np, struct property *newprop,
1778 struct property *oldprop) 1787 struct property *oldprop)
1779{ 1788{
1789 if (!IS_ENABLED(CONFIG_SYSFS))
1790 return;
1791
1780 /* At early boot, bail out and defer setup to of_init() */ 1792 /* At early boot, bail out and defer setup to of_init() */
1781 if (!of_kset) 1793 if (!of_kset)
1782 return; 1794 return;
@@ -1847,6 +1859,7 @@ void of_alias_scan(void * (*dt_alloc)(u64 size, u64 align))
1847{ 1859{
1848 struct property *pp; 1860 struct property *pp;
1849 1861
1862 of_aliases = of_find_node_by_path("/aliases");
1850 of_chosen = of_find_node_by_path("/chosen"); 1863 of_chosen = of_find_node_by_path("/chosen");
1851 if (of_chosen == NULL) 1864 if (of_chosen == NULL)
1852 of_chosen = of_find_node_by_path("/chosen@0"); 1865 of_chosen = of_find_node_by_path("/chosen@0");
@@ -1862,7 +1875,6 @@ void of_alias_scan(void * (*dt_alloc)(u64 size, u64 align))
1862 of_stdout = of_find_node_by_path(name); 1875 of_stdout = of_find_node_by_path(name);
1863 } 1876 }
1864 1877
1865 of_aliases = of_find_node_by_path("/aliases");
1866 if (!of_aliases) 1878 if (!of_aliases)
1867 return; 1879 return;
1868 1880
@@ -1986,7 +1998,7 @@ bool of_console_check(struct device_node *dn, char *name, int index)
1986{ 1998{
1987 if (!dn || dn != of_stdout || console_set_on_cmdline) 1999 if (!dn || dn != of_stdout || console_set_on_cmdline)
1988 return false; 2000 return false;
1989 return add_preferred_console(name, index, NULL); 2001 return !add_preferred_console(name, index, NULL);
1990} 2002}
1991EXPORT_SYMBOL_GPL(of_console_check); 2003EXPORT_SYMBOL_GPL(of_console_check);
1992 2004
diff --git a/drivers/of/dynamic.c b/drivers/of/dynamic.c
index 54fecc49a1fe..f297891d8529 100644
--- a/drivers/of/dynamic.c
+++ b/drivers/of/dynamic.c
@@ -45,6 +45,9 @@ void __of_detach_node_sysfs(struct device_node *np)
45{ 45{
46 struct property *pp; 46 struct property *pp;
47 47
48 if (!IS_ENABLED(CONFIG_SYSFS))
49 return;
50
48 BUG_ON(!of_node_is_initialized(np)); 51 BUG_ON(!of_node_is_initialized(np));
49 if (!of_kset) 52 if (!of_kset)
50 return; 53 return;
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index 79cb8313c7d8..d1ffca8b34ea 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -928,7 +928,11 @@ int __init early_init_dt_scan_chosen(unsigned long node, const char *uname,
928void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size) 928void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size)
929{ 929{
930 const u64 phys_offset = __pa(PAGE_OFFSET); 930 const u64 phys_offset = __pa(PAGE_OFFSET);
931 base &= PAGE_MASK; 931
932 if (!PAGE_ALIGNED(base)) {
933 size -= PAGE_SIZE - (base & ~PAGE_MASK);
934 base = PAGE_ALIGN(base);
935 }
932 size &= PAGE_MASK; 936 size &= PAGE_MASK;
933 937
934 if (base > MAX_PHYS_ADDR) { 938 if (base > MAX_PHYS_ADDR) {
@@ -937,10 +941,10 @@ void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size)
937 return; 941 return;
938 } 942 }
939 943
940 if (base + size > MAX_PHYS_ADDR) { 944 if (base + size - 1 > MAX_PHYS_ADDR) {
941 pr_warning("Ignoring memory range 0x%lx - 0x%llx\n", 945 pr_warning("Ignoring memory range 0x%llx - 0x%llx\n",
942 ULONG_MAX, base + size); 946 ((u64)MAX_PHYS_ADDR) + 1, base + size);
943 size = MAX_PHYS_ADDR - base; 947 size = MAX_PHYS_ADDR - base + 1;
944 } 948 }
945 949
946 if (base + size < phys_offset) { 950 if (base + size < phys_offset) {