|
@@ -339,7 +339,16 @@ static ssize_t migrate_store(struct class *class, struct class_attribute *attr,
|
|
|
return count;
|
|
|
}
|
|
|
|
|
|
+/*
|
|
|
+ * Used by drmgr to determine the kernel behavior of the migration interface.
|
|
|
+ *
|
|
|
+ * Version 1: Performs all PAPR requirements for migration including
|
|
|
+ * firmware activation and device tree update.
|
|
|
+ */
|
|
|
+#define MIGRATION_API_VERSION 1
|
|
|
+
|
|
|
static CLASS_ATTR(migration, S_IWUSR, NULL, migrate_store);
|
|
|
+static CLASS_ATTR_STRING(api_version, S_IRUGO, __stringify(MIGRATION_API_VERSION));
|
|
|
|
|
|
static int __init mobility_sysfs_init(void)
|
|
|
{
|
|
@@ -350,7 +359,13 @@ static int __init mobility_sysfs_init(void)
|
|
|
return -ENOMEM;
|
|
|
|
|
|
rc = sysfs_create_file(mobility_kobj, &class_attr_migration.attr);
|
|
|
+ if (rc)
|
|
|
+ pr_err("mobility: unable to create migration sysfs file (%d)\n", rc);
|
|
|
|
|
|
- return rc;
|
|
|
+ rc = sysfs_create_file(mobility_kobj, &class_attr_api_version.attr.attr);
|
|
|
+ if (rc)
|
|
|
+ pr_err("mobility: unable to create api_version sysfs file (%d)\n", rc);
|
|
|
+
|
|
|
+ return 0;
|
|
|
}
|
|
|
machine_device_initcall(pseries, mobility_sysfs_init);
|