return buf;
 }
 
-static struct device_node * __init create_node(phandle node)
+static struct device_node * __init create_node(phandle node, struct device_node *parent)
 {
        struct device_node *dp;
 
 
        dp = prom_early_alloc(sizeof(*dp));
        dp->unique_id = prom_unique_id++;
+       dp->parent = parent;
 
        kref_init(&dp->kref);
 
 {
        struct device_node *dp;
 
-       dp = create_node(node);
+       dp = create_node(node, parent);
        if (dp) {
                *(*nextp) = dp;
                *nextp = &dp->allnext;
 {
        struct device_node **nextp;
 
-       allnodes = create_node(prom_root_node);
+       allnodes = create_node(prom_root_node, NULL);
        allnodes->path_component_name = "";
        allnodes->full_name = "/";