Skip to content
Snippets Groups Projects
Commit 983b95c5 authored by Florian Pose's avatar Florian Pose
Browse files

Bugfix: Freerun mode not stopped cleanly on device unloading.

parent cc2ea226
No related branches found
No related tags found
No related merge requests found
......@@ -704,13 +704,13 @@ void ec_master_freerun_stop(ec_master_t *master /**< EtherCAT master */)
ec_master_eoe_stop(master);
EC_INFO("Stopping Free-Run mode.\n");
master->mode = EC_MASTER_MODE_IDLE;
if (!cancel_delayed_work(&master->freerun_work)) {
flush_workqueue(master->workqueue);
}
ec_master_clear_slaves(master);
master->mode = EC_MASTER_MODE_IDLE;
}
/*****************************************************************************/
......@@ -736,7 +736,8 @@ void ec_master_freerun(void *data /**< master pointer */)
// release master lock
spin_unlock_bh(&master->internal_lock);
queue_delayed_work(master->workqueue, &master->freerun_work, 1);
if (master->mode == EC_MASTER_MODE_FREERUN)
queue_delayed_work(master->workqueue, &master->freerun_work, 1);
}
/*****************************************************************************/
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment