From: Geoff Levand Date: Sat, 6 Oct 2007 21:35:45 +0000 (+1000) Subject: [POWERPC] PS3: os-area workqueue processing X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=418ef2094eb8b0916d6cbda10e2ab857b9f64d97;p=linux-beck.git [POWERPC] PS3: os-area workqueue processing Add a workqueue to the PS3 os-area support. This is needed to support writing updates to flash memory and to update the /proc device tree entries from the timer tick interrupt context. Signed-off-by: Geoff Levand Signed-off-by: Paul Mackerras --- 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 #include +#include #include @@ -186,6 +187,28 @@ static int __init verify_header(const struct os_area_header *header) return 0; } +/** + * 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. *