# HG changeset patch # User Florian Pose # Date 1150280582 0 # Node ID b397aee6e602408ec75cbea87e2479be9e741815 # Parent e7d4579617afa2d11e9bb3f24cd6b3326ca6863d Bugfix: Freerun mode not stopped cleanly on device unloading. diff -r e7d4579617af -r b397aee6e602 master/master.c --- a/master/master.c Mon Jun 12 15:14:12 2006 +0000 +++ b/master/master.c Wed Jun 14 10:23:02 2006 +0000 @@ -704,13 +704,13 @@ 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 @@ // 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); } /*****************************************************************************/