From 330864b638688a58d2d845a3a9fd997a6ace9387 Mon Sep 17 00:00:00 2001 From: Andrei Warkentin Date: Fri, 3 Dec 2010 20:11:21 -0600 Subject: [PATCH] mdm6600: Workqueue worker missing synchronization Didn't take into account concurrent execution on mutliple cores, since global queue is not WQ_NON_REENTRANT. Use non-reentrant system queue instead now. Change-Id: Id5b31f7ba344f6e0f0ba63364171d16fd55b90ef Signed-off-by: Andrei Warkentin --- drivers/usb/serial/mdm6600.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/usb/serial/mdm6600.c b/drivers/usb/serial/mdm6600.c index 7a8dddde0a0c..caa8164f360a 100644 --- a/drivers/usb/serial/mdm6600.c +++ b/drivers/usb/serial/mdm6600.c @@ -790,7 +790,7 @@ static void mdm6600_read_bulk_cb(struct urb *u) usb_anchor_urb(u, &modem->read.pending); - schedule_work(&modem->read.work); + queue_work(system_nrt_wq, &modem->read.work); } static int mdm6600_suspend(struct usb_interface *intf, pm_message_t message) -- 2.34.1