From: Johan Hovold Date: Wed, 22 Jul 2015 15:49:17 +0000 (+0200) Subject: greybus: operation: fix operation ordering X-Git-Tag: v5.15~12752^2~378^2~21^2~1345 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b4bd734ea60c4fd5a79c0e7fff4940686ff3cbc8;p=platform%2Fkernel%2Flinux-starfive.git 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 Tested-by: Rui Miguel Silva Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/greybus/operation.c b/drivers/staging/greybus/operation.c index f2d12e8..e98fc65 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;