Fixed workqueue cancelling.
--- a/master/master.c Mon Nov 06 09:51:42 2006 +0000
+++ b/master/master.c Mon Nov 06 14:15:21 2006 +0000
@@ -344,7 +344,7 @@
ec_master_eoe_stop(master);
master->mode = EC_MASTER_MODE_ORPHANED;
- if (!cancel_delayed_work(&master->idle_work)) {
+ while (!cancel_delayed_work(&master->idle_work)) {
flush_workqueue(master->workqueue);
}
@@ -362,7 +362,7 @@
ec_datagram_t *datagram = &master->fsm.datagram;
master->mode = EC_MASTER_MODE_OPERATION;
- if (!cancel_delayed_work(&master->idle_work)) {
+ while (!cancel_delayed_work(&master->idle_work)) {
flush_workqueue(master->workqueue);
}