powerpc/hugetlb: enable hugetlb migration for ppc64
[linux-2.6-block.git] / drivers / base / core.c
index bbecaf9293bed4d61238f703a213ab8b60541c7f..8dde934f8d15a2906a99a0835a76e5fb0c2c92bc 100644 (file)
@@ -981,12 +981,9 @@ out:
 static ssize_t uevent_store(struct device *dev, struct device_attribute *attr,
                            const char *buf, size_t count)
 {
-       enum kobject_action action;
+       if (kobject_synth_uevent(&dev->kobj, buf, count))
+               dev_err(dev, "uevent: failed to send synthetic uevent\n");
 
-       if (kobject_action_type(buf, count, &action) == 0)
-               kobject_uevent(&dev->kobj, action);
-       else
-               dev_err(dev, "uevent: unknown action-string\n");
        return count;
 }
 static DEVICE_ATTR_RW(uevent);
@@ -2884,3 +2881,19 @@ void set_secondary_fwnode(struct device *dev, struct fwnode_handle *fwnode)
        else
                dev->fwnode = fwnode;
 }
+
+/**
+ * device_set_of_node_from_dev - reuse device-tree node of another device
+ * @dev: device whose device-tree node is being set
+ * @dev2: device whose device-tree node is being reused
+ *
+ * Takes another reference to the new device-tree node after first dropping
+ * any reference held to the old node.
+ */
+void device_set_of_node_from_dev(struct device *dev, const struct device *dev2)
+{
+       of_node_put(dev->of_node);
+       dev->of_node = of_node_get(dev2->of_node);
+       dev->of_node_reused = true;
+}
+EXPORT_SYMBOL_GPL(device_set_of_node_from_dev);