Thread (29 messages) 29 messages, 4 authors, 2016-08-24

Re: [PATCH v5 11/13] powerpc: Allow userspace to set device tree properties in kexec_file_load

From: Thiago Jung Bauermann <hidden>
Date: 2016-08-12 00:54:14
Also in: kexec, lkml

Hello Sam,

Thanks for the quick response.

Am Freitag, 12 August 2016, 10:45:00 schrieb Samuel Mendoza-Jonas:
On Thu, 2016-08-11 at 20:08 -0300, Thiago Jung Bauermann wrote:
quoted
@@ -908,4 +909,245 @@ bool find_debug_console(const void *fdt, int
chosen_node) return false;
 }
 
+/**
+ * struct allowed_node - a node in the whitelist and its allowed
properties. + * @name:              node name or full node path
+ * @properties:                NULL-terminated array of names or
name=value pairs + *
+ * If name starts with /, then the node has to be at the specified path
in + * the device tree (including unit addresses for all nodes in the
path). + * If it doesn't, then the node can be anywhere in the device
tree. + *
+ * An entry in properties can specify a string value that the property
must + * have by using the "name=value" format. If the entry ends with
=, it means + * that the property must be empty.
+ */
+static struct allowed_node {
+       const char *name;
+       const char *properties[9];
+} allowed_nodes[] = {
+       {
+               .name = "/chosen",
+               .properties = {
+                       "stdout-path",
+                       "linux,stdout-path",
+                       NULL,
+               }
+       },
+       {
+               .name = "vga",
+               .properties = {
+                       "device_type=display",
+                       "assigned-addresses",
+                       "width",
+                       "height",
+                       "depth",
+                       "little-endian=",
+                       "linux,opened=",
+                       "linux,boot-display=",ss
+                       NULL,
+               }
+       },
+};
Hi Thiago,

As much as this solves problems for *me*, I suspect adding 'vga' here
might be the subject of some discussion. Having /chosen whitelisted makes
sense on it's own, but 'vga' and its properties are very specific without
much explanation.

If everyone's happy to have it there, cool! If not, I have the majority
of a patch that handles the original reason for these property updates
separately in the kernel rather than from userspace. If needed I'll clean
it up and we can handle it that way.
Ok, that's good to know. I'm fine with it either way. In any case, 'vga' in 
this patch also serves a good real-life example of a non-trivial binding 
outside of /chosen that we might want to whitelist in the future.

-- 
[]'s
Thiago Jung Bauermann
IBM Linux Technology Center
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help