summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/ps3/os-area.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/platforms/ps3/os-area.c')
-rw-r--r--arch/powerpc/platforms/ps3/os-area.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/ps3/os-area.c b/arch/powerpc/platforms/ps3/os-area.c
index f5112248802b..db311a147c28 100644
--- a/arch/powerpc/platforms/ps3/os-area.c
+++ b/arch/powerpc/platforms/ps3/os-area.c
@@ -20,6 +20,7 @@
#include <linux/kernel.h>
#include <linux/io.h>
+#include <linux/workqueue.h>
#include <asm/lmb.h>
@@ -187,6 +188,28 @@ static int __init verify_header(const struct os_area_header *header)
}
/**
+ * os_area_queue_work_handler - Asynchronous write handler.
+ *
+ * An asynchronous write for flash memory and the device tree. Do not
+ * call directly, use os_area_queue_work().
+ */
+
+static void os_area_queue_work_handler(struct work_struct *work)
+{
+ pr_debug(" -> %s:%d\n", __func__, __LINE__);
+
+ pr_debug(" <- %s:%d\n", __func__, __LINE__);
+}
+
+static void os_area_queue_work(void)
+{
+ static DECLARE_WORK(q, os_area_queue_work_handler);
+
+ wmb();
+ schedule_work(&q);
+}
+
+/**
* ps3_os_area_save_params - Copy data from os area mirror to @saved_params.
*
* For the convenience of the guest, the HV makes a copy of the os area in