diff mbox series

[bbb-overlays] Fixing overlay configfs for v4.14

Message ID 1511295880-24987-1-git-send-email-geert+renesas@glider.be
State Rejected, archived
Headers show
Series [bbb-overlays] Fixing overlay configfs for v4.14 | expand

Commit Message

Geert Uytterhoeven Nov. 21, 2017, 8:24 p.m. UTC
Hi Pantelis,

Using overlay configfs on v4.14 requires two fixes, both due to commit
d1651b03c2df75db ("of: overlay: add overlay symbols to live device
tree"):

 1. As the symbols were added to the ovinfo[] array without calling
    of_fill_overlay_info(), the new of_overlay_info.info field (added by
    your bbb-overlays patches) is not set up, causing a NULL pointer
    dereference.

    As calling of_fill_overlay_info() is not appropriate here, the patch
    below fixes this by filling it in manually.  Feel free to fold into
    "of: overlay: add per overlay sysfs attributes".

 2. "of: overlay: Pick up label symbols from overlays." must be
    reverted, else loading overlays fails with:

	OF: changeset: add_property failed @/__symbols__/...
	OF: Error applying changeset (-17)

I've updated my topic/overlays and topic/renesas-overlays branches in
https://git.kernel.org/cgit/linux/kernel/git/geert/renesas-drivers.git
accordingly.


Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox series

Patch

diff --git a/drivers/of/overlay.c b/drivers/of/overlay.c
index afa681014e19e3da..3cb6ae9ecb998d5e 100644
--- a/drivers/of/overlay.c
+++ b/drivers/of/overlay.c
@@ -569,6 +569,7 @@  static int of_build_overlay_info(struct of_overlay *ov,
 	if (node) {
 		ovinfo[cnt].overlay = node;
 		ovinfo[cnt].target = of_find_node_by_path("/__symbols__");
+		ovinfo[cnt].info = of_node_get(node);
 		ovinfo[cnt].is_symbols_node = 1;
 
 		if (!ovinfo[cnt].target) {