diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-08-05 23:52:52 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-08-05 23:52:52 -0400 |
commit | a02040d8d5d533773f98e02e1a8e56db5fa7a363 (patch) | |
tree | 5b490abce2688f80a9732346cf08127bbb48a3e3 /drivers | |
parent | 0603006b450004213eeed22d4fbcc103c994c2e6 (diff) | |
parent | e976e56423dc1cc01686861fc3e0c6c0ec8cd8b7 (diff) |
Merge tag 'pstore-v4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux
Pull pstore fixes from Kees Cook:
"Fixes for pstore ramoops driver to catch bad kfree() and to use better
DT bindings"
* tag 'pstore-v4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
ramoops: use persistent_ram_free() instead of kfree() for freeing prz
ramoops: use DT reserved-memory bindings
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/of/platform.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/drivers/of/platform.c b/drivers/of/platform.c index 765390e3ed8d..8aa197691074 100644 --- a/drivers/of/platform.c +++ b/drivers/of/platform.c @@ -499,8 +499,24 @@ EXPORT_SYMBOL_GPL(of_platform_default_populate); static int __init of_platform_default_populate_init(void) { - if (of_have_populated_dt()) - of_platform_default_populate(NULL, NULL, NULL); + struct device_node *node; + + if (!of_have_populated_dt()) + return -ENODEV; + + /* + * Handle ramoops explicitly, since it is inside /reserved-memory, + * which lacks a "compatible" property. + */ + node = of_find_node_by_path("/reserved-memory"); + if (node) { + node = of_find_compatible_node(node, NULL, "ramoops"); + if (node) + of_platform_device_create(node, NULL, NULL); + } + + /* Populate everything else. */ + of_platform_default_populate(NULL, NULL, NULL); return 0; } |