# HG changeset patch # User Florian Pose # Date 1324049500 -3600 # Node ID 6122e722133df7a39c709fad51b5ca5faa2800d9 # Parent 3afde1f58e1a87809ab45a3c3519e28e3ba04481# Parent 37a25c76987b2406d194553edc718f45e1430441 merge diff -r 37a25c76987b -r 6122e722133d master/fsm_slave.c --- a/master/fsm_slave.c Fri Dec 16 11:42:55 2011 +0100 +++ b/master/fsm_slave.c Fri Dec 16 16:31:40 2011 +0100 @@ -203,7 +203,7 @@ fsm->state = ec_fsm_slave_state_sdo_request; ec_fsm_coe_transfer(&fsm->fsm_coe, slave, &request->req); ec_fsm_coe_exec(&fsm->fsm_coe); // execute immediately - ec_master_queue_external_datagram(fsm->slave->master,fsm->datagram); + ec_master_queue_external_datagram(fsm->slave->master, fsm->datagram); return 1; } return 0; @@ -220,9 +220,8 @@ ec_slave_t *slave = fsm->slave; ec_sdo_request_t *request = fsm->sdo_request; - if (ec_fsm_coe_exec(&fsm->fsm_coe)) - { - ec_master_queue_external_datagram(fsm->slave->master,fsm->datagram); + if (ec_fsm_coe_exec(&fsm->fsm_coe)) { + ec_master_queue_external_datagram(fsm->slave->master, fsm->datagram); return; } if (!ec_fsm_coe_success(&fsm->fsm_coe)) { @@ -277,7 +276,7 @@ fsm->state = ec_fsm_slave_state_foe_request; ec_fsm_foe_transfer(&fsm->fsm_foe, slave, &request->req); ec_fsm_foe_exec(&fsm->fsm_foe); - ec_master_queue_external_datagram(fsm->slave->master,fsm->datagram); + ec_master_queue_external_datagram(fsm->slave->master, fsm->datagram); return 1; } return 0; @@ -294,9 +293,8 @@ ec_slave_t *slave = fsm->slave; ec_foe_request_t *request = fsm->foe_request; - if (ec_fsm_foe_exec(&fsm->fsm_foe)) - { - ec_master_queue_external_datagram(fsm->slave->master,fsm->datagram); + if (ec_fsm_foe_exec(&fsm->fsm_foe)) { + ec_master_queue_external_datagram(fsm->slave->master, fsm->datagram); return; } diff -r 37a25c76987b -r 6122e722133d master/master.c --- a/master/master.c Fri Dec 16 11:42:55 2011 +0100 +++ b/master/master.c Fri Dec 16 16:31:40 2011 +0100 @@ -1270,7 +1270,6 @@ if (fsm_exec) { ec_master_queue_datagram(master, &master->fsm_datagram); } - ec_master_inject_external_datagrams(master); ecrt_master_send(master); sent_bytes = master->main_device.tx_skb[ master->main_device.tx_ring_index]->len; @@ -2100,6 +2099,7 @@ ec_master_queue_datagram(master, &master->fsm_datagram); master->injection_seq_rt = master->injection_seq_fsm; } + ec_master_inject_external_datagrams(master); if (unlikely(!master->main_device.link_state)) {