summaryrefslogtreecommitdiff
path: root/drivers/staging/greybus/operation.c
diff options
context:
space:
mode:
authorJohan Hovold <johan@hovoldconsulting.com>2015-07-22 17:49:17 +0200
committerGreg Kroah-Hartman <gregkh@google.com>2015-07-22 11:10:33 -0700
commitb4bd734ea60c4fd5a79c0e7fff4940686ff3cbc8 (patch)
tree2c65969a821597246d088d307de1bde06e15a276 /drivers/staging/greybus/operation.c
parent583cbf50e0a4c8918811f245860922353420a378 (diff)
greybus: operation: fix operation ordering
Make the operation work queue single threaded. The operation work queue was meant to be single threaded, but due to a missing flag instead allowed one active task per CPU, something which could lead to requests being processed out of order on SMP systems. Signed-off-by: Johan Hovold <johan@hovoldconsulting.com> Tested-by: Rui Miguel Silva <rui.silva@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'drivers/staging/greybus/operation.c')
-rw-r--r--drivers/staging/greybus/operation.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/staging/greybus/operation.c b/drivers/staging/greybus/operation.c
index f2d12e87a502..e98fc656c98b 100644
--- a/drivers/staging/greybus/operation.c
+++ b/drivers/staging/greybus/operation.c
@@ -1043,7 +1043,8 @@ int __init gb_operation_init(void)
if (!gb_operation_cache)
goto err_destroy_message_cache;
- gb_operation_workqueue = alloc_workqueue("greybus_operation", 0, 1);
+ gb_operation_workqueue = alloc_workqueue("greybus_operation",
+ WQ_UNBOUND, 1);
if (!gb_operation_workqueue)
goto err_operation;